네트워크 트래픽이 트렁크를 떠나는 것처럼 보이지 않습니다


8

새로운 가상화 서버를 준비하는 중이며 그중 일부는 더 높은 대역폭의 파이프를 서버에 가져 오는 것입니다. 궁극적 인 목표는 4 개의 GigE 포트를 802.1q 태그가 지정된 트래픽을 전달하는 단일 트렁크에 바인딩하는 것입니다. 나는 그것을 멀리 얻을 수 있지만 이상한 문제가 발생했습니다. 그러나 먼저 다이어그램.

----------       ----------  1GbE trunks 
|        | 10GbE |        | ------------- --------
|  SW1   |-------|   SW2  | ------------- | VM1  |
|        |       |        | ------------- --------
----------       ----------
     |                |  1GbE  -----------
     | 1GbE           |--------| client2 |
     |                         -----------
----------
|        | 1GbE -----------
|  SW3   |------| client1 |
|        |      -----------
----------

모든 스위치는 HP ProCurve 2910al 스위치이며 스택되지 않습니다. 위 다이어그램의 Client2는 VM1과 동일한 VLAN에 있습니다. Client1이 다른 VLAN에 있습니다. VM 시스템 (CentOS 6)의 경우 iptables 및 SELinux가 모두 비활성화되었습니다.

내 문제는 트렁크가 관련 될 때 클라이언트 컴퓨터와 통신 할 때 양방향 네트워크 트래픽이 불가능하다는 것입니다. TCPDUMP는 핑이 수신되고 ECHO REPLY 패킷이 전송되지만 VM 호스트는이를 볼 수 없음을 보여줍니다. 동시에 클라이언트 컴퓨터에서 VM을 핑하려고하면 작동하지 않습니다. 동일한 서브넷에있는 client2를 ping 할 수 없다는 사실은 네트워크 계층에서 무언가 어딘가에 문제가 있음을 시사합니다.

이상하게도 VM 호스트에서 모든 스위치의 게이트웨이 IP를 Ping 할 수 있습니다. 단일 인터페이스를 사용하면 VLAN 태깅 유무에 관계없이 모든 것이 잘 작동합니다. 단일 인터페이스를 바인딩하고 해당 인터페이스에서 VLAN 태그를 설정하면 어디든 갈 수 있습니다. 트렁크를 만들고 스위치 패브릭으로 제한합니다.

트렁크의 유형은 중요하지 않습니다. 지금은 LACP / 802.1qa를 사용하는 것과 같은 방식으로 작동하지만 모드 0 트렁크 (balance-rr)로 구성되어 있습니다.

vlan 70 
   name "Virtualization Subnet" 
   untagged 35,36,38,40 
   tagged Trk1-Trk2,Trk5,Trk8 
   no ip address 
   jumbo 
   exit 

이것이 바로 SW2의 VLAN 설정입니다. SW1의 VLAN 70 정의에는 "ip 주소"가 정의되어 있습니다. 위의 스 니펫은 완전히 취소 된 모드입니다. 내가 몸통을 때 :

trunk 35-36,38,40 Trk16 trunk
vlan 70 
   name "Virtualization Subnet" 
   tagged Trk1-Trk2,Trk5,Trk8,Trk16
   no ip address 
   jumbo 
   exit 

802.1qa / LACP 버전은 트렁크 정의를 교환 trunk 35-36,38,40 Trk16 lacp하지만 내가 말했듯이 문제 표시를 변경하지는 않습니다.

Client2는 실제로 SW1에 연결되어 있지만 차트에 배치하면 서식이 까다로워집니다. 어쨌든 인터페이스 스탠자의 유일한 것은 name지시문입니다. untaggedSW1의 VLAN 70 스탠자에 포트로 나열됩니다 .

내가 무엇을 놓치고 있습니까?


Procurve 스위치의 VLAN 스탠자를 게시 할 수 있습니까? 또한 하이퍼 바이저 (일명 VM) 1, 클라이언트 1 및 2가 사용하는 포트는 무엇입니까?
jftuga

@jftuga 스탠자가 입력되었습니다.
sysadmin1138

