UCARP (VRRP)를 사용하는 KEMP로드 밸런서-멀티 캐스트 MAC 주소가 수집되지 않음


10

좋아-적어도 20 시간 연속으로이 싸움을 벌였다. 이것이 긴 폭동이나 블로그 포스트처럼 보인다면 미안하지만, 나는 지칠 때가왔다.

그래서 여기에 거래가 있습니다. HA 하트 비트 및 지속적 상태에 UCARP (VRRP 클론 인 CARP의 Linux 클론)를 사용하는 KEMP로드 밸런서를 사용하고 있습니다. 우리는 데이터 센터 전체의 홍수를 막기 위해 환경에서 IGMP를 사용하려고합니다.

랙 상단 역할을하는 SW 5.1.1.7을 실행하는 두 개의 Dell PowerConnect 8124F 스위치가 있습니다. 이 두 가지는 Cisco 3750-X의 스택 쌍에 연결되며 이는 핵심입니다.

문제는 PowerConnect 5.1.x로 업그레이드 할 때 시작되었는데, 별도로 명시하지 않는 한 IGMP 스누핑은 그대로 두었습니다. 보라-우리의로드 밸런서는 스플릿 브레인으로 들어가 모든 종류의 따뜻한 퍼지 재미를 일으켰습니다.

  • 로드 밸런서가 멀티 캐스트를 수행하는 VLAN에서 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 IPv6 멀티 캐스트 트래픽의 경우 : xx : xx

MAC 주소의 시작 부분에 "01"이없는 것 같습니다. 위의 동적 MAC 항목은 "00"으로 시작합니다. 이 시점에서 저는 KEMP에 전화하여 제품이 잘못 잘못 구성되어 있음을 알리려고합니다. 그러나 VRRP의 RFC를 읽고 보라.

가상 라우터와 연관된 가상 라우터 MAC 주소는 다음 형식의 IEEE 802 MAC 주소입니다.

IPv4 사례 : 00-00-5E-00-01- {VRID} (16 진수 인터넷 표준 비트 순서)

좋습니다. 따라서 스위치는 일반적으로 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

그리고 그것은 이야기입니다. 지구상에서 나는 이것으로 무엇을 할 것인가?


What on earth am I going to do with this?<-테킬라. 많이.
voretaq7 '10

"가상 라우터"(누가 있는지와 누가 마스터인지 알기 위해)와 가상 라우터 자체에 사용되는 유니 캐스트 주소 (예 : 가상 IP의 MAC) 사이에 사용 된 멀티 캐스트 주소를 혼동하고 있습니다.
Ricky Beam

@RickyBeam 좀 더 구체적으로 설명해 주시겠습니까? 위 목록에 두 개의 mac 주소가있는 이유는 각각 자체 ID (끝 01 및 02)를 갖는 두 쌍의로드 밸런서가 있기 때문입니다.
pauska

1
아니요, 여전히 가상 라우터 IP와 관련된 유니 캐스트 MAC에 대해 혼란스러워합니다. MAC 호스트가로드 밸런싱 서비스와 통신하는 데 사용합니다. 멀티 캐스트 주소는 부하 분산 장치가 담당자를 아는 데 사용한 것입니다. (섹션 5.1.1 읽기)
Ricky Beam

@RickyBeam 죄송합니다. 이해가되지 않습니다. 각로드 밸런서 (00:56, vmware)의 유니 캐스트 MAC 주소는 IGMP 스누핑을 비활성화 할 때 표시되는 0000.5e00.0101과 완전히 다릅니다.
pauska

답변:


5

문제를 해결할 수있었습니다. Kemp (HA 쌍 사용)에는 "가상 MAC 주소"를 사용하는 옵션이 있습니다. 이 확인란을 선택하지 않으면로드 밸런서 VIP의 MAC은 활성 Kemp 장치의 물리적 인터페이스의 MAC입니다. 이 상자를 선택하면 VIP의 MAC 주소가 VRRP MAC입니다. 위에서 언급 한 바와 같이 VRRP RFC는 MAC이 "00:00"{blah}이고 마지막 옥텟은 라우터 ID임을 나타냅니다. 기본 Kemp HA [router] ID는 01입니다. 펌웨어 5.1.xx를 사용하는 Powerconnect에서 VRRP를 사용하지 않지만 일부 추적을 실행하고 라우터 ID가 자체와 동일한 경우 Powerconnect가 VRRP 프레임을 삭제하기로 결정했습니다. VRRP가 구성되어 있지 않고이 모드에서는 기본적으로 01로 설정됩니다. 따라서 Kemp HA 라우터 ID를 22 (0x16)로 변경하면 모든 것이 작동합니다.


너는 나의 영웅이야. 마침내 이것을 알아 내 주셔서 감사합니다! KEMP 부분에 대한 매우 나쁜 표현-실제로 VRRP 라우터 ID로 해석된다는 설명을 제공해야합니다.
pauska

2

찾고있는 멀티 캐스트 주소는 224.0.0.18 [mac : 01005e.000012]입니다. 이것이 모든 VRRP 노드의 제어 채널입니다. [편집] 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 소스 입니다. 멀티 캐스트 맥은 맥 주소 테이블에 나타나지 않습니다. 멀티 캐스트 그룹 테이블에 있습니다. Cisco IOS에는 show mac-address-table multicast(라우터에 아무것도 표시되지 않음) 및 show ip igmp groups(3 개의 그룹이 표시됨)이 있습니다. 해당 라우터는 pim sparse-mode로 설정되어 있습니다. nortel 및 cisco 스위치는이를 쿼리 자로 간주합니다.

그리고 가상 주소에 호스트 NIC MAC을 사용하면 KEMP 방법에 큰 결함이 있습니다. 귀하의 경우 5004는 nic에 속합니다. 5004가 사라지면 모든 사람은 여전히 ​​테이블에 "IP : 6 == MAC : 5004"를 갖습니다. 해당 항목이 교체 될 때까지 죽은 호스트와 계속 대화하려고합니다. KEMP는 분명히 네트워크의 모든 것에 찬사를받는 무자비한 도박에 도박을하고 있습니다. 이러한 이유로 HSRP, VRRP OpenBSD 설계 CARP는 모두 가상 MAC을 사용합니다. (멀티 캐스트 트래픽을 전송할 때 VRRP 가상 맥 대신 nic mac을 사용하기 위해 UCARP를 해킹하지 못한 것으로 보입니다.)

그들이 UCARP를 해킹했다면 멀티 캐스트를 사용하고 있다고 확신합니까?


이미 동일한 VLAN에서 코어에 PIM 라우터를 설정했습니다. 그렇게하면 쿼리자가 필요하지 않습니까?
pauska

1
이론적으로는 그렇습니다. 스위치에 질의자가 있는지 확인하십시오. ( show ip igmp snooping querier vlan 367Cisco의 경우)
Ricky Beam

그들은 질의자를 보지 못하지만 mrouter (sh ip igmp snooping mrouter)를 봅니다. 나는 탐구자와 mrouter를 가지고 있어야합니까? 나는 후자가 첫 번째 것을 대체한다고 생각했다.
pauska

1
나는 델이 그것을 취급하는지 모른다. 내 cisco, hp 및 adtran 스위치는 PIM mrouter를 쿼리 자로 표시하지만 PIM 자체 지원이 부족하거나 구성되어 있지 않습니다.
Ricky Beam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.