Nədən danışacağıq
Bundan əvvəlki yazımda vPC-nin yardımçı funksiylarından olan vPC peer-switch haqqında danışmışdım. Bu dəfə isə geriyə qalan imkanları – peer-gateway və layer3 peer-router haqqında danışacağam.
Ssenari
Aşağıda göstərilən topologiyamızda 10.10.10.10 IP ünvanlı HOST-1 10.10.20.10 ünvanlı HOST-2-ə çatmaq istəyir. Hər ikisinin Default Gateway-ı (Varsayılan çıxış nötqəsi) Nexus cihazlarındadır. Nexus cihazları vPC kimi konfiqurasiya edilib. Fərz edək ki, HOST-1 üçün varsayılan çıxış nöqtəsi CSW-01-ə məxsus SVI ünvanı göstərilib.

HOST-1 HOST-2-yə sorğu göndərən zaman HOST-2 fərqli alt şəbəkədə olduğu üçün paket marşrutlama prosesindən keçməlidir. Bunun üçün HOST-1 paketi öz varsayılan çıxış nöqtəsinə göndərir. Daxili alqoritminə əsasən HOST-1 paketi Eth1/50 üzərindən CSW-02-ə göndərir. CSW-02 öz MAC cədvəlinə baxır və görür ki, 10.10.10.1 IP ünvanı peer-link üzərindən əl çatandır. Paketi peer-link ilə CSW-01-ə göndərir. vPC Loop Avoidance mexanizmi isə peer-link üzərindən gələn heç bir paketi vpc üzvü olan portlara göndərmir. Nəticədə paket itir. Gəlin bunu yoxlayaq. Öncə CSW-01-in SVI 10 intefeysinin MAC ünvanına baxaq:
CSW-01# sho int vlan 10
Vlan10 is up, line protocol is up, autostate enabled
Hardware is EtherSVI, address is 28af.fd9b.817d
Internet Address is 10.10.10.1/24
CSW-02-nin MAC cədvəlinə baxaq:
CSW-02# sho mac address-table
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False, C - ControlPlane MAC, ~ - vsan
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
* 10 4c5d.3ccd.4517 dynamic 0 F F Po2
+ 20 4c5d.3ccd.4d3f dynamic 0 F F Po3
* 10 28af.fd9b.817d static - F F vPC Peer-Link(R)
* 20 28af.fd9b.817d static - F F vPC Peer-Link(R)
G - 28af.fd9b.8219 static - F F sup-eth1(R)
G 10 28af.fd9b.8219 static - F F sup-eth1(R)
G 20 28af.fd9b.8219 static - F F sup-eth1(R)
Gördüyümüz kimi, CSW-01-ə məxsus olan MAC ünvanlar peer-link üzərindən öyrənilib. İndi HOST-1-dən HOST-2-yə sorğu göndərək. Ping paketləri göndəririk – sorğu ünvana çatmır:
HOST-1(config-if) ping 10.10.20.10
PING 10.10.20.10 (10.10.20.10): 56 data bytes
Request 0 timed out
Request 1 timed out
Request 2 timed out
Request 3 timed out
Request 4 timed out
--- 10.10.20.10 ping statistics ---
5 packets transmitted, 0 packets received, 100.00% packet loss
NX OS əməliyyat sisteminin ELAM kimi möhtəşəm bir aləti var. Bu alət sayəsində svitçə daxil olan paketin aqibətini görə bilərik. Çox dərinə getmədən öncə CSW-02-də paketin hara getdiyinə baxaq:
CSW-02(TAH-elam-insel6)# report
ELAM not triggered yet on slot - 1, asic - 0, slice - 0
ELAM not triggered yet on slot - 1, asic - 0, slice - 1
BIGSKY ELAM REPORT SUMMARY
slot - 1, asic - 0, slice - 2
============================
Incoming Interface: Eth1/4
Src Idx : 0x603, Src BD : 10
Outgoing Interface Info: dmod 1, dpid 160
Dst Idx : 0x601, Dst BD : 10
Packet Type: IPv4
Dst MAC address: 28:AF:FD:9B:81:7D
Src MAC address: 4C:5D:3C:CD:45:17
.1q Tag0 VLAN: 10, cos = 0x0
Dst IPv4 address: 10.10.20.10
Src IPv4 address: 10.10.10.10
Ver = 4, DSCP = 0, Don't Fragment = 0
Proto = 1, TTL = 255, More Fragments = 0
Hdr len = 20, Pkt len = 84, Checksum = 0xd128
L4 Protocol : 1
ICMP type : 8
ICMP code : 0
Outgoing intefeys sətrində olan dpid dəyərinin açıqlamasına baxaq:
CSW-02(TAH-elam-insel6)# show system internal ethpm info all | i i "dmod=1,dpid=160"
IF_STATIC_INFO: port_name=Ethernet1/1,if_index:0x1a000000,ltl=6144,slot=0, nxos_port=0,dmod=1,dpid=160
CSW-02(TAH-elam-insel6)# sho cdp neighbors int eth1/1
Device-ID Local Intrfce Hldtme Capability Platform Port ID
CSW-01(FDO2523000J)
Eth1/1 174 R S I s N9K-C9364C Eth1/1
Gözlədiyimiz kimi paket peer-link ilə CSW-01-ə göndərilib. CSW-01-in ELAM çıxarışına baxaq:
BIGSKY ELAM REPORT SUMMARY
slot - 1, asic - 0, slice - 2
============================
Incoming Interface: Eth1/1
Src Idx : 0x601, Src BD : 10
Outgoing Interface Info: dmod 1, dpid 172
Dst Idx : 0x603, Dst BD : 20
Packet Type: IPv4
Dst MAC address: 28:AF:FD:9B:81:7D
Src MAC address: 4C:5D:3C:CD:45:17
.1q Tag0 VLAN: 10, cos = 0x0
Dst IPv4 address: 10.10.20.10
Src IPv4 address: 10.10.10.10
Ver = 4, DSCP = 0, Don't Fragment = 0
Proto = 1, TTL = 255, More Fragments = 0
Hdr len = 20, Pkt len = 84, Checksum = 0xd123
L4 Protocol : 1
ICMP type : 8
ICMP code : 0
Drop Info:
----------
LUA:
LUB:
LUC:
LUD:
UC_DF_CHECK_FAIILURE <<<<<<<<<
Final Drops:
UC_DF_CHECK_FAIILURE
Çıxarışın nəticəsinə görə paket CSW-01 svitçinə Eth1/1-dən daxil olub. Aşağıdakı ekran şəklinə əsasən Eth1/1 Po1-in üzvüdür. Po1 isə peer-linkdir.

