کارخانه VxLAN. قسمت 1

سلام هابر من در حال حاضر رهبر دوره برای دوره مهندس شبکه در OTUS هستم.
در انتظار شروع ثبت نام جدید برای دوره "مهندس شبکه"، من یک سری مقاله در مورد فناوری VxLAN EVPN آماده کرده ام.

مقدار زیادی مطالب در مورد نحوه کار VxLAN EVPN وجود دارد، بنابراین من می خواهم وظایف و روش های مختلفی را برای حل مشکلات در یک مرکز داده مدرن جمع آوری کنم.

کارخانه VxLAN. قسمت 1

در قسمت اول از سری فناوری VxLAN EVPN، من می‌خواهم راهی برای سازماندهی اتصال L2 بین میزبان‌ها در بالای یک بافت شبکه بررسی کنم.

همه نمونه‌ها بر روی یک Cisco Nexus 9000v که در توپولوژی Spine-Leaf مونتاژ شده است، اجرا خواهند شد. ما در این مقاله به راه اندازی شبکه Underlay نمی پردازیم.

  1. شبکه زیرانداز
  2. همتاسازی BGP برای آدرس-خانواده l2vpn evpn
  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، باید BGP را روی سوئیچ‌های Spine و Leaf با پشتیبانی از خانواده l2vpn evpn فعال کنید:

feature bgp
nv overlay evpn

در مرحله بعد، باید همتاسازی BGP را بین Leaf و Spine پیکربندی کنید. برای ساده‌سازی راه‌اندازی و بهینه‌سازی توزیع اطلاعات مسیریابی، ما Spine را به‌عنوان سرور Route-Reflector پیکربندی می‌کنیم. ما تمام Leaf را در پیکربندی با استفاده از الگوها برای بهینه سازی تنظیمات می نویسیم.

بنابراین تنظیمات ستون فقرات به این صورت است:

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، بیایید همتاسازی را با همه سوئیچ‌های 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 ها تنها در یک سوئیچ Leaf منحصر به فرد می شوند و در سراسر شبکه منتقل نمی شوند. اما هر VLAN می تواند یک شماره VNI مرتبط با خود داشته باشد که قبلاً از طریق شبکه منتقل می شود. این که چگونه به نظر می رسد و چگونه می توان از آن استفاده کرد بیشتر مورد بحث قرار خواهد گرفت.

بیایید ویژگی کارکرد فناوری VxLAN و توانایی مرتبط کردن شماره‌های VLAN را با یک شماره VNI فعال کنیم:

feature nv overlay
feature vn-segment-vlan-based

بیایید رابط NVE را که مسئول عملکرد VxLAN است، پیکربندی کنیم. این رابط وظیفه کپسوله کردن فریم ها در هدرهای 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 متحد می شوند. این وضعیت زیر را به ما می دهد:

Host-2 یک فریم را به Leaf-21 می فرستد تا آن را از طریق شبکه به Host-1 منتقل کند. با این حال، Leaf-21 می بیند که آدرس MAC Host-1 از طریق دو VTEP به طور همزمان قابل دسترسی است. Leaf-21 در این مورد چه کاری باید انجام دهد؟ پس از همه، این بدان معنی است که یک حلقه می تواند در شبکه ظاهر شود.

برای حل این وضعیت، ما به Leaf-11 و Leaf-12 نیاز داریم تا به عنوان یک دستگاه در داخل کارخانه عمل کنند. راه حل کاملا ساده است. در رابط Loopback که تونل را از آن می سازیم، یک آدرس ثانویه اضافه کنید. آدرس ثانویه باید در هر دو VTEP یکسان باشد.

interface loopback0
 ip add 10.255.1.10/32 secondary

بنابراین، از دیدگاه سایر VTEP ها، توپولوژی زیر را دریافت می کنیم:

کارخانه VxLAN. قسمت 1

یعنی اکنون تونل بین آدرس IP Leaf-21 و IP مجازی بین دو Leaf-11 و Leaf-12 ساخته خواهد شد. اکنون هیچ مشکلی در یادگیری مک آدرس از دو دستگاه وجود نخواهد داشت و ترافیک می تواند از یک 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-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

حالا بیایید همتایان nve و جدول 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

بیایید از Host-2 به Host-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 با آدرس MAC میزبان در جدول 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

در مرحله بعد، می توانید اطلاعات دقیقی را در Update مشاهده کنید که در آن اطلاعاتی در مورد MAC Host دریافت کرده اید. در زیر تمام خروجی فرمان نیست.

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) است. در این مقاله گزینه برخورد با ترافیک پخش را بررسی خواهیم کرد.
مولد اصلی Broadcast در شبکه های اترنت خود میزبان ها از طریق پروتکل ARP هستند.

Nexus مکانیسم زیر را برای مبارزه با درخواست‌های ARP پیاده‌سازی می‌کند - suppress-arp.
این ویژگی به صورت زیر عمل می کند:

  1. Host-1 یک درخواست APR را به آدرس Broadcast شبکه خود ارسال می کند.
  2. درخواست به سوئیچ Leaf می رسد و به جای اینکه این درخواست را بیشتر به فابریک به سمت Host-2 ارسال کند، لیف خودش پاسخ می دهد و IP و MAC مورد نیاز را نشان می دهد.

بنابراین، درخواست پخش به کارخانه نرفت. اما اگر Leaf فقط آدرس MAC را بداند، چگونه می تواند کار کند؟

همه چیز بسیار ساده است، مسیر EVPN نوع 2، علاوه بر آدرس MAC، می تواند یک ترکیب MAC/IP را انتقال دهد. برای انجام این کار، باید یک آدرس IP را در VLAN روی Leaf پیکربندی کنید. این سوال پیش می آید که چه 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 route-type 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 را تنظیم کنید، پس باید 512 را در TCAM آزاد کنید. راه اندازی TCAM خارج از حوصله این مقاله است، زیرا راه اندازی TCAM تنها به وظیفه ای بستگی دارد که به شما محول شده است و ممکن است از شبکه ای به شبکه دیگر متفاوت باشد.

  • پیاده سازی suppress-arp باید روی تمام سوئیچ های Leaf انجام شود. با این حال، پیچیدگی ممکن است هنگام پیکربندی روی جفت برگ های ساکن در یک دامنه VPC ایجاد شود. اگر TCAM تغییر کند، سازگاری بین جفت ها از بین می رود و ممکن است یک گره از کار خارج شود. علاوه بر این، ممکن است برای اعمال تنظیمات تغییر TCAM به راه اندازی مجدد دستگاه نیاز باشد.

در نتیجه، باید به دقت در نظر بگیرید که آیا در شرایط شما ارزش اجرای این تنظیمات را در یک کارخانه در حال اجرا دارد یا خیر.

این قسمت اول مجموعه را به پایان می رساند. در قسمت بعدی مسیریابی از طریق فابریک VxLAN با جداسازی شبکه ها به VRF های مختلف را بررسی خواهیم کرد.

و اکنون همه را دعوت می کنم وبینار رایگان، که در آن به طور مفصل در مورد دوره به شما خواهم گفت. 20 شرکت کننده اول که در این وبینار ثبت نام می کنند، طی 1 تا 2 روز پس از پخش، گواهی تخفیف از طریق ایمیل دریافت می کنند.

منبع: www.habr.com

اضافه کردن نظر