salam habr. Hazırda OTUS-da "Şəbəkə Mühəndisi" kursunun rəhbəriyəm.
Kurs üçün yeni qeydiyyatın başlaması ərəfəsində
VxLAN EVPN-in işləməsi ilə bağlı çoxlu material var, ona görə də müasir məlumat mərkəzində problemlərin həlli üçün müxtəlif tapşırıqlar və təcrübələr toplamaq istəyirəm.
VxLAN EVPN texnologiya dövrünün birinci hissəsində mən şəbəkə fabrikinin üstündəki hostlar arasında L2 bağlantısını təşkil etmək yolunu nəzərdən keçirmək istəyirəm.
Bütün nümunələr Spine-Leaf topologiyasında yığılmış Cisco Nexus 9000v-də yerinə yetiriləcək. Bu məqalədə Underlay şəbəkəsinin qurulması üzərində dayanmayacağıq.
- alt şəbəkə
- Ünvan ailəsi l2vpn evpn üçün BGP araşdırması
- NVE quraşdırma
- Yatırtmaq-arp
alt şəbəkə
İstifadə olunan topologiya aşağıdakı kimidir:
Bütün cihazlarda ünvan təyin edək:
Spine-1 - 10.255.1.101
Spine-2 - 10.255.1.102
Leaf-11 - 10.255.1.11
Leaf-12 - 10.255.1.12
Leaf-21 - 10.255.1.21
Host-1 - 192.168.10.10
Host-2 - 192.168.10.20
Bütün cihazlar arasında IP bağlantısının olub olmadığını yoxlayaq:
Leaf21# sh ip route
<........>
10.255.1.11/32, ubest/mbest: 2/0 ! Leaf-11 доступен чеерз два Spine
*via 10.255.1.101, Eth1/4, [110/81], 00:00:03, ospf-UNDERLAY, intra
*via 10.255.1.102, Eth1/3, [110/81], 00:00:03, ospf-UNDERLAY, intra
10.255.1.12/32, ubest/mbest: 2/0 ! Leaf-12 доступен чеерз два Spine
*via 10.255.1.101, Eth1/4, [110/81], 00:00:03, ospf-UNDERLAY, intra
*via 10.255.1.102, Eth1/3, [110/81], 00:00:03, ospf-UNDERLAY, intra
10.255.1.21/32, ubest/mbest: 2/0, attached
*via 10.255.1.22, Lo0, [0/0], 00:02:20, local
*via 10.255.1.22, Lo0, [0/0], 00:02:20, direct
10.255.1.101/32, ubest/mbest: 1/0
*via 10.255.1.101, Eth1/4, [110/41], 00:00:06, ospf-UNDERLAY, intra
10.255.1.102/32, ubest/mbest: 1/0
*via 10.255.1.102, Eth1/3, [110/41], 00:00:03, ospf-UNDERLAY, intra
VPC domeninin yaradıldığını və hər iki açarın uyğunluq yoxlamasından keçdiyini və hər iki qovşaqdakı parametrlərin eyni olduğunu yoxlayaq:
Leaf11# show vpc
vPC domain id : 1
Peer status : peer adjacency formed ok
vPC keep-alive status : peer is alive
Configuration consistency status : success
Per-vlan consistency status : success
Type-2 consistency status : success
vPC role : primary
Number of vPCs configured : 0
Peer Gateway : Disabled
Dual-active excluded VLANs : -
Graceful Consistency Check : Enabled
Auto-recovery status : Disabled
Delay-restore status : Timer is off.(timeout = 30s)
Delay-restore SVI status : Timer is off.(timeout = 10s)
Operational Layer3 Peer-router : Disabled
vPC status
----------------------------------------------------------------------------
Id Port Status Consistency Reason Active vlans
-- ------------ ------ ----------- ------ ---------------
5 Po5 up success success 1
BGP baxışı
Nəhayət, Overlay şəbəkəsinin konfiqurasiyasına keçə bilərik.
Məqalənin bir hissəsi olaraq, aşağıdakı diaqramda göstərildiyi kimi hostlar arasında şəbəkə təşkil etmək lazımdır:
Overlay şəbəkəsini konfiqurasiya etmək üçün l2vpn evpn ailəsini dəstəkləməklə Onurğa və Yarpaq açarlarında BGP-ni aktivləşdirməlisiniz:
feature bgp
nv overlay evpn
Sonra, Leaf və Spine arasında BGP peeringini konfiqurasiya etməlisiniz. Konfiqurasiyanı sadələşdirmək və marşrutlaşdırma məlumatlarının paylanmasını optimallaşdırmaq üçün biz Spine-ni Route-Reflector server kimi konfiqurasiya edirik. Parametrləri optimallaşdırmaq üçün konfiqurasiyada bütün Yarpaqları şablonlar vasitəsilə yazacağıq.
Beləliklə, Spine-də parametrlər belə görünür:
router bgp 65001
template peer LEAF
remote-as 65001
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
route-reflector-client
neighbor 10.255.1.11
inherit peer LEAF
neighbor 10.255.1.12
inherit peer LEAF
neighbor 10.255.1.21
inherit peer LEAF
Leaf açarındakı quraşdırma oxşar görünür:
router bgp 65001
template peer SPINE
remote-as 65001
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
neighbor 10.255.1.101
inherit peer SPINE
neighbor 10.255.1.102
inherit peer SPINE
Onurğada bütün Yarpaq açarları ilə baxışı yoxlayın:
Spine1# sh bgp l2vpn evpn summary
<.....>
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.255.1.11 4 65001 7 8 6 0 0 00:01:45 0
10.255.1.12 4 65001 7 7 6 0 0 00:01:16 0
10.255.1.21 4 65001 7 7 6 0 0 00:01:01 0
Gördüyünüz kimi, BGP ilə bağlı heç bir problem yox idi. Gəlin VxLAN-ın qurulmasına keçək. Əlavə konfiqurasiya yalnız Yarpaq açarlarının yan tərəfində həyata keçiriləcək. Onurğa yalnız şəbəkənin nüvəsi kimi çıxış edir və yalnız trafikin ötürülməsində iştirak edir. İnkapsulyasiya və yolun müəyyən edilməsi üzrə bütün işlər yalnız Leaf açarlarında baş verir.
NVE quraşdırma
NVE - şəbəkə virtual interfeysi
Quraşdırmaya başlamazdan əvvəl bəzi terminologiyanı təqdim edək:
VTEP - Vitual Tunel End Point, VxLAN tunelinin başladığı və ya bitdiyi cihaz. VTEP mütləq hər hansı bir şəbəkə cihazı deyil. VxLAN texnologiyasını dəstəkləyən server də fəaliyyət göstərə bilər. Topologiyamızda bütün Yarpaq açarları VTEP-dir.
VNI - Virtual Şəbəkə İndeksi - VxLAN daxilində şəbəkə identifikatoru. VLAN ilə bənzətmə çəkə bilərsiniz. Bununla belə, bəzi fərqlər var. Parçadan istifadə edərkən, VLAN-lar yalnız bir Leaf keçid daxilində unikal olur və şəbəkə üzərindən ötürülmür. Lakin hər bir VLAN artıq şəbəkə üzərindən ötürülən VNI nömrəsi ilə əlaqələndirilə bilər. Nə kimi görünür və necə istifadə oluna biləcəyi aşağıda müzakirə olunacaq.
VxLAN texnologiyasının işləməsi üçün funksiyanı və VLAN nömrələrini VNI nömrəsi ilə əlaqələndirmək qabiliyyətini aktivləşdirin:
feature nv overlay
feature vn-segment-vlan-based
VxLAN-ın işinə cavabdeh olan NVE interfeysini konfiqurasiya edək. Bu interfeys VxLAN başlıqlarında çərçivələrin inkapsulyasiyasına cavabdehdir. GRE üçün Tunel interfeysi ilə bənzətmə çəkə bilərsiniz:
interface nve1
no shutdown
host-reachability protocol bgp ! используем BGP для передачи маршрутной информации
source-interface loopback0 ! интерфейс с которого отправляем пакеты loopback0
Leaf-21 açarında hər şey problemsiz yaradılmışdır. Ancaq əmrin çıxışını yoxlasaq show nve peers
, sonra boş olacaq. Burada VPC quraşdırmasına qayıtmalısınız. Leaf-11 və Leaf-12-nin VPC domeni ilə qoşalaşdığını və birləşdiyini görürük. Bu, aşağıdakı vəziyyətlə nəticələnir:
Host-2 şəbəkə üzərindən Host-21-ə göndərilmək üçün Leaf-1-ə bir kadr göndərir. Bununla belə, Leaf-21 Host-1-in MAC ünvanının eyni anda iki VTEP vasitəsilə mövcud olduğunu görür. Bu halda Leaf-21 nə etməlidir? Axı bu o deməkdir ki, şəbəkədə bir döngə görünə bilər.
Bu vəziyyəti həll etmək üçün bizə Leaf-11 və Leaf-12 də zavod daxilində bir cihaz kimi fəaliyyət göstərməlidir. Bu olduqca sadə şəkildə həll olunur. Tuneli tikdiyimiz Loopback interfeysində ikinci dərəcəli ünvanı əlavə edin. İkinci dərəcəli ünvan hər iki VTEP-də eyni olmalıdır.
interface loopback0
ip add 10.255.1.10/32 secondary
Beləliklə, digər VTEP-lər baxımından aşağıdakı topologiyanı əldə edirik:
Yəni, indi tunel Leaf-21-in IP ünvanı ilə iki Leaf-11 və Leaf-12 arasında virtual İP arasında qurulacaq. İndi iki cihazdan MAC ünvanını öyrənməklə bağlı heç bir problem olmayacaq və trafik bir VTEP-dən digərinə ötürülə bilər. İki VTEP-dən hansının trafiki emal edəcəyinə Onurğa üzərindəki marşrutlaşdırma cədvəlindən istifadə etməklə qərar verilir:
Spine1# sh ip route
<.....>
10.255.1.10/32, ubest/mbest: 2/0
*via 10.255.1.11, Eth1/1, [110/41], 1d01h, ospf-UNDERLAY, intra
*via 10.255.1.12, Eth1/2, [110/41], 1d01h, ospf-UNDERLAY, intra
10.255.1.11/32, ubest/mbest: 1/0
*via 10.255.1.11, Eth1/1, [110/41], 1d22h, ospf-UNDERLAY, intra
10.255.1.12/32, ubest/mbest: 1/0
*via 10.255.1.12, Eth1/2, [110/41], 1d01h, ospf-UNDERLAY, intra
Yuxarıda gördüyünüz kimi, 10.255.1.10 ünvanı iki Next-hops vasitəsilə dərhal mövcuddur.
Bu mərhələdə biz əsas əlaqəni anladıq. NVE interfeysinin qurulmasına davam edək:
Biz dərhal Vlan 10-u işə salacağıq və onu hostlar üçün hər Leaf-da VNI 10000 ilə əlaqələndirəcəyik. Hostlar arasında L2 tuneli qurun
vlan 10 ! Включаем VLAN на всех VTEP подключенных к необходимым хостам
vn-segment 10000 ! Ассоциируем VLAN с номер VNI
interface nve1
member vni 10000 ! Добавляем VNI 10000 для работы через интерфейс NVE. для инкапсуляции в VxLAN
ingress-replication protocol bgp ! указываем, что для распространения информации о хосте используем BGP
İndi BGP EVPN üçün həmyaşıdları və cədvəli yoxlayaq:
Leaf21# sh nve peers
Interface Peer-IP State LearnType Uptime Router-Mac
--------- --------------- ----- --------- -------- -----------------
nve1 10.255.1.10 Up CP 00:00:41 n/a ! Видим что peer доступен с secondary адреса
Leaf11# sh bgp l2vpn evpn
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:32777 (L2VNI 10000) ! От кого именно пришел этот l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]/88 ! EVPN route-type 3 - показывает нашего соседа, который так же знает об l2VNI10000
10.255.1.10 100 32768 i
*>i[3]:[0]:[32]:[10.255.1.20]/88
10.255.1.20 100 0 i
* i 10.255.1.20 100 0 i
Route Distinguisher: 10.255.1.21:32777
* i[3]:[0]:[32]:[10.255.1.20]/88
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
Yuxarıda biz yalnız EVPN marşrut tipli 3 marşrutlarını görürük. Bu tip marşrutlar həmyaşıd (Yarpaq) haqqında danışır, lakin hostlarımız haradadır?
İş ondadır ki, MAC hostları haqqında məlumat EVPN marşrut tip 2 vasitəsilə ötürülür
Hostlarımızı görmək üçün siz EVPN marşrut tip 2-ni konfiqurasiya etməlisiniz:
evpn
vni 10000 l2
route-target import auto ! в рамках данной статьи используем автоматический номер для route-target
route-target export auto
Host-2-dən Host-1-ə ping göndərək:
Firewall2# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 data bytes
36 bytes from 192.168.10.2: Destination Host Unreachable
Request 0 timed out
64 bytes from 192.168.10.1: icmp_seq=1 ttl=254 time=215.555 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=254 time=38.756 ms
64 bytes from 192.168.10.1: icmp_seq=3 ttl=254 time=42.484 ms
64 bytes from 192.168.10.1: icmp_seq=4 ttl=254 time=40.983 ms
Və aşağıda görə bilərik ki, 2-ci marşrut növü BGP cədvəlində hostların MAC ünvanı ilə - 5001.0007.0007 və 5001.0008.0007 ilə göründü.
Leaf11# sh bgp l2vpn evpn
<......>
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:32777 (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216 ! evpn route-type 2 и mac адрес хоста 1
10.255.1.10 100 32768 i
*>i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]/216 ! evpn route-type 2 и mac адрес хоста 2
* i 10.255.1.20 100 0 i
*>l[3]:[0]:[32]:[10.255.1.10]/88
10.255.1.10 100 32768 i
Route Distinguisher: 10.255.1.21:32777
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]/216
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
Sonra, MAC Host haqqında məlumat aldığınız Yeniləmə haqqında ətraflı məlumatı görə bilərsiniz. Aşağıda əmrin bütün çıxışı deyil
Leaf21# sh bgp l2vpn evpn 5001.0007.0007
BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.11:32777 ! отправил Update с MAC Host. Не виртуальный адрес VPC, а адрес Leaf
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216,
version 1507
Paths: (2 available, best #2)
Flags: (0x000202) (high32 00000000) on xmit-list, is not in l2rib/evpn, is not i
n HW
Path type: internal, path is valid, not best reason: Neighbor Address, no labe
led nexthop
AS-Path: NONE, path sourced internal to AS
10.255.1.10 (metric 81) from 10.255.1.102 (10.255.1.102) ! с кем именно строим VxLAN тоннель
Origin IGP, MED not set, localpref 100, weight 0
Received label 10000 ! Номер VNI, который ассоциирован с VLAN, в котором находится Host
Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8 ! Тут видно, что RT сформировался автоматически на основе номеров AS и VNI
Originator: 10.255.1.11 Cluster list: 10.255.1.102
<........>
Fabrikdən keçən zaman çərçivələrin necə göründüyünü görək:
Yatırtmaq-ARP
Əla, hostlar arasında L2 əlaqəmiz var və bu, onun sonu ola bilər. Ancaq hər şey o qədər də sadə deyil. Nə qədər ki, hostumuz azdır, heç bir problem olmayacaq. Ancaq gəlin yüzlərlə və minlərlə ev sahibimiz olduğu vəziyyətləri təsəvvür edək. Hansı problemlə üzləşə bilərik?
Bu problem BUM (Broadcast, Unknown Unicast, Multicast) trafikidir. Bu məqalə çərçivəsində biz yayım trafiki ilə mübarizə variantını nəzərdən keçirəcəyik.
Ethernet şəbəkələrində əsas Yayım generatoru ARP protokolu vasitəsilə hostların özləridir.
Nexus ARP sorğuları ilə işləmək üçün aşağıdakı mexanizmi həyata keçirir - suppress-arp.
Bu xüsusiyyət belə işləyir:
- Host-1 öz şəbəkəsinin Yayım ünvanına APR sorğusu göndərir.
- Sorğu Leaf keçidinə çatır və bu sorğunu Host-2-yə daha fabrikə ötürmək əvəzinə, Leaf özü cavab verir və istədiyiniz IP və MAC-ı göstərir.
Beləliklə, Yayım tələbi fabrikə getmədi. Bəs Leaf yalnız MAC ünvanını bilirsə, bu necə işləyə bilər?
Hər şey olduqca sadədir, EVPN marşrut tipli 2, MAC ünvanına əlavə olaraq, MAC / IP paketini ötürə bilər. Bunun üçün Leaf VLAN-da IP ünvanı ilə konfiqurasiya edilməlidir. Sual yaranır, hansı IP-dən soruşmaq lazımdır? Nexus-da bütün keçidlərdə paylanmış (eyni) ünvan yaratmaq mümkündür:
feature interface-vlan
fabric forwarding anycast-gateway-mac 0001.0001.0001 ! задаем virtual mac для создания распределенного шлюза между всеми коммутаторами
interface Vlan10
no shutdown
ip address 192.168.10.254/24 ! на всех Leaf задаем одинаковый IP
fabric forwarding mode anycast-gateway ! говорим использовать Virtual mac
Beləliklə, hostlar baxımından şəbəkə belə görünəcək:
BGP l2route evpn-i yoxlayın
Leaf11# sh bgp l2vpn evpn
<......>
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:32777 (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216
10.255.1.21 100 32768 i
*>i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]/216
10.255.1.10 100 0 i
* i 10.255.1.10 100 0 i
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.10.20]/248
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
<......>
Route Distinguisher: 10.255.1.21:32777
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]/216
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.10.20]/248
*>i 10.255.1.20 100 0 i
<......>
Komandanın çıxışından görmək olar ki, EVPN marşrut tipli 2-də MAC-dan əlavə biz indi hostun IP ünvanını da görürük.
Supress-arp parametrinə qayıdaq. Bu parametr hər bir VNI üçün ayrıca aktivləşdirilir:
interface nve1
member vni 10000
suppress-arp
Sonra bəzi çətinlik var:
- Bu xüsusiyyət TCAM yaddaşında yer tələb edir. Suppress-arp üçün bir nümunə verəcəyəm:
hardware access-list tcam region arp-ether 256
Bu quraşdırma ikiqat genişlik tələb edəcək. Yəni, əgər siz 256 təyin etmisinizsə, o zaman TCAM-da 512 buraxılmalıdır.TCAM-ın qurulması bu məqalənin əhatə dairəsindən kənardadır, çünki TCAM-ın qurulması yalnız sizə verilən tapşırıqdan asılıdır və bir şəbəkədən digərinə fərqli ola bilər.
- Suppress-arp tətbiqi bütün Yarpaq açarlarında aparılmalıdır. Bununla belə, VPC domenində yerləşən Leaf cütlərində konfiqurasiya edərkən mürəkkəblik yarana bilər. TCAM dəyişdirilərkən, cütlər arasındakı uyğunluq pozulacaq və bir qovşaq xidmətdən çıxarıla bilər. Əlavə olaraq, TCAM dəyişiklik parametrini tətbiq etmək üçün cihazın yenidən işə salınması tələb oluna bilər.
Nəticədə, vəziyyətinizdə bu parametri işləyən bir fabrikdə tətbiq etməyə dəyər olub olmadığını diqqətlə düşünməlisiniz.
Bununla dövrənin birinci hissəsi başa çatır. Növbəti hissədə biz müxtəlif VRF-lər arasında şəbəkə ayrılması ilə VxLAN fabriki vasitəsilə marşrutlaşdırmanı nəzərdən keçirəcəyik.
İndi hamını dəvət edirəm
Mənbə: www.habr.com