تخطَّ إلى المحتوى

المسارات والقفزات التالية

يحتفظ Argo بحالة إعادة التوجيه منفصلة عن نواة Linux. عندما تتعارض ip وهذه الأوامر، فهذه الأوامر هي ما يحرّك حركة المرور.

جدول مسارات vRouter، لكل VRF.

Terminal window
{"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 VRF
Labels/Misc: S=SiteId N=NetworkId
vRouter inet4 routing table 0/2/unicast
Destination PPL Flags Label Nexthop Labels/Misc
Number of routes: 4
0.0.0.0/0 0 - 0
169.254.254.102/32 32 L 263 13
172.16.12.126/32 32 L 0 46 (S,N):2298:0
172.16.84.126/32 32 L 0 46 (S,N):2298:0

جدول القفزات التالية. كل مسار يشير إلى معرّف قفزة تالية، وهذا يحلّها.

Terminal window
{"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 الذي ينتمي إليه. تظهر ثمانية أنواع على هذه العقد، بهذه النسب — متطابقة عبر جميع CEs الثلاثة عند الإحصاء:

Tunnel 558 Encap 27 NAT 22 Vrf 16 Receive 14 Composite 4 Drop 2 Resolve 2

المسار الذي يُحلَّل إلى قفزة تالية من نوع Drop هو قفزة فارغة (blackhole)، وهذا التركيب يستحق الفحص كلما كانت بادئة موجودة في rt ومع ذلك تختفي حركة المرور.

جدول الواجهات الافتراضية: ما يرتبط به مستوى البيانات، وعدّادات لكل واجهة.

Terminal window
{"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. استخدم هذا للتأكد من أن مستوى البيانات قد استحوذ على الواجهة التي تتوقعها، ولمشاهدة عدّادات RX وTX التي لا يُظهرها Linux لأن حركة المرور لا تصل أبداً إلى النواة.

Terminal window
execcli mpls --help

جدول MPLS الخاص بـ Argo. لا يمكن الوصول إليه إلا من الجهاز نفسهmpls ليس على API التصحيح، لذلك على خلاف rt وnh وvif أعلاه، يتطلب SSH أو وحدة التحكم التسلسلية، من خلال execcli.

لا يوجد مخرج ملتقط هنا. في هذا النشر، يقوم CE بإعادة توجيه IPv4 باستخدام BGP وECMP ولا يستخدم تسميات MPLS، لذلك سيُظهر التقاط البيانات جدولاً فارغاً ولا يُعلّم شيئاً. وجوده وصيغة معامل --help الخاص به مُتحقَّق منها من قائمة الإكمال التلقائي للجهاز نفسه؛ ولا يُعاد إنتاج مخرجه المملوء.