Paketi qəbul edən CSW-01 marşrutlama prosesini həyata keçirir, MAC ünvanları dəyişdirilir və paket HOST-2-yə göndərilməyə hazır olur. Lakin paket peer-linkdən gəldiyi üçün vPC Loop Avoidance mexanizmi onu blok edəcək.
Drop Info və Final Drops hissələrinə baxsanız UC_DF_CHECK_FAILURE yazısı görəcəksiniz. Bu yazı paketin vPC Loop Avoidance mexanizmi tərəfindən bloklandığını deyir.
Əslində belə topologiyalarda FHRP – First Hop Redundancy Protocol istifadə olunur. Konfiqurasiyanı sadə saxlamaq üçün bizim ssenaridə FHRP qurmayacağıq. Lakin FHRP vPC Loop Avoidance mexanizmi səbəbindən paketlərin bloklanmasının qarşısını almır.
vPC Peer-gateway
Bunun qarşısını almaq üçün NXOS əməliyyat sistemində peer-gateway köməkçi funsiyası var. Bu funksiyanı işə salmaqla vPC qonşulara bir-birlərinin adından paketləri marşrutlamağa imkan verir. Yəni CSW-02 CSW-01 üçün göndərilmiş paketi artıq özü marşrutlaya biləcək. Bu funksiyanı işə salmaq üçün sadəcə vpc domen konfiqurasiya rejimində peer-gateway komandasını yazmaq lazımdır. Bu komanda hər iki vPC qonşuda əlavə edilməlidir:
vpc domain 100
peer-gateway
Funksiyanı aktivləşdirək və nəticəyə baxaq. Funksiyanı işə salmazdan əvvəl:
CSW-02# sho mac address-table
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False, C - ControlPlane MAC, ~ - vsan
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
* 10 4c5d.3ccd.4517 dynamic 0 F F Po2
+ 20 4c5d.3ccd.4d3f dynamic 0 F F Po3
* 10 28af.fd9b.817d static - F F vPC Peer-Link(R)
* 20 28af.fd9b.817d static - F F vPC Peer-Link(R)
G - 28af.fd9b.8219 static - F F sup-eth1(R)
G 10 28af.fd9b.8219 static - F F sup-eth1(R)
G 20 28af.fd9b.8219 static - F F sup-eth1(R)
Sonra:
CSW-02(TAH-elam-insel6)# sho mac address-table
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False, C - ControlPlane MAC, ~ - vsan
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
* 10 4c5d.3ccd.4517 dynamic 0 F F Po2
+ 20 4c5d.3ccd.4d3f dynamic 0 F F Po3
G 10 28af.fd9b.817d static - F F vPC Peer-Link(R)
G 20 28af.fd9b.817d static - F F vPC Peer-Link(R)
G - 28af.fd9b.8219 static - F F sup-eth1(R)
G 10 28af.fd9b.8219 static - F F sup-eth1(R)
G 20 28af.fd9b.8219 static - F F sup-eth1(R)
CSW-02-nin MAC ünvanları cədvəlinin əvvəlki çıxarışı ilə müqayisə etsək görərik ki, CSW-01-ə məxsus MAC ünvanların qarşısında “*” işarəsi “G” hərfi ilə əvəzlənib. Bu o deməkdir ki, artıq CSW-02-də CSW-01-in MAC ünvanları üçün varsayılan çıxış nöqtəsi qismində çıxış edir. Gəlin bir daha HOST-2-ni pingləməyə cəhd edək:
HOST-1# ping 10.10.20.10
PING 10.10.20.10 (10.10.20.10): 56 data bytes
64 bytes from 10.10.20.10: icmp_seq-0 ttl-253 time-1.14 ms
64 bytes from 10.10.20.10: icmp_seq-1 ttl-253 time 0.752 ms
64 bytes from 10.10.20.10: icmp_seq-2 ttl-253 time 0.601 ms
64 bytes from 10.10.20.10: icmp_seq-3 ttl-253 time 0.549 ms
64 bytes from 10.10.20.10: icmp_seq=4 ttl-253 time-0.725 ms
--- 10.10.20.10 ping statistics ---
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max - 0.549/0.753/1.14 ms
Gördüyümüz kimi, hər şey çalışır. Gəlin yenə ELAM-dan istifadə edək və CSW-02-də paketlə nə baş verdiyinə baxaq:
CSW-02(TAH-elam-insel6)# report
ELAM not triggered yet on slot - 1, asic - 0, slice - 0
ELAM not triggered yet on slot - 1, asic - 0, slice - 1
BIGSKY ELAM REPORT SUMMARY
slot - 1, asic - 0, slice - 2
============================
Incoming Interface: Eth1/4
Src Idx : 0x603, Src BD : 10
Outgoing Interface Info: dmod 1, dpid 168
Dst Idx : 0x602, Dst BD : 20
Packet Type: IPv4
Dst MAC address: 28:AF:FD:9B:81:7D
Src MAC address: 4C:5D:3C:CD:45:17
.1q Tag0 VLAN: 10, cos = 0x0
Dst IPv4 address: 10.10.20.10
Src IPv4 address: 10.10.10.10
Xatırlayırsıza əvvəl paket üçün Outgoing interface qismində fərqli dpid dəyəri var idi (160). Bu dəfə isə 168-dir. Dəyərin hansı intefeysə məxsus olduğuna baxaq:
CSW-02# show system internal ethpm info all | i i "dmod=1,dpid=168"
IF_STATIC_INFO: port_name=Ethernet1/3,if_index:0x1a000400,ltl=6136,slot=0, nxos_port=8,dmod=1,dpid=168
CSW-02# show cdp neighbors interface ethernet 1/3
Device-ID Local Intrfce Hldtme Capability Platform Port ID
HOST-02.cisco.com(FDO25200TGZ)
Eth1/3 137 R S I s N9K-C93240YC- Eth1/49
Etdiyimiz dəyişiklik nəticəsində paket peer-link üzərindən yox, vpc üzvü olan eth1/3 vasitəsi ilə HOST-2-ə göndərilib.
vPC layer3 peer-router
Bəzən vPC domeni olan topologiyalarda vPC peer-lərlə router, fayervol kimi digər avadanlıqlar arasında dinamik marşrutlama protokolu qurulması tələb olunur. Aşağıdakı topologiyaya baxaq:

