VxLAN үйлдвэр. 1-р хэсэг

Сайн уу, Хабр. Би одоогоор OTUS-ийн Сүлжээний инженерийн курсын удирдагчаар ажиллаж байна.
Сургалтын шинэ элсэлт эхлэхийг хүлээж байна "Сүлжээний инженер", Би VxLAN EVPN технологийн талаар цуврал нийтлэл бэлтгэсэн.

VxLAN EVPN хэрхэн ажилладаг талаар асар их хэмжээний материал байгаа тул би орчин үеийн мэдээллийн төвд асуудлыг шийдвэрлэх янз бүрийн даалгавар, дадлага цуглуулахыг хүсч байна.

VxLAN үйлдвэр. 1-р хэсэг

VxLAN EVPN технологийн цувралын эхний хэсэгт би сүлжээний үндсэн дээр хостуудын хооронд L2 холболтыг зохион байгуулах арга замыг авч үзэхийг хүсч байна.

Бүх жишээг Spine-Leaf топологид угсарсан Cisco Nexus 9000v дээр гүйцэтгэнэ. Бид энэ нийтлэлд Underlay сүлжээг бий болгох талаар ярихгүй.

  1. Дотор сүлжээ
  2. Хаягийн гэр бүлийн l2vpn evpn-д зориулсан BGP хайлт
  3. NVE-г тохируулж байна
  4. Дарах-arp

Дотор сүлжээ

Ашигласан топологи нь дараах байдалтай байна.

VxLAN үйлдвэр. 1-р хэсэг

Бүх төхөөрөмж дээр хаягийг тохируулцгаая:

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

Бүх төхөөрөмжүүдийн хооронд IP холболт байгаа эсэхийг шалгацгаая:

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 домэйн үүсгэгдсэн, хоёр шилжүүлэгч нь тогтвортой байдлын шалгалтыг давсан, хоёр зангилааны тохиргоо ижил байгаа эсэхийг шалгацгаая.

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 хайлт

Эцэст нь та Overlay сүлжээг тохируулах руу шилжиж болно.

Нийтлэлийн нэг хэсэг болгон доорх диаграммд үзүүлсэн шиг хостуудын хооронд сүлжээг зохион байгуулах шаардлагатай.

VxLAN үйлдвэр. 1-р хэсэг

Overlay сүлжээг тохируулахын тулд та l2vpn evpn гэр бүлийн дэмжлэгтэйгээр Spine болон Leaf унтраалга дээр BGP-г идэвхжүүлэх хэрэгтэй:

feature bgp
nv overlay evpn

Дараа нь та Навч ба Сээр нурууны хооронд BGP peering-ийг тохируулах хэрэгтэй. Тохиргоог хялбарчлах, чиглүүлэлтийн мэдээллийн хуваарилалтыг оновчтой болгохын тулд бид Spine-г Route-Reflector сервер болгон тохируулна. Бид тохиргоог оновчтой болгохын тулд загваруудыг ашиглан тохиргоонд бүх Навчийг бичих болно.

Тиймээс Spine дээрх тохиргоонууд дараах байдалтай байна.

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

Навч шилжүүлэгч дээрх тохиргоо нь ижил төстэй харагдаж байна:

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 дээр бүх Навч свичээр peering-ийг шалгацгаая:

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

Таны харж байгаагаар BGP-тэй холбоотой асуудал гараагүй. VxLAN-г тохируулах руу шилжье. Цаашдын тохиргоог зөвхөн шилжүүлэгчийн навчны тал дээр хийх болно. Нуруу нь зөвхөн сүлжээний гол үүрэг гүйцэтгэдэг бөгөөд зөвхөн урсгалыг дамжуулахад оролцдог. Бүх бүрхүүл болон зам тодорхойлох ажил зөвхөн Навч шилжүүлэгч дээр явагдана.

NVE-г тохируулж байна

NVE - сүлжээний виртуал интерфейс

Тохиргоог эхлүүлэхийн өмнө зарим нэр томъёог танилцуулъя:

VTEP - Vitual Tunnel End Point, VxLAN туннель эхэлж эсвэл дуусдаг төхөөрөмж. VTEP нь ямар ч сүлжээний төхөөрөмж биш юм. VxLAN технологийг дэмждэг сервер нь серверийн үүрэг гүйцэтгэх боломжтой. Манай топологид бүх Навч шилжүүлэгч нь VTEP юм.

VNI - Virtual Network Index - VxLAN доторх сүлжээний танигч. VLAN ашиглан аналогийг хийж болно. Гэсэн хэдий ч зарим нэг ялгаа бий. Даавуу ашиглах үед VLAN нь зөвхөн нэг Навч шилжүүлэгч дотор өвөрмөц болж, сүлжээгээр дамждаггүй. Гэхдээ VLAN бүр сүлжээнд холбогдсон VNI дугаартай байж болно. Энэ нь ямар харагдах, хэрхэн ашиглах талаар цаашид хэлэлцэх болно.

