vRouter 패킷 경로 추적
Contrail Networking은 가상 머신(VM)에서 패킷을 받아 대상으로 전달하는 구성 요소입니다. 추적은 패킷 경로를 디버깅하는 데 유용한 도구입니다.
이 주제에서는 다음 사용 사례에서 vRouter 패킷 경로를 추적합니다.
유니캐스트 패킷 경로 - VN 내
이 절차에서는 VM1에서 VM2(동일한 컴퓨팅 노드) 및 VM3(다른 컴퓨팅 노드)으로 가상 네트워크 내(VN 내) 트래픽에 대한 유니캐스트 패킷 경로를 디버깅하는 단계를 단계별로 설명합니다. 이 예에서 나열된 VM은 동일한 서브넷 10.1.1.0/24에 있습니다. VN 내 트래픽이 동일한 가상 네트워크 내에 있습니다.
| VM1 | IP 주소 |
| VM2 | IP 주소 |
| VM3 | IP 주소 |
컴퓨팅 내 사용 사례
다음 명령을 사용하여 VM의 VMI(가상 머신 인터페이스)에 해당하는 인터페이스를 검색합니다
vif.vif --list
또한 introspect URL을
vif입력하여 인터페이스를 검색할 수 있습니다.본보기:
http://10.1.1.5:8085/Snh_ItfReq?name=&type=&uuid=&vn=&mac=&ipv4_address=&ipv6_address=&parent_uuid=&ip_active=&ip6_active=&l2_active=
메모:IP 주소를 인트로스펙트 HTTP URL의 실제 컴퓨팅 IP 주소로 바꿉니다.
vif --get <index>명령을 실행하여 vRouter 인터페이스(VIF)에 가상 라우팅 및 포워딩(VRF) 및 정책 플래그가 설정되어 있는지 확인합니다.각각
vif에 대한 출력 확인 플래그의 예:vif0/4 OS: tapdd789d34-27 Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.5 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:30 bytes:8676 errors:0 TX packets:170 bytes:7140 errors:0 ISID: 0 Bmac: 02:dd:78:9d:34:27 Drops:81 vif0/6 OS: tapaedbc037-bf Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.6 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:96316 bytes:4858043 errors:0 TX packets:96562 bytes:4884177 errors:0 ISID: 0 Bmac: 02:ae:db:c0:37:bf Drops:2다음 명령을 실행하여 브리지 테이블의 모든 항목을 표시합니다.
rt --dump <vrf id> --family bridge
본보기:
rt --dump 2 --family bridge Flags: L=Label Valid, Df=DHCP flood, Mm=Mac Moved, L2c=L2 Evpn Control Word, N=New Entry, Ec=EvpnControlProcessing vRouter bridge table 0/2 Index DestMac Flags Label/VNID Nexthop Stats 31264 0:0:5e:0:1:0 Df - 3 206834 79784 2:dd:78:9d:34:27 Df - 44 4 112924 ff:ff:ff:ff:ff:ff LDf 5 48 35 115240 2:0:0:0:0:2 Df - 12 0 169408 2:ae:db:c0:37:bf Df - 25 1 183944 2:99:ef:64:96:e1 LDf 27 20 0 205564 2:0:0:0:0:1 Df - 12 0 252380 0:25:90:c5:58:94 Df - 3 0이 예에서는 브리지 테이블에 있는 대상 VM의 대상 MAC 주소 및 이와 연결된 다음 홉 식별자가 강조 표시됩니다.
Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
nh --get 25 Id:25 Type:Encap Fmly:AF_BRIDGE Rid:0 Ref_cnt:3 Vrf:2 Flags:Valid, Policy, Etree Root, EncapFmly:0806 Oif:6 Len:14 Encap Data: 02 ae db c0 37 bf 00 00 5e 00 01 00 08 00예를 들어, 은(는)
Oif:6패킷에 대한 발신 인터페이스인 다음 홉의 OIF 인덱스입니다. 은Encap Data(는) 패킷이 발신 인터페이스로 전달되기 전에 IP 패킷에 추가되는 L2 캡슐화에 해당합니다.나가는 VIF 세부 정보를 가져오려면 실행합니다
vif --get <oifindex>.본보기:
vif --get 6 vif0/6 OS: tapaedbc037-bf Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.6 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:96935 bytes:4892936 errors:0 TX packets:97235 bytes:4921004 errors:0 ISID: 0 Bmac: 02:ae:db:c0:37:bf Drops:2해당 VIF 인터페이스에 대한 수신 패킷
RX및 전송 패킷TX카운터는 트래픽이 통과할 때 증가합니다.flow -l명령을 실행하여 생성된 흐름을 나열합니다. VIF에서 정책 플래그가 사용되도록 설정된 경우 예제와 같이 흐름이 생성됩니다.예: 에서 ping
10.1.1.6합니다10.1.1.5.flow -l Index Source:Port/Destination:Port Proto(V) ----------------------------------------------------------------------------------------- 876<=>1020 10.1.1.6:1599 1 (2) 10.1.1.5:0 (Gen: 12, K(nh):21, Action:F, Flags:, QOS:-1, S(nh):21, Stats:9/882, SPort 54920, TTL 0, Sinfo 6.0.0.0) 1020<=>876 10.1.1.5:1599 1 (2) 10.1.1.6:0 (Gen: 2, K(nh):29, Action:F, Flags:, QOS:-1, S(nh):29, Stats:9/882, SPort 58271, TTL 0, Sinfo 4.0.0.0)트래픽이 통과할 때 순방향 및 역방향 흐름의 통계가 증가합니다. 특정 흐름에 대한 통계가 증가하지 않는 경우 해당 방향에 잠재적인 문제가 있음을 나타낼 수 있습니다. 플로우 작업은 패킷이 포워딩 또는 NATed 아웃되기 위한 또는
N이어야F합니다. 의D플로우 작업은 패킷이 드롭됨을 나타냅니다.vrouter_agent_debug스크립트를 실행하여 모든 관련 로그를 수집합니다.
컴퓨팅 간 사용 사례
컴퓨팅 간 사례에서 다음 홉 조회는 패킷을 다른 컴퓨팅 노드로 가져가는 터널을 가리킵니다. 또한 브리지 항목은 캡슐화 중에 패킷에 추가된 레이블/VNID를 나타냅니다. 컴퓨팅 간 트래픽은 서로 다른 컴퓨팅 노드의 VM 간에 발생합니다.
컴퓨팅 1의 경우:
다음 명령을 사용하여 VM의 VMI(가상 머신 인터페이스)에 해당하는 인터페이스를 검색합니다
vif.vif --list
또한 introspect URL을
vif입력하여 인터페이스를 검색할 수 있습니다.본보기:
http://10.1.1.5:8085/Snh_ItfReq?name=&type=&uuid=&vn=&mac=&ipv4_address=&ipv6_address=&parent_uuid=&ip_active=&ip6_active=&l2_active=
메모:IP 주소를 인트로스펙트 HTTP URL의 실제 컴퓨팅 IP 주소로 바꿉니다.
vif --get <index>명령을 실행하여 vRouter 인터페이스(VIF)에 가상 라우팅 및 포워딩(VRF) 및 정책 플래그가 설정되어 있는지 확인합니다.각각
vif에 대한 출력 확인 플래그의 예:vif0/4 OS: tapdd789d34-27 Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.5 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:30 bytes:8676 errors:0 TX packets:170 bytes:7140 errors:0 ISID: 0 Bmac: 02:dd:78:9d:34:27 Drops:81 vif0/6 OS: tapaedbc037-bf Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.6 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:96316 bytes:4858043 errors:0 TX packets:96562 bytes:4884177 errors:0 ISID: 0 Bmac: 02:ae:db:c0:37:bf다음 명령을 실행하여 브리지 테이블의 모든 항목을 표시합니다.
rt --dump <vrf id> --family bridge
본보기:
rt --dump 2 --family bridge Flags: L=Label Valid, Df=DHCP flood, Mm=Mac Moved, L2c=L2 Evpn Control Word, N=New Entry, Ec=EvpnControlProcessing vRouter bridge table 0/2 Index DestMac Flags Label/VNID Nexthop Stats 31264 0:0:5e:0:1:0 Df - 3 206834 79784 2:dd:78:9d:34:27 Df - 44 4 112924 ff:ff:ff:ff:ff:ff LDf 5 48 35 115240 2:0:0:0:0:2 Df - 12 0 169408 2:ae:db:c0:37:bf Df - 25 1 183944 2:99:ef:64:96:e1 LDf 27 20 0 205564 2:0:0:0:0:1 Df - 12 0 252380 0:25:90:c5:58:94 Df - 3 0이 예에서 은(는)
2:99:ef:64:96:e1IP 주소10.1.1.7에 속하며 레이블27은 패킷을 캡슐화하는 데 사용됩니다.다음 홉 세부 정보를 가져오기 위해 실행합니다
nh --get <nh id>.본보기:
nh --get 20 Id:20 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:12 Vrf:0 Flags:Valid, MPLSoGRE, Etree Root, Oif:0 Len:14 Data:00 25 90 c5 62 1c 00 25 90 c5 58 94 08 00 Sip:10.204.217.86 Dip:10.204.217.70
예에서 다음 홉 출력은 다음 홉 유형을 (으)로, 캡슐화는 (
MPLSoGRE으)로Tunnel, 발신 인터페이스는 (으)로Oif:0, 터널의 해당 소스 및 대상 IP 주소를 나타냅니다.
컴퓨팅 2의 경우:
mpls --get <label>명령을 실행하여 특정 수신 MPLS 테이블에 매핑된 다음 홉을 확인합니다.본보기:
mpls --get 27 MPLS Input Label Map Label NextHop ------------------------- 27 28다음 홉 세부 정보를 가져오기 위해 실행합니다
nh --get <nh_id>.본보기:
nh --get 28 Id:28 Type:Encap Fmly:AF_BRIDGE Rid:0 Ref_cnt:3 Vrf:2 Flags:Valid, Policy, Etree Root, EncapFmly:0806 Oif:3 Len:14 Encap Data: 02 99 ef 64 96 e1 00 00 5e 00 01 00 08 00나가는 VIF 세부 정보를 가져오려면 실행합니다
vif --get <oifindex>.본보기:
vif --get 3 vif0/3 OS: tap99ef6496-e1 Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.7 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:34 bytes:10044 errors:0 TX packets:1699 bytes:78990 errors:0 Drops:93
유니캐스트 패킷 경로 - VN 간
다음 절차에서는 VM1에서 VM2(동일한 컴퓨팅 노드) 및 VM3(다른 컴퓨팅 노드)으로의 패킷 경로를 디버깅하는 단계를 수행합니다. 이 예에서 나열된 VM(가상 머신)은 동일한 서브넷 10.1.1.0/24에 있습니다.
| VM1 | IP 주소 |
| VM2 | IP 주소 |
| VM3 | IP 주소 |
모든 자체 검사 URL에서 IP 주소를 실제 컴퓨팅 IP 주소로 바꿉니다.
컴퓨팅 내 사용 사례
다음 명령을 사용하여 VM의 VMI(가상 머신 인터페이스)에 해당하는 인터페이스를 검색합니다
vif.vif --list
또한 introspect URL을
vif입력하여 인터페이스를 검색할 수 있습니다.본보기:
http://10.1.1.5:8085/Snh_ItfReq?name=&type=&uuid=&vn=&mac=&ipv4_address=&ipv6_address=&parent_uuid=&ip_active=&ip6_active=&l2_active=
메모:자체 점검 HTTP URL에서 IP 주소를 실제 컴퓨팅 IP 주소로 바꿉니다.
vif --get <index>명령을 실행하여 vRouter 인터페이스(VIF)에 가상 라우팅 및 포워딩(VRF) 및 정책 플래그가 설정되어 있는지 확인합니다.각각
vif에 대한 출력 확인 플래그의 예:vif0/4 OS: tapdd789d34-27 Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.5 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:30 bytes:8676 errors:0 TX packets:170 bytes:7140 errors:0 ISID: 0 Bmac: 02:dd:78:9d:34:27 Drops:81 vif0/6 OS: tapaedbc037-bf Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:10.1.1.6 Vrf:2 Mcast Vrf:2 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:96316 bytes:4858043 errors:0 TX packets:96562 bytes:4884177 errors:0 ISID: 0 Bmac: 02:ae:db:c0:37:bf Drops:2다음 명령을 실행하여 브리지 테이블의 모든 항목을 표시합니다.
rt --dump <vrf id> --family bridge
본보기:
rt --dump 2 --family bridge Flags: L=Label Valid, Df=DHCP flood, Mm=Mac Moved, L2c=L2 Evpn Control Word, N=New Entry, Ec=EvpnControlProcessing vRouter bridge table 0/2 Index DestMac Flags Label/VNID Nexthop Stats 31264 0:0:5e:0:1:0 Df - 3 212744 79784 2:dd:78:9d:34:27 Df - 44 408 112924 ff:ff:ff:ff:ff:ff LDf 5 51 38 115240 2:0:0:0:0:2 Df - 12 0 169408 2:ae:db:c0:37:bf Df - 25 405 183944 2:99:ef:64:96:e1 LDf 5 37 0 205564 2:0:0:0:0:1 Df - 12 0 252380 0:25:90:c5:58:94 Df - 3 0가상 네트워크 간(VN)의 경우, 패킷은 레이어 2 스위칭 대신 레이어 3 라우팅됩니다. vRouter는 소스의 ARP 요청에 대한 가상 MAC 주소
0:0:5e:0:1:0백을 제공하는 대상 네트워크에 대한 프록시 ARP를 수행합니다. 이는 소스 VN inet 테이블의 에서rt –dump확인할 수 있습니다. 이로 인해 vRouter에서 패킷이 수신되며, vRouter는 경로 조회를 수행하여 패킷을 올바른 대상으로 보냅니다.Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
nh --get 3 Id:3 Type:L2 Receive Fmly: AF_INET Rid:0 Ref_cnt:8 Vrf:0 Flags:Valid, Etree Root,지정된 IP 주소의 inet 제품군 경로를 표시하려면 실행합니다
rt --dump 2 --family inet | grep <ip address>.본보기:
rt --dump 2 --family inet | grep 20.1.1.6 Destination PPL Flags Label Nexthop Stitched MAC(Index) 20.1.1.6/32 32 P - 30 - 20.1.1.60/32 0 - 0 - 20.1.1.61/32 0 - 0 - 20.1.1.62/32 0 - 0 - 20.1.1.63/32 0 - 0 - 20.1.1.64/32 0 - 0 - 20.1.1.65/32 0 - 0 - 20.1.1.66/32 0 - 0 - 20.1.1.67/32 0 - 0 - 20.1.1.68/32 0 - 0 - 20.1.1.69/32 0 - 0 - 20.1.106.0/24 0 - 0 -
다음 홉 세부 정보를 가져오기 위해 실행합니다
nh --get <nh id>.본보기:
nh --get 30 Id:30 Type:Encap Fmly: AF_INET Rid:0 Ref_cnt:5 Vrf:3 Flags:Valid, Policy, Etree Root, EncapFmly:0806 Oif:3 Len:14 Encap Data: 02 60 fc 55 cb bf 00 00 5e 00 01 00 08 00나가는 VIF 세부 정보를 가져오려면 실행합니다
vif --get <oifindex>.본보기:
vif --get 3 vif0/3 OS: tap60fc55cb-bf Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:20.1.1.6 Vrf:3 Mcast Vrf:3 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:356 bytes:32586 errors:0 TX packets:3930 bytes:177290 errors:0 ISID: 0 Bmac: 02:60:fc:55:cb:bf Drops:84
컴퓨팅 간 사용 사례
컴퓨팅 간의 경우 패킷을 보내기 위해 조회된 다음 홉이 터널 다음 홉을 가리킵니다. 캡슐화 우선순위에 따라 적절한 캡슐화가 추가되고 패킷이 터널링됩니다. 컴퓨팅 간 트래픽은 서로 다른 컴퓨팅 노드의 VM 간에 발생합니다.
컴퓨팅 1의 경우:
지정된 IP 주소에 대한 inet 제품군 경로를 표시하려면 실행합니다
rt --dump 2 --family inet | grep <ip address>.본보기:
rt --dump 2 --family inet | grep 20.1.1.5 20.1.1.5/32 32 LP 32 49 - 20.1.1.50/32 0 - 0 - 20.1.1.51/32 0 - 0 - 20.1.1.52/32 0 - 0 - 20.1.1.53/32 0 - 0 - 20.1.1.54/32 0 - 0 - 20.1.1.55/32 0 - 0 - 20.1.1.56/32 0 - 0 - 20.1.1.57/32 0 - 0 - 20.1.1.58/32 0 - 0 -
터널 다음 홉을 가리키는 다음 홉 세부 정보를 표시하려면 실행합니다
nh --get <nh id>.본보기:
nh --get 49 Id:49 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:9 Vrf:0 Flags:Valid, MPLSoUDP, Etree Root, Oif:0 Len:14 Data:00 25 90 c5 62 1c 00 25 90 c5 58 94 08 00 Sip:10.204.217.86 Dip:10.204.217.70
컴퓨팅 2의 경우:
mpls --get <label>명령을 실행하여 특정 수신 MPLS 테이블에 매핑된 다음 홉을 확인합니다.본보기:
mpls --get 32 MPLS Input Label Map Label NextHop ------------------------- 32 36다음 홉 세부 정보를 보려면 실행합니다
nh --get <nh id>.본보기:
nh --get 36 Id:36 Type:Encap Fmly: AF_INET Rid:0 Ref_cnt:5 Vrf:3 Flags:Valid, Policy, Etree Root, EncapFmly:0806 Oif:4 Len:14 Encap Data: 02 f3 37 7b 53 25 00 00 5e 00 01 00 08 00예를 들어, 은(는)
Oif:4패킷에 대한 발신 인터페이스인 다음 홉의 OIF 인덱스입니다. 은Encap Data(는) 패킷이 발신 인터페이스로 전달되기 전에 IP 패킷에 추가되는 L2 캡슐화에 해당합니다.나가는 VIF 세부 정보를 가져오려면 실행합니다
vif --get <oifindex>.본보기:
vif --get 4 vif0/4 OS: tapf3377b53-25 Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:20.1.1.5 Vrf:3 Mcast Vrf:3 Flags:PL3L2Er QOS:-1 Ref:6 RX packets:100 bytes:16915 errors:0 TX packets:3955 bytes:178363 errors:0 ISID: 0 Bmac: 02:f3:37:7b:53:25 Drops:78Contrail Networking의 EVPN Type 5 라우팅에 대한 자세한 내용은 EVPN Route Type 5 지원을 참조하십시오.
브로드캐스트, 알 수 없는 유니캐스트 및 멀티캐스트 패킷 경로
다음 절차는 Contrail Networking에서 브로드캐스트, 알 수 없는 유니캐스트 및 멀티캐스트(BUM) 트래픽의 패킷 경로를 디버깅하는 단계별로 설명합니다. 이 예에서 나열된 VM(가상 머신)은 동일한 서브넷 70.70.70.0/24에 있습니다.
ToR 서비스 노드(TSN)는 적극적으로 다음을 담당합니다.contrail-tor-agent
ToR 스위치에서 들어오는 모든 BUM 트래픽의 수신자 역할을 합니다.
ToR 스위치에 연결된 BMS에 대한 DNS/DHCP 응답자 역할을 합니다.
Contrail Networking 5.x 이전 릴리스에서는 OVSDB(Open vSwitch Database) 매니지드 VXLAN 환경을 사용했습니다.
OVSDB 매니지드 VXLAN의 토폴로지 예시는 다음과 같습니다.
ToR SW1(Top-of-Rack Switch 1) - 10.204.74.229(lo0.0 = 1.1.1.229)
ToR SW2(TOR(Top-of-Rack Switch 2) - 10.204.74.230(lo0.0 = 1.1.1.230)
ToR 서비스 노드 1(TSN1) = 10.219.94.7
ToR 서비스 노드 2(TSN2) = 10.219.94.8
컨트롤러1 = 10.219.94.4
컨트롤러2 = 10.219.94.5
컨트롤러3 = 10.219.94.6
컴퓨팅1 = 10.219.94.9
컴퓨팅2 = 19.219.94.18
가상 네트워크(VN) = 70.70.70.0/24
가상 머신 1(VM1) = Compute2에 상주하는 70.70.70.3
VM2(가상 머신 2) = Compute1에 있는 70.70.70.5
베어메탈 서버 1(BMS1) = 70.70.70.100
베어메탈 서버 2(BMS2) = 70.70.70.101
set protocols ovsdb interfaces <interface>명령을 실행하여 OVSDB 프로토콜이 관리할 물리적 인터페이스를 구성합니다.본보기:
set protocols ovsdb interfaces ge-0/0/46 set protocols ovsdb interfaces ge-0/0/90
BMS가 중단된 ToR 인터페이스는 로
ovsdb interfaces표시됩니다.ToR 스위치에 대한 테이블을 표시
ovsdb mac하여 이러한 인터페이스로 들어오는 패킷을 확인합니다.본보기:
root@QFX5100-229> show ovsdb mac Logical Switch Name: Contrail-9ed1f70a-6eac-4cdb-837a-1579728fd9a1 Mac IP Encapsulation Vtep Address Address Address ff:ff:ff:ff:ff:ff 0.0.0.0 Vxlan over Ipv4 1.1.1.229 40:a6:77:d8:37:1d 0.0.0.0 Vxlan over Ipv4 1.1.1.229 02:3b:ce:56:61:98 0.0.0.0 Vxlan over Ipv4 10.219.94.18 02:53:89:c4:29:1c 0.0.0.0 Vxlan over Ipv4 10.219.94.18 02:72:e9:7a:cd:f5 0.0.0.0 Vxlan over Ipv4 10.219.94.9 02:75:a1:33:65:3c 0.0.0.0 Vxlan over Ipv4 10.219.94.9 ff:ff:ff:ff:ff:ff 0.0.0.0 Vxlan over Ipv4 10.219.94.7 {master:0}
빨간색으로 표시된 항목(
ff:ff:ff:ff:ff:ff:ff- 브로드캐스트 경로)은 ToR SW로 들어오는 BUM 패킷의 다음 홉을ovsdb interface나타냅니다. 이 경우 VTEP 주소10.219.94.7는 다음 홉인 TSN1입니다. 이는 해당 ToR 스위치에 대해 활성contrail-tor-agent상태인 TSN에 따라 변경됩니다. 이를 통해 BUM 패킷은 VXLAN 터널의 TSN 노드로 전달됩니다(로컬 VTEP 소스 인터페이스는 이고1.1.1.229RVTEP 소스 인터페이스는 임10.219.94.7).VXLAN 캡슐화 패킷은 논리 인터페이스가 생성될 때 Contrail Networking에 의해 미리 결정된 VXLAN 네트워크 식별자(VNI)와 함께 전송됩니다. 예를 들어, 이(가) Contrail Networking에서 논리적 포트로 구성된 경우
ge-0/0/46, ToR에서 다음 구성이 커밋되었습니다.본보기:
set vlans Contrail-9ed1f70a-6eac-4cdb-837a-1579728fd9a1 interface ge-0/0/46.0 set vlans Contrail-9ed1f70a-6eac-4cdb-837a-1579728fd9a1 interface ge-0/0/90.0 set vlans Contrail-9ed1f70a-6eac-4cdb-837a-1579728fd9a1 vxlan vni 4VXLAN 캡슐화된 패킷이 TSN 노드에 도착하면 vRouter가 이 패킷을 처리하는 방법을 살펴보겠습니다.
VXLAN 테이블을 덤프하기 위해 실행합니다
vxlan --dump. VXLAN 테이블은 네트워크 ID를 다음 홉으로 매핑합니다.본보기:
root@contrail61:~# vxlan --dump VXLAN Table VNID NextHop ---------------- 4 13이 예에서 다음 홉
13은 VNI4에 대해 프로그래밍됩니다.다음을
nh --get <nh id>실행하여 다음 홉 세부 정보를 표시하고 연결된 가상 라우팅 및 포워딩(VRF)을 확인합니다.본보기:
root@contrail61:~# nh --get 13 Id:13 Type:Vrf_Translate Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Vxlan, Vrf:1다음 명령을 실행하여 브리지 테이블의 모든 항목을 표시합니다.
rt --dump <vrf id> --family bridge
본보기:
root@contrail61:~# rt --dump 1 --family bridge Flags: L=Label Valid, Df=DHCP flood vRouter bridge table 0/1 Index DestMac Flags Label/VNID Nexthop 30780 0:1a:a0:e:30:26 - 1 57812 2:53:89:c4:29:1c LDf 17 15 70532 2:3b:ce:56:61:98 LDf 20 15 87024 2:72:e9:7a:cd:f5 LDf 17 14 97192 ff:ff:ff:ff:ff:ff LDf 4 24 121160 0:1a:a0:a:b4:87 - 1 225832 40:a6:77:d8:37:1d LDf 4 19 237084 0:11:a:6c:50:d4 Df - 3 244992 aa:bb:cc:dd:3e:f4 - 1 252916 0:0:5e:0:1:0 Df - 3 256476 2:75:a1:33:65:3c LDf 20 14
예제 브리지 테이블에서는 BUM 패킷 경로를 추적하므로 프로그래밍된 다음 홉을 선택하여 ff:ff:ff:ff:ff 경로를 검사해야 합니다. 예제에서는 24입니다. 일련의 복합 다음 홉이 프로그래밍됩니다.
Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
root@contrail61:~# nh --get 24 Id:24 Type:Composite Fmly:AF_BRIDGE Rid:0 Ref_cnt:4 Vrf:1 Flags:Valid, Multicast, L2, Sub NH(label): 20(0) 22(0) 21(0) Id:20 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Tor, Sub NH(label): 19(4) Id:19 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:3 Vrf:0 Flags:Valid, Vxlan, Oif:0 Len:14 Flags Valid, Vxlan, Data:00 00 5e 00 01 21 00 11 0a 6c 50 d4 08 00 Vrf:0 Sip:10.219.94.7 Dip:1.1.1.229 << Source where the BUM Traffic came from. Id:22 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Evpn, Sub NH(label): Id:21 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Fabric, Sub NH(label): 15(4099) Id:15 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:6 Vrf:0 Flags:Valid, MPLSoGRE, Oif:0 Len:14 Flags Valid, MPLSoGRE, Data:f8 bc 12 33 43 31 00 11 0a 6c 50 d4 08 00 Vrf:0 Sip:10.219.94.7 Dip:10.219.94.18 << Compute node which has a VM in this VN.예제의 멀티캐스트 트리는 두 개의 DIP(Dynamic IP)가 있음을 보여줍니다. 패킷이 발생한 DIP는 무시됩니다. 따라서 패킷은 DIP
10.219.94.18로만 전달됩니다.DIP
10.219.94.18가 수신 VXLAN 캡슐화 패킷으로 어떤 작업을 수행하는지 조사하기 위해 실행합니다vxlan --get <vnid>.본보기:
root@contrail4:~# vxlan --get 4 VXLAN Table VNID NextHop ---------------- 4 20Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
root@contrail4:~# nh --get 20 Id:20 Type:Vrf_Translate Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Vxlan, Vrf:1다음 명령을 실행하여 브리지 테이블의 모든 항목을 표시합니다.
rt --dump <vrf id> --family bridge
본보기:
root@contrail4:~# rt --dump 1 --family bridge Flags: L=Label Valid, Df=DHCP flood vRouter bridge table 0/1 Index DestMac Flags Label/VNID Nexthop 57812 2:53:89:c4:29:1c - 15 70532 2:3b:ce:56:61:98 - 22 87024 2:72:e9:7a:cd:f5 LDf 17 25 97192 ff:ff:ff:ff:ff:ff LDf 4 50 112856 f8:bc:12:33:43:31 Df - 3 225832 40:a6:77:d8:37:1d LDf 4 18 252916 0:0:5e:0:1:0 Df - 3 256476 2:75:a1:33:65:3c LDf 20 25
예제 브리지 테이블에서는 BUM 패킷 경로를 추적하므로 프로그래밍된 다음 홉을 선택하여 ff:ff:ff:ff:ff 경로를 검사해야 합니다. 예제에서는 50입니다.
Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
root@contrail4:~# nh --get 50 Id:50 Type:Composite Fmly:AF_BRIDGE Rid:0 Ref_cnt:4 Vrf:1 Flags:Valid, Multicast, L2, Sub NH(label): 43(0) 49(0) Id:43 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Fabric, Sub NH(label): 31(4612) 25(4617) Id:31 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:0 Flags:Valid, MPLSoGRE, Oif:0 Len:14 Flags Valid, MPLSoGRE, Data:00 11 0a 6c 50 d4 f8 bc 12 33 43 31 08 00 Vrf:0 Sip:10.219.94.18 Dip:10.219.94.7 <<< Source where the BUM traffic came from. Id:25 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:2562 Vrf:0 Flags:Valid, MPLSoGRE, Oif:0 Len:14 Flags Valid, MPLSoGRE, Data:44 a8 42 3a 94 f4 f8 bc 12 33 43 31 08 00 Vrf:0 Sip:10.219.94.18 Dip:10.219.94.9 <<< Compute node which has a VM in this VN. Id:49 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Encap, Sub NH(label): 14(0) 21(0) Id:14 Type:Encap Fmly:AF_BRIDGE Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, EncapFmly:0806 Oif:4 Len:14 Encap Data: 02 53 89 c4 29 1c 00 00 5e 00 01 00 08 00 Id:21 Type:Encap Fmly:AF_BRIDGE Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, EncapFmly:0806 Oif:3 Len:14 Encap Data: 02 3b ce 56 61 98 00 00 5e 00 01 00 08 00 <<< Local VM belonging to this VN that is an intended receiver of this multicast traffic.이 예에서는 DIP
10.219.94.9만 검사하면 됩니다. 나머지 엔드포인트는 로컬이거나 BUM 트래픽이 발생한 소스입니다. 이제 수신 VXLAN 캡슐화 패킷으로 DIP10.219.94.9가 어떤 작업을 수행하는지 살펴보겠습니다.DIP
10.219.94.9가 수신 VXLAN 캡슐화 패킷으로 어떤 작업을 수행하는지 조사하기 위해 실행합니다vxlan --get <vnid>.본보기:
root@contrail101:~# vxlan --get 4 VXLAN Table VNID NextHop ---------------- 4 20Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
root@contrail101:~# nh --get 20 Id:20 Type:Vrf_Translate Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Vxlan, Vrf:1다음 명령을 사용하여 VRF에 대한 브리지 테이블을 표시합니다.
rt --dump <vrf id> --family bridge
본보기:
root@contrail101:~# rt --dump 1 --family bridge Flags: L=Label Valid, Df=DHCP flood vRouter bridge table 0/1 Index DestMac Flags Label/VNID Nexthop 57812 2:53:89:c4:29:1c LDf 17 28 70532 2:3b:ce:56:61:98 LDf 20 28 87024 2:72:e9:7a:cd:f5 - 15 97192 ff:ff:ff:ff:ff:ff LDf 4 31 140744 44:a8:42:3a:94:f4 Df - 3 225832 40:a6:77:d8:37:1d LDf 4 24 252916 0:0:5e:0:1:0 Df - 3 256476 2:75:a1:33:65:3c - 22 Encap Data: f8 bc 12 33 43 31 44 a8 42 3a 94 f4 08 00
Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
root@contrail101:~# nh --get 31 Id:31 Type:Composite Fmly:AF_BRIDGE Rid:0 Ref_cnt:4 Vrf:1 Flags:Valid, Multicast, L2, Sub NH(label): 30(0) 36(0) Id:30 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Fabric, Sub NH(label): 29(4612) 28(4099) Id:29 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:0 Flags:Valid, MPLSoGRE, Oif:0 Len:14 Flags Valid, MPLSoGRE, Data:00 11 0a 6c 50 ac 44 a8 42 3a 94 f4 08 00 Vrf:0 Sip:10.219.94.9 Dip:10.219.94.8 << TSN2 in this topology that is managing a ToR with an end-point belonging to this VN. Id:28 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:2566 Vrf:0 Flags:Valid, MPLSoGRE, Oif:0 Len:14 Flags Valid, MPLSoGRE, Data:f8 bc 12 33 43 31 44 a8 42 3a 94 f4 08 00 Vrf:0 Sip:10.219.94.9 Dip:10.219.94.18 << Source where the BUM traffic came from. Id:36 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Encap, Sub NH(label): 14(0) 21(0) Id:14 Type:Encap Fmly:AF_BRIDGE Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, EncapFmly:0806 Oif:3 Len:14 Encap Data: 02 72 e9 7a cd f5 00 00 5e 00 01 00 08 00 << local VM that is an intended receiver of this traffic as it is tagged to this VN Id:21 Type:Encap Fmly:AF_BRIDGE Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, EncapFmly:0806 Oif:4 Len:14 Encap Data: 02 75 a1 33 65 3c 00 00 5e 00 01 00 08 00 << Local VM that is an intended receiver of this traffic since it is tagged to this VN.위의 출력에서 추가로 검사해야 하는 유일한 DIP는
10.219.94.8입니다. 나머지 DIP는 로컬이거나 BUM 트래픽이 발생한 소스입니다. 이제 수신 VXLAN 캡슐화 패킷으로 DIP10.219.94.8가 어떤 작업을 수행하는지 살펴보겠습니다.DIP
10.219.94.9가 수신 VXLAN 캡슐화 패킷으로 어떤 작업을 수행하는지 조사하기 위해 실행합니다vxlan --get <vnid>.본보기:
root@contrail66:~# vxlan --get 4 VXLAN Table VNID NextHop ---------------- 4 14Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
root@contrail66:~# nh --get 14 Id:14 Type:Vrf_Translate Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Vxlan, Vrf:1다음 명령을 사용하여 VRF에 대한 브리지 테이블을 표시합니다.
rt --dump <vrf id> --family bridge
본보기:
root@contrail66:~# rt --dump 1 --family bridge Flags: L=Label Valid, Df=DHCP flood vRouter bridge table 0/1 Index DestMac Flags Label/VNID Nexthop 30780 0:1a:a0:e:30:26 - 1 57812 2:53:89:c4:29:1c LDf 17 17 70532 2:3b:ce:56:61:98 LDf 20 17 87024 2:72:e9:7a:cd:f5 LDf 17 16 97192 ff:ff:ff:ff:ff:ff LDf 4 24 121160 0:1a:a0:a:b4:87 - 1 217208 0:11:a:6c:50:ac Df - 3 225832 40:a6:77:d8:37:1d LDf 4 20 244992 aa:bb:cc:dd:3e:f4 - 1 252916 0:0:5e:0:1:0 Df - 3 256476 2:75:a1:33:65:3c LDf 20 16
Run
nh --get <nh id>을 실행하여 다음 홉 세부 정보를 표시합니다.본보기:
root@contrail66:~# nh --get 24 Id:24 Type:Composite Fmly:AF_BRIDGE Rid:0 Ref_cnt:4 Vrf:1 Flags:Valid, Multicast, L2, Sub NH(label): 23(0) 25(0) 21(0) Id:23 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Tor, Sub NH(label): 22(4) Id:22 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:0 Flags:Valid, Vxlan, Oif:0 Len:14 Flags Valid, Vxlan, Data:00 00 5e 00 01 21 00 11 0a 6c 50 ac 08 00 Vrf:0 Sip:10.219.94.8 Dip:1.1.1.230 <<< Another ToR switch that has an end-point belonging to this VN. Id:25 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Evpn, Sub NH(label): Id:21 Type:Composite Fmly: AF_INET Rid:0 Ref_cnt:2 Vrf:1 Flags:Valid, Fabric, Sub NH(label): 16(4617) Id:16 Type:Tunnel Fmly: AF_INET Rid:0 Ref_cnt:6 Vrf:0 Flags:Valid, MPLSoGRE, Oif:0 Len:14 Flags Valid, MPLSoGRE, Data:44 a8 42 3a 94 f4 00 11 0a 6c 50 ac 08 00 Vrf:0 Sip:10.219.94.8 Dip:10.219.94.9 <<< Source where the BUM traffic came from.이제 토폴로지에 ToR SW2인 DIP
1.1.1.230가 하나만 있습니다. 이 ToR SW에는 추적 중인 것과 동일한 VN(VNI=4)에 엔드포인트(BMS2)가 있으므로 멀티캐스트 트리에도 있어야 합니다.
이렇게 하면 하나의 ToR 스위치에서 모든 수준의 BUM 패킷 포워딩 및 추적이 완료되고 토폴로지의 다른 의도된 수신기로 복제됩니다.
이러한 멀티캐스트 트리는 TSN이 연결된 컨트롤러에 의해 프로그래밍됩니다. 컨트롤러의 메모리와 모든 TSN 컴퓨팅에서 최종적으로 프로그래밍되는 항목을 검사하려면 컨트롤러 IP 주소를 사용하여 다음 검사 URL을 입력합니다.
http://<controller_ip>:8083/Snh_ShowMulticastManagerDetailReq?x=default-domain:admin:seventy-network:seventy-network.ermvpn.0