Burada R1 CSW-01 və CSW-02 ilə OSPF qonşuluq qurmalıdır. Konfiqurasiya çox bəsitdir və bütün avadanlıqlarda eynidir.:
CSW-01# sh run ospf
!Command: show running-config ospf
!Running configuration last done at: Sun Mar 10 17:19:18 2024
!Time: Sun Mar 10 18:57:08 2024
version 10.3(4a) Bios:version 05.47
feature ospf
router ospf 1
router-id 1.1.1.1
interface Vlan10
ip router ospf 1 area 0.0.0.0
Hazırki konfiqurasiya ilə OSPF qonşuluğuna baxsaq, qonşuluğun qurulmadığını görəcəyik:
CSW-01(config-vpc-domain)# show ip ospf neighbors
OSPF Process ID 1 VRF default
Total number of neighbors: 2
Neighbor ID Pri State Up Time Address Interface
2.2.2.2 1 FULL/BDR 01:37:52 10.10.10.2 Vlan10
3.3.3.3 1 EXSTART/DR 01:38:39 10.10.10.10 Vlan10
Səbəb isə dinamik marşrutlama protokollarında paketin TTL dəyəri 1 olur. Fərz edək ki, R1 OSPF hello paketini birbaşa CSW-01-ə deyil CSW-02 üzərindən göndərir. Paket CSW-02-yə çatdıqdan sonra o, TTL dəyərini 1 vahid azaldır. TTL dəyəri 0 olan paket növbəti cihaza ötürülmür.
Bu çətinliyi aradan qaldırmaq üçün layer3 peer-router funksiyası istifadə olunur. Bu funksiya peer-gateway ilə əl-ələ çalışır. Yəni peer-gateway funksiyası qoşulmadan layer3 peer-router funksiyası qoşulmayacaq və ERROR: Operation failed: [Peer Gateway Not Enabled] belə bir loq alacaqsınız.
Qeyd etdiyim funksiyanı işə salaq. Bunun üçün vpc domain konfiqurasiya rejimində layer3 peer-router komandasını yazmaq lazımdır. Bu komanda hər iki vPC peer-də yazılmalıdır:
vpc domain 100
peer-keepalive destination 10.82.143.21
peer-gateway
layer3 peer-router
Bundan sonra qonşuluq uğurla qurulur:
CSW-01# show ip ospf neighbors
OSPF Process ID 1 VRF default
Total number of neighbors: 2
Neighbor ID Pri State Up Time Address Interface
2.2.2.2 1 FULL/BDR 01:38:11 10.10.10.2 Vlan10
3.3.3.3 1 FULL/DR 00:00:02 10.10.10.10 Vlan10
CSW-02# show ip ospf neighbors
OSPF Process ID 1 VRF default
Total number of neighbors: 2
Neighbor ID Pri State Up Time Address Interface
1.1.1.1 1 FULL/DROTHER 01:46:44 10.10.10.1 Vlan10
3.3.3.3 1 FULL/DR 01:46:51 10.10.10.10 Vlan10
R1# show ip ospf neighbors
OSPF Process ID 1 VRF default
Total number of neighbors: 2
Neighbor ID Pri State Up Time Address Interface
1.1.1.1 1 FULL/DROTHER 00:08:53 10.10.10.1 Vlan10
2.2.2.2 1 FULL/BDR 01:47:08 10.10.10.2 Vlan10
Yarana biləcək problemlər
Bu funksiyalar olduqca faydalıdır, lakin hər bir dəyişiklik etməzdən əvvəl mütləq xidməyi pəncərə planlaşdırılmalıdır. Çünki bəzən bu dəyişikliklər trafikə təsir edə bilər. Məsələn, peer-gateway funksiyasını işə salan zaman əgər vPC peerlərlə vPC ilə və ya Orphan port ilə qoşulan cihazlar arasında dinamik marşrutlama protokolları ilə qonşuluq qurulubsa, bu qonşuluq davamlıq düşüb-qalxa bilər. Problemi həll etmək üçün dinamik marşrutlama istifadə olunan topologiyalarda mütləq peer-gateway funksiyası ilə yanaşı layer3 peer-router funksiyası da qoşulmalıdır.
layer3 peer-router qoşulan zaman trafikdə kəsinti və ya vPC-də hər hansı problem müşahidə olunmur. Lakin əgər bundan əvvəl qonşuluq qurulmayan dinamik marşrutlama protokolları var idisə, funksiya işə salınan zaman qonşuluq qurulacaq, bu da bəzi prefikslərin elanında və ya öyrənilməsində dəyişikliklərə səbəb ola bilər.
Xülasə
Bu dəfə vPC-nin köməkçi funksiyalarında danışdım. Cisco-nun öz rəsmi saytında bu funksiyalar haqqında ətraflı təlimat var. Linkdən tanış ola bilərsiniz. Növbəti yazılarımda vPC-nin auto-recovery kimi başqa köməkçi funksiyalarına nəzər salacağam.
netadmin.az IT haqqında Azərbaycan dilində