VxLAN технологийн функцийг идэвхжүүлж, VLAN дугаарыг VNI дугаартай холбож үзье:

feature nv overlay
feature vn-segment-vlan-based

VxLAN-ийн ажиллагааг хариуцдаг NVE интерфейсийг тохируулцгаая. Энэ интерфэйс нь VxLAN толгой хэсэгт хүрээг багтаах үүрэгтэй. Та GRE-ийн туннелийн интерфэйстэй аналоги зурж болно:

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

Leaf-21 шилжүүлэгч дээр бүх зүйл асуудалгүйгээр бүтээгдсэн. Гэсэн хэдий ч, хэрэв бид тушаалын гаралтыг шалгах юм бол show nve peers, дараа нь хоосон байх болно. Энд та VPC тохиргоо руу буцах хэрэгтэй. Leaf-11 ба Leaf-12 нь хосоороо ажилладаг бөгөөд VPC домэйнээр нэгддэг болохыг бид харж байна. Энэ нь бидэнд дараах нөхцөл байдлыг өгдөг.

Хост-2 нь Leaf-21 рүү нэг фрейм илгээдэг бөгөөд ингэснээр сүлжээгээр Хост-1 рүү дамжуулдаг. Гэсэн хэдий ч Leaf-21 нь Host-1-ийн MAC хаягийг нэг дор хоёр VTEP-ээр дамжуулан авах боломжтой гэдгийг харж байна. Энэ тохиолдолд Leaf-21 юу хийх ёстой вэ? Эцсийн эцэст энэ нь сүлжээнд гогцоо гарч болзошгүй гэсэн үг юм.

Энэ нөхцөл байдлыг шийдвэрлэхийн тулд бид үйлдвэр доторх Навч-11, Навч-12 нэг төхөөрөмжөөр ажиллах шаардлагатай байна. Үүний шийдэл нь маш энгийн. Бидний хонгилыг барьж буй Loopback интерфейс дээр хоёрдогч хаяг нэмнэ. Хоёрдогч хаяг нь хоёр VTEP дээр ижил байх ёстой.

interface loopback0
 ip add 10.255.1.10/32 secondary

Тиймээс бусад VTEP-ийн үүднээс авч үзвэл бид дараах топологийг олж авна.

VxLAN үйлдвэр. 1-р хэсэг

Өөрөөр хэлбэл, одоо Leaf-21-ийн IP хаяг ба хоёр Навч-11 ба Навч-12-ын хоорондох виртуал IP хооронд туннель баригдах болно. Одоо хоёр төхөөрөмжөөс MAC хаягийг сурахад ямар ч асуудал гарахгүй бөгөөд траффик нэг VTEP-ээс нөгөө рүү шилжих боломжтой. Хоёр VTEP-ийн аль нь замын хөдөлгөөнийг боловсруулах вэ гэдгийг нуруун дээрх чиглүүлэлтийн хүснэгтийг ашиглан шийднэ.

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

Дээрхээс харахад 10.255.1.10 хаягийг хоёр Next-hop-оор дамжуулан шууд авах боломжтой.

Энэ үе шатанд бид үндсэн холболтын асуудлыг шийдсэн. NVE интерфейсийг тохируулах руу шилжье:
Vlan 10-г нэн даруй идэвхжүүлж, хостуудад зориулж Навч бүр дээр VNI 10000-тай холбоно. Хостуудын хооронд L2 хонгил байгуулъя

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

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

Одоо BGP EVPN-ийн үе тэнгийнхэн болон хүснэгтийг шалгацгаая:

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

Дээр бид зөвхөн EVPN төрлийн 3 маршрутыг харж байна. Энэ төрлийн маршрут нь peer(Leaf)-ийн тухай ярьдаг, гэхдээ манай хостууд хаана байдаг вэ?
Хамгийн гол нь MAC хостуудын талаарх мэдээллийг EVPN 2-р төрлийн маршрутаар дамжуулдаг

Манай хостуудыг харахын тулд та EVPN route-type 2-ыг тохируулах хэрэгтэй:

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

Хост-2-оос Хост-1 рүү пинг хийцгээе:

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

Мөн доороос бид хост MAC хаягтай 2-р төрлийн маршрут BGP хүснэгтэд гарч ирснийг харж болно - 5001.0007.0007 ба 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

Дараа нь та MAC хостын талаарх мэдээллийг хүлээн авсан Шинэчлэлийн талаарх дэлгэрэнгүй мэдээллийг харах боломжтой. Доорх нь бүх тушаалын гаралт биш юм.

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

Хүрээнүүд үйлдвэрээр дамжин өнгөрөхөд ямар байхыг харцгаая.

VxLAN үйлдвэр. 1-р хэсэг

Дарах-ARP

