ВкЛАН фабрика. Део 1

Здраво, хабр. Тренутно сам водитељ курса за мрежни инжењер на ОТУС-у.
У ишчекивању почетка новог уписа курса "Инжењер мреже", припремио сам серију чланака о ВкЛАН ЕВПН технологији.

Постоји огромна количина материјала о томе како ВкЛАН ЕВПН функционише, па желим да прикупим разне задатке и праксе за решавање проблема у модерном дата центру.

ВкЛАН фабрика. Део 1

У првом делу серије о ВкЛАН ЕВПН технологији, желим да погледам начин да организујем Л2 конекцију између хостова на врху мреже.

Сви примери ће бити изведени на Цисцо Некус 9000в, састављеном у топологији Спине-Леаф. У овом чланку нећемо се задржавати на постављању Ундерлаи мреже.

  1. Подложна мрежа
  2. БГП пееринг за адресу-породицу л2впн евпн
  3. Постављање НВЕ
  4. Суппресс-арп

Подложна мрежа

Топологија која се користи је следећа:

ВкЛАН фабрика. Део 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

Хајде да проверимо да ли постоји ИП веза између свих уређаја:

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

Хајде да проверимо да ли је ВПЦ домен креиран и да су оба прекидача прошла проверу доследности и да су подешавања на оба чвора идентична:

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

БГП пееринг

Коначно, можете да пређете на подешавање Оверлаи мреже.

Као део чланка, потребно је организовати мрежу између хостова, као што је приказано на дијаграму испод:

ВкЛАН фабрика. Део 1

Да бисте конфигурисали Оверлаи мрежу, потребно је да омогућите БГП на прекидачима за кичму и лист са подршком за л2впн евпн породицу:

feature bgp
nv overlay evpn

Затим морате да конфигуришете БГП пееринг између Леаф-а и Спине-а. Да бисмо поједноставили подешавање и оптимизовали дистрибуцију информација о рутирању, ми конфигуришемо Спине као сервер Роуте-Рефлецтор. Написаћемо сав Леаф у конфигурацији користећи шаблоне за оптимизацију подешавања.

Дакле, подешавања на Спине-у изгледају овако:

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

На Спине-у, хајде да проверимо пееринг са свим Леаф прекидачима:

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

Као што видите, није било проблема са БГП-ом. Пређимо на подешавање ВкЛАН-а. Даља конфигурација ће се вршити само на страни листа прекидача. Кичма делује само као језгро мреже и укључена је само у пренос саобраћаја. Сав рад на енкапсулацији и одређивању путање одвија се само на Леаф прекидачима.

Постављање НВЕ

НВЕ - мрежни виртуелни интерфејс

Пре почетка подешавања, хајде да уведемо неку терминологију:

ВТЕП - Витуал Туннел Енд Поинт, уређај на коме ВкЛАН тунел почиње или се завршава. ВТЕП није нужно било који мрежни уређај. Сервер који подржава ВкЛАН технологију такође може да делује као сервер. У нашој топологији, сви Леаф прекидачи су ВТЕП.

ВНИ - Индекс виртуелне мреже - идентификатор мреже унутар ВкЛАН-а. Може се повући аналогија са ВЛАН-ом. Међутим, постоје неке разлике. Када се користи тканина, ВЛАН-ови постају јединствени само унутар једног Леаф прекидача и не преносе се преко мреже. Али сваки ВЛАН може имати ВНИ број повезан са њим, који се већ преноси преко мреже. Како то изгледа и како се може користити, биће дискутовано даље.

Хајде да омогућимо функцију ВкЛАН технологије да ради и могућност повезивања ВЛАН бројева са ВНИ бројем:

feature nv overlay
feature vn-segment-vlan-based

Хајде да конфигуришемо НВЕ интерфејс, који је одговоран за рад ВкЛАН-а. Овај интерфејс је одговоран за инкапсулирање оквира у ВкЛАН заглавља. Можете направити аналогију са интерфејсом тунела за ГРЕ:

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

На прекидачу Леаф-21 све се креира без проблема. Међутим, ако проверимо излаз команде show nve peers, онда ће бити празан. Овде се морате вратити на ВПЦ конфигурацију. Видимо да Леаф-11 и Леаф-12 раде у паровима и да су уједињени ВПЦ доменом. Ово нам даје следећу ситуацију:

Хост-2 шаље један оквир према Леаф-21 тако да га он преноси преко мреже према Хост-1. Међутим, Леаф-21 види да је МАЦ адреса Хост-1 доступна преко два ВТЕП-а одједном. Шта треба да уради Леаф-21 у овом случају? На крају крајева, то значи да би се петља могла појавити у мрежи.

Да бисмо решили ову ситуацију, потребни су нам Леаф-11 и Леаф-12 да такође делују као један уређај унутар фабрике. Решење је прилично једноставно. На Лоопбацк интерфејсу из којег градимо тунел, додајте секундарну адресу. Секундарна адреса мора бити иста на оба ВТЕП-а.

interface loopback0
 ip add 10.255.1.10/32 secondary

Дакле, са становишта других ВТЕП-ова, добијамо следећу топологију:

