VxLAN zavodu. 1-ci hissə

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ə "Şəbəkə mühəndisi", VxLAN EVPN texnologiyası ilə bağlı silsilə məqalələr hazırlamışam.

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 zavodu. 1-ci hissə

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.

  1. alt şəbəkə
  2. Ünvan ailəsi l2vpn evpn üçün BGP araşdırması
  3. NVE quraşdırma
  4. Yatırtmaq-arp

alt şəbəkə

İstifadə olunan topologiya aşağıdakı kimidir:

VxLAN zavodu. 1-ci hissə

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:

VxLAN zavodu. 1-ci hissə

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:

VxLAN zavodu. 1-ci hissə

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:

VxLAN zavodu. 1-ci hissə

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:

  1. Host-1 öz şəbəkəsinin Yayım ünvanına APR sorğusu göndərir.
  2. 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:

VxLAN zavodu. 1-ci hissə

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 pulsuz vebinar, kurs haqqında ətraflı danışacağam. Bu vebinarda qeydiyyatdan keçən ilk 20 iştirakçı yayımdan sonra 1-2 gün ərzində e-poçt vasitəsilə Endirim Sertifikatı alacaq.

Mənbə: www.habr.com

Добавить комментарий