Гайхалтай, бид одоо хостуудын хооронд L2 харилцаа холбоо байгаа бөгөөд бид тэнд дуусгах боломжтой. Гэсэн хэдий ч бүх зүйл тийм ч энгийн биш юм. Бид цөөхөн хосттой л бол ямар ч асуудал гарахгүй. Гэхдээ бид хэдэн зуун, мянга мянган хосттой байгаа нөхцөл байдлыг төсөөлөөд үз дээ. Бидэнд ямар асуудал тулгарч болох вэ?

Энэ асуудал нь BUM(Broadcast, Unknown Unicast, Multicast) урсгал юм. Энэ нийтлэлд бид өргөн нэвтрүүлгийн урсгалыг шийдвэрлэх сонголтыг авч үзэх болно.
Ethernet сүлжээн дэх өргөн нэвтрүүлгийн гол үүсгэгч нь ARP протоколоор дамжуулан хостууд өөрсдөө юм.

Nexus нь ARP хүсэлттэй тэмцэх дараах механизмыг хэрэгжүүлдэг - suppress-arp.
Энэ функц нь дараах байдлаар ажилладаг.

  1. Хост-1 нь APR хүсэлтийг сүлжээнийхээ Broadcast хаяг руу илгээдэг.
  2. Хүсэлт нь Навч шилжүүлэгч рүү хүрч, энэ хүсэлтийг Хост-2 руу дамжуулахын оронд Навч өөрөө хариу өгч, шаардлагатай IP болон MAC-ыг заана.

Ийнхүү Өргөн нэвтрүүлгийн хүсэлт үйлдвэрт очсонгүй. Гэхдээ хэрэв Навч зөвхөн MAC хаягийг мэддэг бол энэ яаж ажиллах вэ?

Бүх зүйл маш энгийн, EVPN 2-р төрлийн маршрут нь MAC хаягаас гадна MAC/IP хослолыг дамжуулах боломжтой. Үүнийг хийхийн тулд та Leaf дээрх VLAN-д IP хаягийг тохируулах хэрэгтэй. Асуулт гарч ирнэ, би ямар IP тохируулах ёстой вэ? Nexus дээр бүх шилжүүлэгч дээр тархсан (ижил) хаяг үүсгэх боломжтой:

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

Тиймээс, хостуудын үүднээс сүлжээ нь дараах байдлаар харагдах болно.

VxLAN үйлдвэр. 1-р хэсэг

BGP l2route evpn-ийг шалгацгаая

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

<......>

Тушаалын гаралтаас харахад EVPN-ийн төрөл 2-т MAC-аас гадна бид хостын IP хаягийг харж байна.

suppress-arp тохиргоо руугаа буцъя. Энэ тохиргоог VNI тус бүрд тусад нь идэвхжүүлсэн:

interface nve1
  member vni 10000   
    suppress-arp

Дараа нь зарим нарийн төвөгтэй байдал үүсдэг:

  • Энэ функцийг ажиллуулахын тулд TCAM санах ойд зай шаардлагатай. suppress-arp тохиргооны жишээ энд байна:

hardware access-list tcam region arp-ether 256

Энэ тохиргоонд давхар өргөн шаардлагатай болно. Өөрөөр хэлбэл, хэрэв та 256-г тохируулсан бол TCAM-д 512-г суллах хэрэгтэй. TCAM-г тохируулах нь энэ өгүүллийн хамрах хүрээнээс гадуур, учир нь TCAM-г тохируулах нь зөвхөн танд өгсөн даалгавараас хамаарах бөгөөд сүлжээнээс нөгөөдөө өөр байж болно.

  • Suppress-arp-ийг бүх Навчны унтраалга дээр хийх ёстой. Гэсэн хэдий ч VPC домэйнд амьдардаг Навч хосыг тохируулах үед төвөгтэй байдал үүсч болно. Хэрэв TCAM-ийг өөрчилвөл хос хоорондын уялдаа холбоо эвдэрч, нэг зангилаа ажиллахгүй болно. Түүнчлэн, TCAM-ийн өөрчлөлтийн тохиргоог хэрэгжүүлэхийн тулд төхөөрөмжийг дахин ачаалах шаардлагатай байж болно.

Үүний үр дүнд та өөрийн нөхцөл байдалд энэ тохиргоог ажиллаж байгаа үйлдвэрт хэрэгжүүлэх нь зүйтэй эсэхийг сайтар бодож үзэх хэрэгтэй.

Үүгээр цувралын эхний хэсэг өндөрлөж байна. Дараагийн хэсэгт бид сүлжээг өөр өөр VRF-д хуваах VxLAN даавуугаар дамжуулан чиглүүлэлтийн талаар авч үзэх болно.

Одоо би хүн бүрийг урьж байна үнэгүй вэбинар, үүний дотор би танд сургалтын талаар дэлгэрэнгүй ярих болно. Энэхүү вебинарт бүртгүүлсэн эхний 20 оролцогчид нэвтрүүлэг цацагдсанаас хойш 1-2 хоногийн дотор Хөнгөлөлтийн гэрчилгээг цахим шуудангаар хүлээн авна.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх