VxLAN заводу. 1 бөлүк

Салам, хабр. Мен учурда OTUSдагы Network Engineer курсунун лидеримин.
Курска жаңы кабыл алуунун башталышын күтүү менен "Тармак инженери", Мен 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

Андан кийин, сиз Leaf жана Spine ортосунда BGP пирингди конфигурациялашыңыз керек. Орнотууларды жөнөкөйлөтүү жана маршруттук маалымат бөлүштүрүүнү оптималдаштыруу үчүн, биз Spineди Маршрут-Рефлектор сервери катары конфигурациялайбыз. Орнотууну оптималдаштыруу үчүн шаблондорду колдонуп конфигурацияга бардык Жалбыракты жазабыз.

Ошентип, 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

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де, келгиле, бардык Leaf которгучтары менен пирингди текшерели:

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 орнотууга өтөлү. Андан аркы конфигурация өчүргүчтөрдүн жалбырак тарабында гана жасалат. Spine тармактын өзөгү катары гана иштейт жана трафикти өткөрүүгө гана катышат. Бардык инкапсуляция жана жолду аныктоо иштери Жалбырак өчүргүчтөрүндө гана болот.

NVE орнотулууда

NVE - тармактык виртуалдык интерфейс

Орнотууну баштоодон мурун, кээ бир терминологияны киргизели:

VTEP - Vitual Tunnel End Point, VxLAN туннели башталып же бүтө турган түзмөк. VTEP сөзсүз түрдө кандайдыр бир тармак түзмөк эмес. VxLAN технологиясын колдогон сервер сервер катары да иштей алат. Биздин топологиябызда бардык Leaf которгучтары 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 хост-1дин MAC дареги бир эле учурда эки VTEP аркылуу жеткиликтүү экенин көрөт. Бул учурда Leaf-21 эмне кылышы керек? Анткени, бул тармакта цикл пайда болушу мүмкүн дегенди билдирет.

Бул абалды чечүү үчүн бизге Leaf-11 жана Leaf-12 да заводдун ичинде бир аппарат катары иштеши керек. Чечим абдан жөнөкөй. Биз туннель курган Loopback интерфейсине экинчи даректи кошуңуз. Экинчи дарек эки VTEPде бирдей болушу керек.

interface loopback0
 ip add 10.255.1.10/32 secondary

Ошентип, башка VTEP көз карашынан алганда, биз төмөнкү топологияны алабыз:

VxLAN заводу. 1 бөлүк

Башкача айтканда, азыр туннель Leaf-21 IP дареги менен эки Leaf-11 жана Leaf-12 ортосундагы виртуалдык IP ортосунда курулат. Эми эки түзмөктөн MAC дарегин үйрөнүүдө эч кандай көйгөйлөр болбойт жана трафик бир VTEPден экинчисине өтүшү мүмкүн. Эки VTEPдин кайсынысы трафикти иштете тургандыгы Spineдеги маршруттук таблица аркылуу чечилет:

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-hops аркылуу дароо жеткиликтүү.

Бул этапта биз негизги байланышты карап чыктык. Келгиле, 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 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

Ал эми төмөндө биз BGP таблицасында MAC дареги менен 2-маршруттун түрүн көрө алабыз - 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(Берүү, Белгисиз Unicast, Multicast) трафиги. Бул макалада биз трансляция трафиги менен иштөө вариантын карап чыгабыз.
Ethernet тармактарындагы негизги уктуруу генератору ARP протоколу аркылуу хосттордун өздөрү болуп саналат.

Nexus ARP сурамдары менен күрөшүү үчүн төмөнкү механизмди ишке ашырат - suppress-arp.
Бул өзгөчөлүк төмөнкүдөй иштейт:

  1. Host-1 өзүнүн тармагынын уктуруу дарегине APR сурам жөнөтөт.
  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 маршруттук тибинде 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 доменинде жашаган Leaf жуптарын конфигурациялоодо татаалдык пайда болушу мүмкүн. Эгерде TCAM өзгөртүлсө, жуптар ортосундагы ырааттуулук бузулат жана бир түйүн иштен чыгып калышы мүмкүн. Кошумча, TCAM өзгөртүү жөндөөсүн колдонуу үчүн аппаратты кайра жүктөө талап кылынышы мүмкүн.

Натыйжада, сиз кылдаттык менен карап чыгышыңыз керек, сиздин жагдайыңызда бул жөндөөнү иштеп жаткан заводго киргизүү керекпи.

Муну менен катардын биринчи бөлүгү аяктайт. Кийинки бөлүктө биз VxLAN ткани аркылуу тармактарды ар кандай VRFдерге бөлүү менен маршрутизацияны карайбыз.

Эми мен баарын чакырам акысыз вебинар, анын ичинде мен сизге курс жөнүндө кеңири айтып берем. Бул вебинарга катталган алгачкы 20 катышуучу эфирден кийин 1-2 күндүн ичинде электрондук почта аркылуу арзандатуу сертификатын алышат.

Source: www.habr.com

Комментарий кошуу