VxLAN fabrikası. Bölüm 1

Merhaba Habr. Şu anda OTUS'ta Ağ Mühendisi kursunun kurs lideriyim.
Kurs için yeni bir kaydın başlaması beklentisiyle "Ağ Mühendisi", VxLAN EVPN teknolojisi üzerine bir dizi makale hazırladım.

VxLAN EVPN'in nasıl çalıştığına dair çok miktarda materyal var, bu yüzden modern bir veri merkezindeki sorunları çözmeye yönelik çeşitli görevleri ve uygulamaları toplamak istiyorum.

VxLAN fabrikası. Bölüm 1

VxLAN EVPN teknolojisi serimizin ilk bölümünde, bir ağ yapısı üzerinde ana bilgisayarlar arasında L2 bağlantısını organize etmenin bir yolunu incelemek istiyorum.

Tüm örnekler, Spine-Leaf topolojisinde birleştirilmiş bir Cisco Nexus 9000v üzerinde gerçekleştirilecektir. Bu yazımızda Underlay network kurulumu üzerinde durmayacağız.

  1. Altlık ağı
  2. Adres ailesi l2vpn evpn için BGP eşlemesi
  3. NVE'yi kurma
  4. Arp'ı bastır

Altlık ağı

Kullanılan topoloji aşağıdaki gibidir:

VxLAN fabrikası. Bölüm 1

Tüm cihazlarda adreslemeyi ayarlayalım:

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

Tüm cihazlar arasında IP bağlantısı olup olmadığını kontrol edelim:

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 alanının oluşturulduğunu, her iki anahtarın da tutarlılık kontrolünden geçtiğini ve her iki düğümdeki ayarların aynı olduğunu kontrol edelim:

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 eşlemesi

Son olarak Overlay ağını kurmaya geçebilirsiniz.

Makalenin bir parçası olarak, aşağıdaki şemada gösterildiği gibi ana bilgisayarlar arasında bir ağ düzenlemek gerekiyor:

VxLAN fabrikası. Bölüm 1

Bir Yer Paylaşımı ağını yapılandırmak için, l2vpn evpn ailesi desteğiyle Omurga ve Yaprak anahtarlarında BGP'yi etkinleştirmeniz gerekir:

feature bgp
nv overlay evpn

Daha sonra Leaf ve Spine arasında BGP eşlemesini yapılandırmanız gerekir. Kurulumu basitleştirmek ve yönlendirme bilgilerinin dağıtımını optimize etmek için Spine'ı bir Rota Reflektör sunucusu olarak yapılandırıyoruz. Kurulumu optimize etmek için şablonları kullanarak tüm Yaprakları yapılandırmaya yazacağız.

Yani Spine'daki ayarlar şöyle görünüyor:

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

Yaprak anahtarındaki kurulum benzer görünüyor:

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

Spine'da tüm Yaprak anahtarlarla eşlemeyi kontrol edelim:

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üğünüz gibi BGP'de herhangi bir sorun olmadı. VxLAN kurulumuna geçelim. Daha fazla konfigürasyon yalnızca anahtarların Yaprak tarafında yapılacaktır. Spine yalnızca ağın çekirdeği görevi görür ve yalnızca trafiğin iletilmesinde rol oynar. Tüm kapsülleme ve yol belirleme çalışmaları yalnızca Yaprak anahtarlarda gerçekleşir.

NVE'yi kurma

NVE - ağ sanal arayüzü

Kuruluma başlamadan önce bazı terminolojiyi tanıtalım:

VTEP - Vitual Tunnel End Point, VxLAN tünelinin başladığı veya bittiği cihaz. VTEP'in mutlaka herhangi bir ağ cihazı olması gerekmez. VxLAN teknolojisini destekleyen bir sunucu aynı zamanda sunucu görevi de görebilir. Topolojimizde tüm Yaprak anahtarlar VTEP'tir.

VNI - Sanal Ağ Dizini - VxLAN içindeki ağ tanımlayıcısı. VLAN ile bir benzetme yapılabilir. Ancak bazı farklılıklar var. Bir yapı kullanıldığında, VLAN'lar yalnızca bir Yaprak anahtar içinde benzersiz hale gelir ve ağ üzerinden iletilmez. Ancak her VLAN, kendisiyle ilişkilendirilmiş ve ağ üzerinden zaten iletilen bir VNI numarasına sahip olabilir. Neye benzediği ve nasıl kullanılabileceği daha ayrıntılı olarak tartışılacaktır.

VxLAN teknolojisi özelliğinin çalışmasını ve VLAN numaralarını bir VNI numarasıyla ilişkilendirme yeteneğini etkinleştirelim:

feature nv overlay
feature vn-segment-vlan-based

VxLAN'ın çalışmasından sorumlu olan NVE arayüzünü yapılandıralım. Bu arayüz çerçevelerin VxLAN başlıklarında kapsüllenmesinden sorumludur. GRE için Tünel arayüzüne bir benzetme yapabilirsiniz:

interface nve1
  no shutdown
  host-reachability protocol bgp ! используем BGP для передачи маршрутной информации
  source-interface loopback0    ! интерфейс  с которого отправляем пакеты loopback0

Leaf-21 anahtarında her şey sorunsuz bir şekilde yaratılmıştır. Ancak komutun çıktısını kontrol edersek show nve peers, o zaman boş olacak. Burada VPC yapılandırmasına geri dönmeniz gerekiyor. Leaf-11 ve Leaf-12'nin çift olarak çalıştığını ve bir VPC alanı tarafından birleştirildiğini görüyoruz. Bu bize aşağıdaki durumu verir:

Host-2, Leaf-21'e bir çerçeve gönderir ve bunu ağ üzerinden Host-1'e iletir. Ancak Leaf-21, Host-1'in MAC adresine aynı anda iki VTEP aracılığıyla erişilebildiğini görüyor. Yaprak-21 bu durumda ne yapmalıdır? Sonuçta bu, ağda bir döngünün görünebileceği anlamına gelir.

Bu durumu çözmek için Leaf-11 ve Leaf-12'nin fabrika içerisinde tek cihaz olarak hareket etmesine ihtiyacımız var. Çözüm oldukça basit. Tüneli oluşturduğumuz Loopback arayüzüne ikincil bir adres ekleyin. İkincil adres her iki VTEP'te de aynı olmalıdır.

interface loopback0
 ip add 10.255.1.10/32 secondary

Böylece diğer VTEP'lerin bakış açısından aşağıdaki topolojiyi elde ederiz:

VxLAN fabrikası. Bölüm 1

Yani artık Leaf-21'in IP adresi ile iki Leaf-11 ve Leaf-12 arasındaki sanal IP arasında tünel inşa edilecek. Artık MAC adresini iki cihazdan öğrenmede herhangi bir sorun yaşanmayacak ve trafik bir VTEP'ten diğerine geçebilecek. İki VTEP'ten hangisinin trafiği işleyeceğine Spine'daki yönlendirme tablosu kullanılarak karar 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

Yukarıda görebileceğiniz gibi, 10.255.1.10 adresine iki Sonraki atlama noktası aracılığıyla hemen ulaşılabilir.

Bu aşamada temel bağlantı konusunu ele aldık. NVE arayüzünü ayarlamaya geçelim:
Vlan 10'u hemen etkinleştirelim ve ana bilgisayarlar için her Yaprakta VNI 10000 ile ilişkilendirelim. Ana bilgisayarlar arasında bir L2 tüneli kuralım

vlan 10                 ! Включаем VLAN на всех VTEP подключенных к необходимым хостам
  vn-segment 10000      ! Ассоциируем VLAN с номер VNI 

interface nve1
  member vni 10000      ! Добавляем VNI 10000 для работы через интерфейс NVE. для инкапсуляции в VxLAN
    ingress-replication protocol bgp    ! указываем, что для распространения информации о хосте используем BGP

Şimdi diğer eşleri ve BGP EVPN tablosunu kontrol edelim:

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

Yukarıda sadece EVPN rota tipi 3 rotayı görüyoruz. Bu rota türü eşten (Yaprak) bahsediyor, fakat ana bilgisayarlarımız nerede?
Mesele şu ki, MAC ana bilgisayarları hakkındaki bilgiler EVPN rota tipi 2 aracılığıyla iletiliyor

Ana bilgisayarlarımızı görmek için EVPN rota türü 2'yi yapılandırmanız gerekir:

evpn
  vni 10000 l2
    route-target import auto   ! в рамках данной статьи используем автоматический номер для route-target
    route-target export auto

Host-2'den Host-1'e ping atalım:

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

Aşağıda, BGP tablosunda ana bilgisayar MAC adresine sahip rota türü 2'nin göründüğünü görebiliriz - 5001.0007.0007 ve 5001.0008.0007

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

Daha sonra, MAC Host hakkında bilgi aldığınız Güncelleme hakkında ayrıntılı bilgileri görebilirsiniz. Aşağıda komut çıktısının tamamı yer almamaktadır.

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
<........>

