ASR1K OTV 组播通信问题
对于OTV的简介大家可以参考我之前的总结《OTV 简述 for ASR1k》
OTV的场景有3部分
1. SITE 1部分
2. 中间ISP部分
3. SITE 2部分
对于OTV的技术,就是用OTV把SITE 1和SITE 2通过Tunnel打通,所以相应的问题也会在这3部分中出现。SITE 部分只是通过EVC把客户的局域网桥接到OTV上,所以这部分问题不是很难TS,关键在中间ISP部分,也可以说是OTV之间的交互,本文根据如下Topology:
OTV的基础是建立在组播环境下,换句话ISP要支持组播,所以如果中间的组播起不来,那么OTV肯定无法通信,OTV的组播是怎么运行的?我们常规的WAN口配置如下:
interface GigabitEthernet3
ip address 23.1.1.2 255.255.255.0
ip pim passive
ip igmp version 3
ip ospf network point-to-point
negotiation auto
“ip pim passive”,这个命令的精髓就是drop所有IGMP和PIM的消息,所以配上后neighbor是不会起来的,但它不阻止发送相关的PIM和IGMP信息,所以“ip igmp ver3” 就是起到发送IGMP Report的作用。
当配置好OTV端口后,会出现ASM的(*,G),你也可以看到proxy的flag,如下图所示
interface Overlay1 no ip address otv control-group 239.1.1.1 otv data-group 232.1.1.0/28 otv join-interface GigabitEthernet3 otv vpn-name OTV (*, 239.1.1.1), 21:01:12/stopped, RP 0.0.0.0, flags: DC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet3, Forward/Sparse-Dense, 08:06:54/Proxy Tunnel0, Forward/Sparse-Dense, 08:28:50/00:02:13
当配置都ok后,OTV端口会UP,然后生成一个Tunnel
#sh otv
Overlay Interface Overlay1
VPN name : OTV
VPN ID : 1
State : UP
AED Capable : Yes
IPv4 control group : 239.1.1.1
Mcast data group range(s): 232.1.1.0/28
Join interface(s) : GigabitEthernet3
Join IPv4 address : 23.1.1.2
Tunnel interface(s) : Tunnel0
Encapsulation format : GRE/IPv4
Site Bridge-Domain : 2030
Capability : Multicast-reachable
Is Adjacency Server : No
Adj Server Configured : No
Prim/Sec Adj Svr(s) : None
Tunnel和WAN口一起发送IGMP Join报文给ISP
#sh ip igmp gr IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter Group Accounted 239.1.1.1 GigabitEthernet3 08:15:20 00:02:44 23.1.1.2 239.1.1.1 Tunnel0 21:09:39 00:02:44 23.1.1.2
注意上面配置的IGMP是V3的,所有端口默认都是V2的,所以如果不指定版本,ISP会Drop IGMPv3的 Join报文
以至于没法完成join动作,你会发现OIL是Null的
(*, 239.1.1.1), 1d12h/stopped, RP 18.0.0.2, flags: SP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null IGMP(0): v3 report on interface configured for v2, ignored
如果ISP不配置RP,那么你会发现没有(S,G),而且(*,G)没有incomming,OTV流量到ISP终止了
注意此时对于OTV设备,组播表已经是全的,如下所示:
(*, 239.1.1.1), 21:17:42/stopped, RP 0.0.0.0, flags: DC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet3, Forward/Sparse-Dense, 08:23:25/Proxy Tunnel0, Forward/Sparse-Dense, 08:45:21/00:02:44 (34.1.1.4, 239.1.1.1), 07:44:32/00:02:33, flags: T Incoming interface: GigabitEthernet3, RPF nbr 23.1.1.3 Outgoing interface list: Tunnel0, Forward/Sparse-Dense, 07:44:32/00:02:44 (23.1.1.2, 239.1.1.1), 21:14:41/00:01:22, flags: T Incoming interface: GigabitEthernet3, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet3, Forward/Sparse-Dense, 08:23:25/Proxy Tunnel0, Forward/Sparse-Dense, 08:45:21/00:02:44
加了RP后,从ISP的设备上可以看到下面信息
从这些信息里,可以确认OTV相当于是组播的Source,所以他会向RP发起注册,注册成功后,会安装(S,G)
*Apr 16 09:28:57.188: PIM(0): Adding register decap tunnel (Tunnel1) as accepting interface of (23.1.1.2, 239.1.1.1). *Apr 16 09:28:57.188: PIM(0): Removing register decap tunnel (Tunnel1) as accepting interface of (23.1.1.2, 239.1.1.1). *Apr 16 09:28:57.188: PIM(0): Installing GigabitEthernet0/1 as accepting interface for (23.1.1.2, 239.1.1.1). *Apr 16 09:29:02.802: PIM(0): Adding register decap tunnel (Tunnel1) as accepting interface of (34.1.1.4, 239.1.1.1). *Apr 16 09:29:02.803: PIM(0): Removing register decap tunnel (Tunnel1) as accepting interface of (34.1.1.4, 239.1.1.1). *Apr 16 09:29:02.803: PIM(0): Installing GigabitEthernet0/2 as accepting interface for (34.1.1.4, 239.1.1.1).
既然IGMP是V3,那么直接把ISP配成SSM吧,这样看着更好,不过我发现了下面告警:
这是因为我把239.1.1.1设置成了SSM,但是OTV的路由器发送的是(*,G)的 Join,所以SSM忽略它了
*Apr 16 01:02:27.170: IGMP(0): Group Record mode 2 for SSM group 239.1.1.1 from 34.1.1.4 on GigabitEthernet0/2, ignored
还有别的办法么?把OTV的WAN口直接join这个组,发现还是不行,看来OTV默认就是通过(*,G)去加组的
本文出自 Frank's Blog