스위치 sw1,2,3의 경우 모든 업 링크 트렁크의 포트 (다른 ​​스위치로)가 VLAN 70에 태그되어 있습니까? 또한 tracert는 무엇을 보여줍니까?
jftuga

@jftuga 그렇습니다. 모든 스위치 간 링크는 트렁킹되고 태그가 붙어 있습니다. SW3에는 VLAN 70이 없습니다. Traceroute는 거의 관심을 보이지 않으며 추적은 VM 호스트에 도달 할 때 홉에서 죽습니다. 또한 스위치 자체에서 트렁크 상태 일 때 VM 호스트 IP 주소를 핑할 수 없습니다. 트렁크 포트를 스니핑하기 위해 무언가를 얻을 수 있는지 살펴 보겠습니다.
sysadmin1138

당신은 이것이 가상 머신처럼 VM이라고 말합니까? ESX (i)에서 이것을 실행하고 있습니까?
pauska

답변:


7

관련 채팅에서 오랜 논쟁 후 MikeyB , PauskaChrisS을 , 문제는 두 배 었죠 :

  1. CentOS 6의 가능한 버그는의 bonding일부로 모듈 의 모듈 옵션을 service network restart변경하지 않았으므로 LACP 모드 (4)와 roundrobin (0) 사이의 변경 사항을 추적하지 않았습니다.
  2. 라운드 로빈 모드는 ProCurve 스위치와 함께 작동하지 않습니다.

이 명령을 통해 본딩 된 인터페이스를 LACP / 802.1qa 모드로 강제 설정 한 후 :

ifconfig bond0 down
echo "4" > /sys/class/net/bond0/bonding/mode
ifconfig bond0 up

서버와 스위치 모두 대화 중이었습니다. 이 시점에서 스위치에서 하나의 인터페이스 만 활성화하면 트래픽이 정상적으로 작동하기 시작했습니다. 두 번째, 세 번째 및 마지막으로 네 번째 인터페이스는 모두 트래픽 작동을 유지했습니다.

궁극적으로 LACP 모드는 작동 방식입니다. 단서는 트렁크에 활성화 된 스위치 포트가 하나만있을 때 라운드 로빈 모드가 작동했다는 것입니다. 서버가 재부팅 된 후에도 올바른 모드로 나타납니다. 그러나 a service network restart는 파일 의 MODE="4"일부를 적용 하지 않습니다 . 해당 모드가 변경되면 부팅시 설정된 상태로 유지됩니다 (또는 모듈의 모듈로드 시간 일 가능성이 높습니다 ).ifcfg-bond0/etc/sysconfig/network-scripts/bonding


기꺼이 도와드립니다 :)
MikeyB

이 문제가 해결되어 다행입니다.
jftuga

매우 전문적인 질문과 답변. 누군가를 돕기 위해 바운드.
artifex

0

당신은 당신의 구성에 있습니다 :

trunk 35-36,38,40 Trk16 trunk
vlan 70 
   name "Virtualization Subnet" 
   tagged Trk1-Trk2,Trk5,Trk8,Trk16
   no ip address 
   jumbo 
   exit 

그렇게해서는 안됩니다 :

   untagged Trk16
   tagged Trk1-Trk2,Trk5,Trk8

글의 원본에 오류가 있지만 제안하는 내용이 아닙니다. 트렁킹되지 않은 설정 아래에는 vlan 70에 "태그가없는 Trk16"이 있어야합니다.
pauska

나는 그 변종도 시도했다. 두 변종 모두 동일한 방식으로 작동하지만 작동하지 않습니다. Linux 서버에서 인터페이스를 집계하려고 시도하지 않는 한 사용 untagged 35-36,38,40tagged 35-36,38,40...둘 다 작동합니다. untagged Trk16그리고 tagged Trk16...모두가 작동하지 않습니다.
sysadmin1138

젠 실행? Centos 6이 여전히 인터페이스 정의와 충돌합니까? VLAN 인터페이스가 잘못된 인터페이스 (브릿지 대신 phys 또는 그 반대로)에서 생성되어 이상한 일이 발생한 문제를 회상합니다.
MikeyB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.