- หน้าแรก
- เครือข่ายมัลติคลาวด์
- Customer Edge diagnostics
- Command reference
- Network commands
- เส้นทางและ next hop
เส้นทางและ next hop
Argo เก็บสถานะการส่งต่อแยกจาก Linux kernel เมื่อ
ip และคำสั่งเหล่านี้ขัดแย้งกัน คำสั่งเหล่านี้คือสิ่งที่ควบคุมการส่งทราฟฟิก
ตารางเส้นทาง vRouter แยกตาม VRF
{"command":["rt","--dump","2"]}Flags: L=Label Valid, P=Proxy ARP, T=Trap ARP, F=Flood ARP, H=Proxy ARP for host interface, V=Preferred VRFLabels/Misc: S=SiteId N=NetworkIdvRouter inet4 routing table 0/2/unicastDestination PPL Flags Label Nexthop Labels/Misc Number of routes: 4
0.0.0.0/0 0 - 0169.254.254.102/32 32 L 263 13172.16.12.126/32 32 L 0 46 (S,N):2298:0172.16.84.126/32 32 L 0 46 (S,N):2298:0ตาราง next-hop ทุกเส้นทางชี้ไปยัง next-hop id และตารางนี้ใช้สำหรับแก้ไขค่าเหล่านั้น
{"command":["nh","--list"]}Id:0 Type:Drop Fmly: AF_INET Rid:0 Vrf:0 Flags:Valid, Tunnel: None
Id:1 Type:Drop Fmly: AF_INET Rid:0 Vrf:0 Flags:Valid, Tunnel: None
Id:2 Type:Receive Fmly: AF_INET Rid:0 Vrf:1 Flags:Valid, Policy, Tunnel: Udp, Oif:0
Id:3 Type:Receive Fmly: AF_INET Rid:0 Vrf:2 Flags:Valid, Policy, Tunnel: Udp, Oif:0
Id:4 Type:Receive Fmly: AF_INET Rid:0 Vrf:3 Flags:Valid, Policy, Tunnel: Udp, Oif:0
Id:5 Type:Receive Fmly: AF_INET Rid:0 Vrf:4 Flags:Valid, Policy, Tunnel: Udp, Oif:0
Id:6 Type:Vrf_Translate Fmly: AF_INET Rid:0 Vrf:1 Flags:Valid, Policy, Tunnel: None
Id:7 Type:Vrf_Translate Fmly: AF_INET Rid:0 Vrf:2 Flags:Valid, Policy, Tunnel: None
Id:8 Type:Vrf_Translate Fmly: AF_INET Rid:0 Vrf:3 Flags:Valid, Policy, Tunnel: None
Id:9 Type:Vrf_Translate Fmly: AF_INET Rid:0 Vrf:4 Flags:Valid, Policy, Tunnel: None
Id:10 Type:Vrf_Translate Fmly: AF_INET Rid:0 Vrf:5 Flags:Valid, Policy, Tunnel: None
Id:11 Type:Vrf_Translate Fmly: AF_INET Rid:0 Vrf:6 Flags:Valid, Policy, Tunnel: None
Id:12 Type:Encap Fmly: AF_INET Rid:0 Vrf:1 Flags:Valid, Policy, Tunnel: None Oif:2 Len:14 Encap Data: 02 01 02 03 04 05 00 00 5e 00 01 00 08 00
Id:13 Type:Encap Fmly: AF_INET Rid:0 Vrf:2 Flags:Valid, Policy, Tunnel: None Oif:4 Len:14 Encap Data: 02 01 02 03 04 06 00 00 5e 00 01 00 08 00
Id:14 Type:Encap Fmly: AF_INET Rid:0 Vrf:3 Flags:Valid, Policy, Tunnel: None Oif:6 Len:14 Encap Data: 00 00 5e 00 02 00 00 00 5e 00 01 00 08 00
Id:15 Type:Encap Fmly: AF_INET Rid:0 Vrf:6 Flags:Valid, Policy, Tunnel: None Oif:10 Len:14 Encap Data: 02 01 02 03 04 09 00 00 5e 00 01 00 08 00
... [capture trimmed: first 60 of 3820 lines]แต่ละรายการมี Type และ VRF ที่เป็นสมาชิก มีแปดประเภทที่พบในโหนดเหล่านี้
ในสัดส่วนต่อไปนี้ — เหมือนกันทั้งสาม CE เมื่อนับรวม:
Tunnel 558 Encap 27 NAT 22 Vrf 16 Receive 14 Composite 4 Drop 2 Resolve 2เส้นทางที่แก้ไขไปยัง next-hop แบบ Drop คือ blackhole และการรวมกันนั้นควรตรวจสอบ
ทุกครั้งที่ prefix ปรากฏใน rt แต่ทราฟฟิกยังคงหายไป
ตารางอินเทอร์เฟซเสมือน: สิ่งที่ data plane ผูกไว้ และตัวนับแต่ละอินเทอร์เฟซ
{"command":["vif","--list"]}Vrouter Interface Table
Flags: P=Policy, X=Cross Connect, S=Service Chain, Mr=Receive Mirror Mt=Transmit Mirror, Tc=Transmit Checksum Offload, L3=Layer 3, L2=Layer 2 D=DHCP, Vp=Vhost Physical, Pr=Promiscuous, Vnt=Native Vlan Tagged Mnp=No MAC Proxy, Dpdk=DPDK PMD Interface, Rfl=Receive Filtering Offload, Mon=Interface is Monitored Nf=Dont Fragment, Vof=VLAN insert/strip offload, Mq=MultiQ, L=MAC Learning Enabled Proxy=MAC Requests Proxied Always, Fr=Force Recv, Mn=Mirror without Vlan Tag, TTL=TTL not modified Mn=Mirror without Vlan Tag, Tun=Tunnel, NoArp=No ARP interface, RawIp=RAW IP interface(No L2 header) Npers=Non-Persistent, NoRPF=No RPF Checks, SynC=Syn Cookies, Gro=GRO Enabled NoIpfix=IPFIX disabled
evif0/1 Virtual: eth0 (Speed 10000, Duplex 1) Parent:vif0/-1 Type:Physical HWaddr:60:45:bd:eb:3f:f2 Driver: net_failsafe CrossConnectIdx: 2 PartnerIdx: 14 Vrf:0 Mcast Vrf:0 VN:0x0 Flags:L3L2Vp Ref:7 MTU: 1500 EncMSS: 0 NH: 0 RX device packets:386252 bytes:355098338 errors:0 RX port packets:386252 errors:0 RX queue packets:385977 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:386252 bytes:355098338 errors:0 TX packets:274826 bytes:132476854 errors:0 Drops:0 TX queue packets:27 errors:0 TX port packets:274826 errors:0 TX device packets:274826 bytes:132476854 errors:0
evif0/2 Virtual: vhost0 Parent:vif0/-1 Type:Host HWaddr:60:45:bd:eb:3f:f2 Driver: vr_dpdk_tap CrossConnectIdx: 1 PartnerIdx: 15 Vrf:0 Mcast Vrf:0 VN:0x0 Flags:L3L2 Ref:6 MTU: 1500 EncMSS: 0 NH: 0 RX device packets:263582 bytes:122772389 errors:0 RX queue packets:263582 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:263582 bytes:120136569 errors:0 TX packets:374276 bytes:343331787 errors:0 Drops:0 TX queue packets:370829 errors:3447 TX device packets:370820 bytes:341968151 errors:9
vif0/2 Ethernet: vethfrr0 Parent:vif0/-1 Type:Virtual HWaddr:0:0:5e:0:1:0 Driver: net_af_packet Vrf:1 Mcast Vrf:1 VN:0x0 Flags:PL3Proxy Ref:10 MTU: 1500 EncMSS: 130 NH: 12 RX port packets:4919 errors:0 RX queue packets:4917 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:907 bytes:153742 errors:0 TX packets:6 bytes:444 errors:0 Drops:905 TX queue packets:346 errors:0 TX port packets:3987 errors:0 Ingress ACL: 65 67 Egress ACL: 65 67 Service ACL: 65 67
vif0/4 Ethernet: vethbfd0 Parent:vif0/-1 Type:Virtual HWaddr:0:0:5e:0:1:0 Driver: net_af_packet
... [capture trimmed: first 60 of 378 lines]คำอธิบายแฟล็กที่ด้านบนควรอ่านครั้งหนึ่ง — Vp หมายถึงอินเทอร์เฟซกายภาพ vhost
Dpdk หมายถึงอินเทอร์เฟซที่จัดการโดย DPDK ใช้สิ่งนี้เพื่อยืนยันว่า data plane ได้รับอินเทอร์เฟซที่คาดหวัง
และเพื่อดูตัวนับ RX และ TX ที่ Linux ไม่แสดง
เนื่องจากทราฟฟิกไม่เคยถึง kernel
execcli mpls --helpตาราง MPLS ของ Argo เข้าถึงได้ เฉพาะจากเครื่องนั้น — mpls ไม่อยู่ใน debug API ดังนั้น
ต่างจาก rt, nh และ vif ข้างต้น จำเป็นต้องใช้ SSH หรือ
serial console ผ่าน
execcli
ไม่มีผลลัพธ์ที่บันทึกไว้ที่นี่ ในการ deploy นี้ CE ส่งต่อ IPv4 ด้วย BGP และ ECMP และ
ไม่ใช้ MPLS label ดังนั้นข้อมูลที่บันทึกจะแสดงตารางว่างและไม่มีประโยชน์ การมีอยู่ของคำสั่ง
และรูปแบบอาร์กิวเมนต์ --help ได้รับการยืนยันจากเมนูการเติมคำของอุปกรณ์เอง แต่ผลลัพธ์เมื่อมีข้อมูลไม่ได้รับการนำเสนอ