Fabrikadan geçerken çerçevelerin nasıl göründüğüne bakalım:

VxLAN fabrikası. Bölüm 1

ARP'yi Bastır

Harika, artık ana bilgisayarlar arasında L2 iletişimimiz var ve işi orada bitirebiliriz. Ancak her şey o kadar basit değil. Ev sahibimiz az olduğu sürece hiçbir sorun olmayacak. Ancak yüzlerce ve binlerce ana bilgisayarın olduğu bir durumu hayal edelim. Hangi sorunla karşılaşabiliriz?

Bu sorun BUM(Yayın, Bilinmeyen Tek Noktaya Yayın, Çok Noktaya Yayın) trafiğidir. Bu yazımızda yayın trafiğiyle ilgilenme seçeneğini ele alacağız.
Ethernet ağlarındaki ana Yayın oluşturucu, ARP protokolü aracılığıyla ana bilgisayarların kendisidir.

Nexus, ARP istekleriyle mücadele etmek için şu mekanizmayı uygular: bastırma-arp.
Bu özellik şu şekilde çalışır:

  1. Host-1 kendi ağının Broadcast adresine bir APR isteği gönderir.
  2. İstek Leaf anahtarına ulaşır ve bu isteği Host-2'ye doğru kumaşın daha da iletmek yerine Leaf kendisi yanıt verir ve gerekli IP ve MAC'i gösterir.

Böylece yayın talebi fabrikaya gitmedi. Peki Leaf yalnızca MAC adresini biliyorsa bu nasıl işe yarayabilir?

Her şey oldukça basit, EVPN rota tipi 2, MAC adresine ek olarak bir MAC/IP kombinasyonu da iletebilir. Bunu yapmak için Leaf'teki VLAN'da bir IP adresi yapılandırmanız gerekir. Soru ortaya çıkıyor, hangi IP'yi ayarlamalıyım? Nexus'ta tüm anahtarlarda dağıtılmış (aynı) bir adres oluşturmak 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

Böylece, ana bilgisayarların bakış açısından ağ şöyle görünecektir:

VxLAN fabrikası. Bölüm 1

BGP l2route evpn'yi kontrol edelim

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

<......>

Komut çıktısından, EVPN rota türü 2'de MAC'a ek olarak artık ana bilgisayarın IP adresini de gördüğümüzü görebilirsiniz.

Arp bastırma ayarına dönelim. Bu ayar her VNI için ayrı ayrı etkinleştirilir:

interface nve1
  member vni 10000   
    suppress-arp

O zaman bazı karmaşıklıklar ortaya çıkar:

  • Bu özelliğin çalışması için TCAM belleğinde alan gereklidir. Arp bastırma ayarlarına bir örnek:

hardware access-list tcam region arp-ether 256

Bu ayar çift genişlik gerektirecektir. Yani, 256'yı ayarlarsanız, TCAM'de 512'yi serbest bırakmanız gerekir, çünkü TCAM'ı kurmak bu makalenin kapsamı dışındadır, çünkü TCAM'ı kurmak yalnızca size atanan göreve bağlıdır ve bir ağdan diğerine farklılık gösterebilir.

  • Tüm Yaprak anahtarlarda bastırma-arp uygulaması yapılmalıdır. Ancak bir VPC etki alanında bulunan Yaprak çiftleri üzerinde yapılandırma yapılırken karmaşıklık ortaya çıkabilir. TCAM değiştirilirse çiftler arasındaki tutarlılık bozulacak ve bir düğüm devre dışı bırakılabilecektir. Ayrıca TCAM değişiklik ayarını uygulamak için cihazın yeniden başlatılması gerekebilir.

Sonuç olarak, sizin durumunuzda bu ayarın çalışan bir fabrikada uygulamaya değer olup olmadığını dikkatlice düşünmeniz gerekir.

Böylece serinin ilk bölümü tamamlanıyor. Bir sonraki bölümde ağların farklı VRF'lere ayrılmasıyla VxLAN yapısı üzerinden yönlendirmeye bakacağız.

Ve şimdi herkesi davet ediyorum ücretsiz web semineriBu kursta size kurs hakkında detaylı bilgi vereceğim. Bu webinara kaydolan ilk 20 katılımcıya, yayından sonraki 1-2 gün içerisinde e-posta yoluyla İndirim Sertifikası gönderilecektir.

Kaynak: habr.com

Yorum ekle