所以,这就是处理。我们正在使用KEMP负载平衡器,该负载平衡器利用UCARP(CARP的Linux克隆,这是VRRP克隆)来实现HA心跳和持久状态。我们希望在我们的环境中利用IGMP来防止整个数据中心泛滥。
我们有两个运行SW 5.1.1.7的Dell PowerConnect 8124F交换机作为机架顶部。这两个连接到堆叠的一对Cisco 3750-X,这是我们的核心。
问题始于我们升级到PowerConnect 5.1.x时,它们显然默认情况下保持IGMP侦听状态,除非否则你会说。而且,我们的负载均衡器陷入了裂脑,引起了各种热烈的模糊乐趣。多播仍然无效
如果我在核心上设置IP PIM,则PowerConnect交换机可以在同一VLAN上看到它,但是仍然没有多播流量
如果我启用所有未注册的多播流量的泛洪,它仍然会完全没有。
如果我在PowerConnect交换机上全局禁用IGMP侦听,则所有多播流量都有效。它的工作原理如此之好,以至于我们将多播流量泛洪到了每个具有相同VLAN标签的端口。太好了。
我注意到我们核心VLAN上有一些奇怪的MAC地址条目:
coresw#sh mac address-table vlan 367 | include 5e00
367 0000.5e00.0101 DYNAMIC Po13 seq_no:0
我想..不是吗多播地址?为什么在“ sh mac address-table multicast”中不是这样?
coresw#sh mac address-table multicast vlan 367
Vlan Mac Address Type Ports
---- ----------- ---- -----
coresw#
然后我在PowerConnect CLI指南中阅读以下内容:
多播流量是发往主机组的流量。主机
组由目标MAC地址标识,即IPv4组播流量的范围
01:00:5e:00:00:00-01:00:5e:7f:ff:ff:ff或
33:33:xx:xx:xx:xx:xx用于IPv6多播流量。
好像我们在MAC地址的开头缺少一个“ 01”,对吗?上面的动态MAC条目以“ 00”开头。在这一点上,我正在考虑致电KEMP,让他们知道他们的产品配置错误。但是然后我读了VRRP的RFC-看到:与虚拟路由器关联的虚拟路由器MAC地址是
IEEE 802 MAC地址,其格式如下:
IPv4大小写:00-00-5E-00-01- {VRID}(以十六进制表示,按Internet标准位-
顺序)
好-交换机通常不会选择VRRP的多播mac地址范围。好的,让我们在Dell交换机上配置一个静态主机组。否。
输入无效:组播MAC地址的格式必须为01XX:XXXX:XXXX
然后确定。.下一步,尝试尝试添加静态mac条目:
osl-sys-swrack03(config)#mac address-table multicast ?
forbidden forbid adding specific multicast addresses to
specific ports.
osl-sys-swrack03(config)#
所以-无法配置静态多播MAC条目。如果我尝试对常规的静态MAC条目执行相同操作,则只能将其绑定到一个端口-此负载平衡群集跨4个不同的10gig端口运行。
更新:似乎有些混乱关于MAC地址。
172.30.1.0/24是前端的负载平衡器网络。 172.30.1.6是群集的默认共享VIP,.7是第一个负载平衡器的管理IP,.8是第二个负载平衡器。
所有其他地址(30、40、70、80等)都是具有不同服务的VIP。
发生故障转移时,所有VIP都将其MAC地址更改为第二个LB的物理MAC地址。
底表中的多播地址不变。
/>
coresw#sh ip arp vlan 367
Protocol Address Age (min) Hardware Addr Type Interface
Internet 172.30.1.6 78 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.40 204 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.80 167 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.70 38 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.66 12 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.35 185 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.60 97 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.30 80 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.61 33 0050.56b4.5004 ARPA Vlan367 <- VIP - Loadbalancer1 physical MAC
Internet 172.30.1.7 27 0050.56b4.5004 ARPA Vlan367 <- Management - Loadbalancer1 physical MAC
Internet 172.30.1.8 21 0050.56b4.08c2 ARPA Vlan367 <- Management - Loadbalancer2 physical MAC
osl-sys-coresw#sh mac address-table dynamic vlan 367
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
367 0000.5e00.0101 DYNAMIC Po13 seq_no:0 <- multicast HA mac (UCARP)
367 0050.56b4.08c2 DYNAMIC Po13 seq_no:0 <- Loadbalancer1 physical MAC
367 0050.56b4.5004 DYNAMIC Po13 seq_no:0 <- Loadbalancer2 physical MAC
这就是故事。我到底要怎么办?
#1 楼
我能够解决问题。在Kemp(具有HA对)上,可以选择使用“虚拟MAC地址”。如果未选中此框,则负载均衡器VIP的MAC是活动Kemp单元的物理接口的MAC。如果选中此框,则VIP的MAC地址为VRRP MAC。如上所述,VRRP RFC声明MAC为“ 00:00” {blah},最后一个八位位组为路由器ID。默认的Kemp HA [路由器] ID为01。在我使用固件5.1.x.x的Powerconnects上,我没有使用VRRP,但我进行了一些跟踪,并确定如果路由器ID与自身相同,则Powerconnect将丢弃VRRP帧。即使未配置VRRP,他们也会执行此操作,并且在该模式下,它们默认设置为01。因此,将Kemp HA路由器ID更改为22(0x16)之类的东西,一切都会正常进行。评论
你是我的英雄。谢谢您终于弄清楚了! KEMP部分的措辞极差-他们应该给您一个描述,实际上告诉您这会转换为VRRP路由器ID。
–pauska
16年4月18日在18:00
#2 楼
您要查找的多播地址是224.0.0.18 [mac:01005e.000012]。这是所有VRRP节点的控制通道。 [edit]除非KEMP更改了代码,否则CARP(UCARP)会使用VRRP单播MAC [00005e.0001xx]发起流量-这是交换机自然会学到的地方。一个查询器(大概在每个网段中),那么您的交换机最终将忘记所在的组-除非询问,否则主机不会发送定期成员资格。 [编辑:根据配置,交换机可能会丢弃未知的多播,而不是泛洪。]这可以是专用的查询器(它发送数据包,不关心任何答案),或更常见的是您的基础结构中的多播路由器。 。在这种简单的情况下,查询器是必需的,因为无论如何VRRP消息都被禁止跨网段。
我对Dell交换机并不熟悉,所以我不知道您需要什么cli命令。
[更新]
Vlan Mac Address Type Ports
---- ----------- -------- -----
367 0000.5e00.0101 DYNAMIC Po13 seq_no:0 <- multicast HA mac (UCARP)
那不是多播mac。那就是组播流量的单播MAC源。组播mac将不会显示在mac地址表中。在多播组表中。 Cisco IOS有一个
show mac-address-table multicast
(在我的路由器上不显示任何内容)和一个show ip igmp groups
(显示3个组)。该路由器设置为pim稀疏模式;北电和思科交换机将其视为查询器。通过使用主机NIC MAC作为虚拟地址,KEMP方法存在严重缺陷。您的情况是5004属于nic。当5004消失时,每个人的表中仍然会有“ IP:6 == MAC:5004”;他们将继续尝试与死主机对话,直到替换该条目为止。 KEMP显然是在赌博免费网络,而网络中的所有事物都在荣耀它。因此,HSRP,VRRP和OpenBSD设计的CARP都使用虚拟MAC。 (它们似乎在传输多播流量时未能破解UCARP来使用nic mac而不是VRRP虚拟mac。)
考虑到他们使用UCARP进行黑客攻击,您确定它甚至在使用多播吗?
评论
我已经在同一VLAN的核心上设置了PIM路由器-难道这不需要查询器吗?
–pauska
13年11月1日在1:38
从理论上讲,是的。确认交换机看到查询器。 (显示Cisco的ip igmp监听查询器vlan 367)
–瑞奇
13年1月1日在2:26
他们没有看到任何查询器,但是却看到了mrouter(sh ip igmp snooping mrouter)。我应该有一个查询器和一个mrouter吗?我以为后者取代了第一个。
–pauska
13年11月1日13:45
我不知道戴尔会如何对待它。我的cisco,hp和adtran交换机将PIM mrouter显示为查询器,但它们本身缺少(或未配置)PIM支持。
–瑞奇
13年11月1日在18:06
评论
我到底要怎么办? <-龙舌兰酒。很多。您会混淆“虚拟路由器”之间使用的多播地址(以告诉谁在那里,谁是主服务器),以及用于虚拟路由器本身的单播地址(即虚拟IP的MAC)。
@RickyBeam您能更具体一点吗?上面的列表中有两个mac地址的原因是因为我们有两对负载均衡器,每个负载均衡器都有自己的ID(末尾为01和02)-如果您正在考虑的话?
不,您仍然对与虚拟路由器IP相关联的单播MAC感到困惑-MAC主机用来与其负载均衡服务进行通信。多播地址是负载均衡器用来知道谁负责的内容。 (请参阅第5.1.1节)
@RickyBeam对不起,对我来说没有任何意义。每个负载均衡器(00:56,vmware)的单播MAC地址与我禁用IGMP侦听时看到的0000.5e00.0101完全不同。