ВкЛАН фабрика. Део 1

То јест, сада ће тунел бити изграђен између ИП адресе Леаф-21 и виртуелне ИП адресе између два Леаф-11 и Леаф-12. Сада неће бити проблема са учењем МАЦ адресе са два уређаја и саобраћај се може кретати са једног ВТЕП-а на други. Који од два ВТЕП-а ће обрадити саобраћај одлучује се помоћу табеле рутирања на Спине-у:

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 је одмах доступна преко два Нект-хоп-а.

У овој фази смо се позабавили основним повезивањем. Пређимо на подешавање НВЕ интерфејса:
Хајде да одмах омогућимо Влан 10 и повежемо га са ВНИ 10000 на сваком листу за домаћине. Хајде да поставимо Л2 тунел између хостова

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

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

Сада хајде да проверимо нве вршњаке и табелу за БГП ЕВПН:

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

Горе видимо само руте типа ЕВПН руте 3. Овај тип руте говори о пеер(Леаф), али где су наши домаћини?
Ствар је у томе што се информације о МАЦ хостовима преносе преко ЕВПН руте типа 2

Да бисте видели наше домаћине, потребно је да конфигуришете ЕВПН тип руте 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

А испод можемо видети да се у БГП табели појавио тип руте 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

Затим можете видети детаљне информације о ажурирању, у којем сте добили информације о МАЦ хосту. Испод није сав излаз команде.

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

Да видимо како оквири изгледају када се прођу кроз фабрику:

ВкЛАН фабрика. Део 1

Суппресс-АРП

Одлично, сада имамо Л2 комуникацију између домаћина и ту бисмо могли да завршимо. Међутим, није све тако једноставно. Све док имамо мало домаћина неће бити проблема. Али замислимо ситуацију да имамо стотине и хиљаде домаћина. Са којим проблемом се можемо суочити?

Овај проблем је БУМ(Броадцаст, Ункновн Уницаст, Мултицаст) саобраћај. У овом чланку ћемо размотрити опцију бављења емитовањем саобраћаја.
Главни Броадцаст генератор у Етхернет мрежама су сами домаћини преко АРП протокола.

Некус имплементира следећи механизам за борбу против АРП захтева - суппресс-арп.
Ова функција ради на следећи начин:

  1. Хост-1 шаље АПР захтев на Броадцаст адресу своје мреже.
  2. Захтев стиже до прекидача Леаф и уместо да прослеђује овај захтев даље у ткиво према Хост-2, Леаф сам одговара и указује на тражени ИП и МАЦ.

Дакле, захтев за емитовање није отишао у фабрику. Али како ово може да функционише ако Леаф зна само МАЦ адресу?

Све је прилично једноставно, ЕВПН рута типа 2, поред МАЦ адресе, може да преноси и МАЦ/ИП комбинацију. Да бисте то урадили, потребно је да конфигуришете ИП адресу у ВЛАН-у на Леаф-у. Поставља се питање који ИП да поставим? На некус-у је могуће креирати дистрибуирану (исту) адресу на свим прекидачима:

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

Дакле, са тачке гледишта домаћина, мрежа ће изгледати овако:

ВкЛАН фабрика. Део 1

Хајде да проверимо БГП л2роуте евпн

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

<......>

Из излаза команде можете видети да у ЕВПН рути типа 2, поред МАЦ-а, сада видимо и ИП адресу домаћина.

Вратимо се на подешавање суппресс-арп. Ово подешавање је омогућено за сваки ВНИ посебно:

interface nve1
  member vni 10000   
    suppress-arp

Тада настаје нека сложеност:

  • Да би ова функција радила, потребан је простор у ТЦАМ меморији. Ево примера подешавања за суппресс-арп:

hardware access-list tcam region arp-ether 256

Ово подешавање ће захтевати двоструку ширину. Односно, ако подесите 256, онда морате да ослободите 512 у ТЦАМ-у. Подешавање ТЦАМ-а је ван оквира овог чланка, пошто подешавање ТЦАМ-а зависи само од задатка који вам је додељен и може се разликовати од мреже до мреже.

  • Имплементација суппресс-арп мора бити обављена на свим прекидачима листа. Међутим, може настати сложеност приликом конфигурисања парова листова који се налазе у ВПЦ домену. Ако се ТЦАМ промени, конзистентност између парова ће бити прекинута и један чвор може бити искључен из рада. Поред тога, може бити потребно поновно покретање уређаја да би се применила ТЦАМ промена подешавања.

Као резултат тога, морате пажљиво размотрити да ли је у вашој ситуацији вредно имплементације ове поставке у фабрику која ради.

Овим се завршава први део серије. У следећем делу ћемо погледати рутирање кроз ВкЛАН тканину са раздвајањем мрежа у различите ВРФ-ове.

А сада позивам све да бесплатан вебинар, у оквиру које ћу вам детаљно испричати о курсу. Првих 20 учесника који се региструју за овај вебинар добиће сертификат о попусту путем е-поште у року од 1-2 дана након емитовања.

Извор: ввв.хабр.цом

Додај коментар