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

سلام هابر ادامه سری مقالات در زمینه فناوری VxLAN EVPN که به طور خاص برای شروع دوره نوشته شده است "مهندس شبکه" از OTUS. و امروز ما به بخش جالبی از کار - مسیریابی - نگاه خواهیم کرد. مهم نیست که چقدر بی اهمیت به نظر می رسد، با این حال، در چارچوب کار یک کارخانه شبکه، همه چیز ممکن است به این سادگی نباشد.

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

بخش 1 چرخه - اتصال L2 بین سرورها

در قسمت آخر، ما به یک دامنه پخش دست یافتیم که بر روی بافت شبکه در Nexus 9000v ساخته شده است. با این حال، این طیف وسیعی از وظایفی نیست که باید در شبکه مرکز داده حل شوند. و امروز ما به کار بعدی نگاه خواهیم کرد - مسیریابی بین شبکه ها یا بین VNI ها.

اجازه دهید یادآوری کنم که از توپولوژی Spine-Leaf استفاده می شود:

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

ابتدا، بیایید ببینیم مسیریابی چگونه رخ می دهد و چه ویژگی هایی دارد.

برای درک، بیایید نمودار منطقی را ساده کنیم و VNI 20000 دیگری را برای Host-2 اضافه کنیم. نتیجه این است:

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

در این حالت چگونه می توانید ترافیک را از یک هاست به میزبان دیگر منتقل کنید؟

دو گزینه وجود دارد:

  1. اطلاعات مربوط به تمام VNI ها را در تمام سوئیچ های Leaf نگه دارید، سپس تمام مسیریابی ها در اولین برگ در شبکه انجام می شود.
  2. از L3 VNI اختصاصی استفاده کنید

روش اول ساده و راحت است. از آنجایی که فقط باید تمام VNI را روی تمام سوئیچ های Leaf نصب کنید. با این حال، راه اندازی چند صد یا هزار VNI برای همه Leafs دیگر کار ساده ای به نظر نمی رسد. بنابراین، آن را به ندرت در کار استفاده می شود.

بیایید به روش 2 نگاه کنیم که جالب تر و کمی پیچیده تر است، اما انعطاف پذیری بیشتری در راه اندازی کارخانه می دهد.

بیایید PROD را به توپولوژی VRF اضافه کنیم. به آن رابط vlan 10 در جفت Leaf-11/12 و رابط VLAN 20 در Leaf-21 اضافه می کنیم. VLAN 20 با VNI 20000 مرتبط است

vrf context PROD
  rd auto       ! Route Distinguisher не принципиален и можем использовать сформированный автоматически
  address-family ipv4 unicast
    route-target both auto      ! указываем Route-target с которым будут импортироваться и экспортироваться префиксы в/из VRF
vlan 20
  vn-segment 20000

interface nve 1
  member vni 20000
    ingress-replication protocol bgp

interface Vlan10
  no shutdown
  vrf member PROD
  ip address 192.168.20.1/24
  fabric forwarding mode anycast-gateway

برای استفاده از L3VNI، باید یک VLAN جدید ایجاد کنید و آن را با VNI جدید مرتبط کنید. VNI جدید باید در همه برگه هایی که به اطلاعات VLAN 10 و 20 علاقه مند هستند یکسان باشد

vlan 99
  vn-segment 99000

interface nve1
  member vni 99000 associate-vrf        ! Создаем L3 VNI

vrf context PROD
  vni 99000                             ! Привязываем L3 VNI к определенному VRF

در نتیجه، نمودار به شکل زیر خواهد بود:

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

باقی مانده است که کمی انجام شود - یک رابط دیگر اضافه کنید - رابط vlan 99 در VRF PROD

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf

در نتیجه، منطق انتقال فریم از Host-1 به Host-2 به شرح زیر است:

  1. فریم ارسال شده توسط Host-1 به Leaf در VLAN 10 می رسد که با VNI 10000 مرتبط است.
  2. Leaf بررسی می کند که آدرس مقصد کجاست و آن را از طریق L3 VNI در سوئیچ Leaf دوم پیدا می کند.
  3. به محض اینکه مسیری به آدرس مقصد پیدا شد، Leaf فریم را در یک هدر با L3VNI 99000 لازم بسته بندی می کند - و آن را به سمت برگ دوم ارسال می کند.
  4. سوئیچ Leaf دوم داده ها را از L3VNI 99000 دریافت می کند. فریم اصلی را گرفته و به L2VNI 20000 مورد نیاز و سپس به VLAN 20 منتقل می کند.

در نتیجه این کار، L3VNI نیاز به نگه داشتن اطلاعات در مورد تمام VNI هایی که در شبکه هستند در تمام سوئیچ های Leaf را حذف می کند.

در نتیجه، وقتی ترافیک را از Host-1 به Host-2 ارسال می کنیم، بسته در داخل VxLAN با یک VNI جدید - 99000 بسته می شود:

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

باید دید Leaf-1 دقیقاً چگونه آدرس MAC را از یک VNI دیگر می‌آموزد. این همچنین با استفاده از مسیر EVPN نوع 2 (MAC/IP) اتفاق می‌افتد.

شکل زیر روند انتشار یک مسیر را در مورد پیشوندی که در VNI دیگری قرار دارد نشان می دهد:

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

یعنی آدرس های دریافت شده از VNI 20000 دارای دو RT هستند.
اجازه دهید به شما یادآوری کنم که مسیرهای دریافت شده از Update با Route-target مشخص شده در تنظیمات VRF در جدول BGP قرار می گیرند (فرایند تا حدودی پیچیده تر است، اما ما به این مقاله نمی پردازیم).
خود RT طبق فرمول شکل می گیرد: AS:VNI (در صورت استفاده از حالت خودکار).

مثالی از تشکیل RT در حالت اتوماتیک و دستی:

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - автоматический режим работы
    route-target export 65001:20000 - ручной режим формирования RT

نتیجه بالا نشان می دهد که پیشوندهای یک VNI دیگر دارای دو مقدار RT هستند.
یکی از آنها 65001:99000 است - L3 VNI اضافی. از آنجایی که این VNI در همه برگها یکسان است و تحت قوانین واردات ما در تنظیمات VRF قرار می گیرد، پیشوند به جدول BGP ختم می شود که از خروجی قابل مشاهده است:

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.10                       100      32768 i
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]/272
                      10.255.1.10                       100      32768 i
*>l[3]:[0]:[32]:[10.255.1.10]/88
                      10.255.1.10                       100      32768 i

Route Distinguisher: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272    ! Префикс полученный из VNI 20000
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

اگر با دقت بیشتری به آپدیت دریافتی نگاه کنیم، می بینیم که این پیشوند دو RT دارد:

Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.2
0]/272, version 5164
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 labeled nexthop
  AS-Path: NONE, path sourced internal to AS
    10.255.1.20 (metric 81) from 10.255.1.102 (10.255.1.102)
      Origin IGP, MED not set, localpref 100, weight 0
      Received label 20000 99000                                 ! Два label для работы VxLAN
      Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8     ! Два значения Route-target, на основе, которых добавили данный префикс
          Router MAC:5001.0005.0007
      Originator: 10.255.1.21 Cluster list: 10.255.1.102
<......>

در جدول مسیریابی Leaf-1 همچنین می توانید پیشوند 192.168.20.20/32 را مشاهده کنید:

Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, attached
    *via 192.168.10.1, Vlan10, [0/0], 01:29:28, direct
192.168.10.1/32, ubest/mbest: 1/0, attached
    *via 192.168.10.1, Vlan10, [0/0], 01:29:28, local
192.168.10.10/32, ubest/mbest: 1/0, attached
    *via 192.168.10.10, Vlan10, [190/0], 01:27:22, hmm
192.168.20.20/32, ubest/mbest: 1/0                                        ! Адрес Host-2
    *via 10.255.1.20%default, [200/0], 01:20:20, bgp-65001, internal, tag 65001     ! Доступный через Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN                                ! Через VNI 99000

به عدم وجود پیشوند اصلی 192.168.20.0/24 در جدول مسیریابی توجه کرده اید؟
درست است، او آنجا نیست. یعنی Leafs از راه دور فقط اطلاعات مربوط به میزبان هایی را که در شبکه شما هستند دریافت می کنند. و این رفتار درستی است. در بالای همه به‌روزرسانی‌ها، می‌توانید ببینید که اطلاعات با محتوای MAC/IP همراه است. صحبت از هیچ پیشوندی نیست.

پروتکل Host Mobility Manager (HMM) به این صورت کار می کند، که جدول ARP را که جدول BGP از آن پر می شود پر می کند (ما این فرآیند را برای اهداف این مقاله حذف می کنیم). بر اساس اطلاعات دریافتی از HMM، مسیر EVPN نوع 2 تشکیل می شود (که توسط MAC/IP مخابره می شود).

با این حال، اگر نیاز به انتقال اطلاعات در مورد یک پیشوند وجود داشته باشد، چه؟

برای این نوع اطلاعات، مسیر EVPN نوع 5 وجود دارد - به شما امکان می دهد پیشوندها را از طریق آدرس-family l2vpn evpn ارسال کنید (این نوع مسیرها در زمان نوشتن فقط در نسخه پیش نویس است. RFC، به همین دلیل رفتار این نوع مسیر ممکن است در بین سازندگان مختلف متفاوت باشد)

برای انتقال پیشوندها، لازم است پیشوندهایی را اضافه کنید که در فرآیند BGP برای VRF تبلیغ می شوند:

router bgp 65001
  vrf PROD
    address-family ipv4 unicast
      redistribute direct route-map VNI20000        ! В данном случае анонсируем префиксы подключение непосредственно к Leaf в VNI 20000
route-map VNI20000 permit 10
  match ip address prefix-list VNI20000_OUT    ! Указываем какой использовать prefix-list

ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24   ! Указываем какие сети будут попадать в EVPN route-type 5

در نتیجه، به روز رسانی خواهد داشت:

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

بیایید به جدول BGP نگاه کنیم. علاوه بر EVPN route-type 2,3، مسیرهای نوع 5 ظاهر شده است که حاوی اطلاعاتی در مورد شماره شبکه است:

<......>
   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:3
* i[5]:[0]:[0]:[24]:[192.168.10.0]/224
                      10.255.1.10              0        100          0 ?
*>i                   10.255.1.10              0        100          0 ?

Route Distinguisher: 10.255.1.11:32777
* i[2]:[0]:[0]:[48]:[5001.0007.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.0007.0007]:[32]:[192.168.10.10]/272
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i
* i[3]:[0]:[32]:[10.255.1.10]/88
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i

Route Distinguisher: 10.255.1.12:3
*>i[5]:[0]:[0]:[24]:[192.168.10.0]/224      ! EVPN route-type 5 с номером префикса
                      10.255.1.10              0        100          0 ?
* i
<.......>                   

پیشوند نیز در جدول مسیریابی ظاهر شد:

Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
    *via 10.255.1.10%default, [200/0], 00:14:32, bgp-65001, internal, tag 65001  ! Удаленный префикс, доступный через Leaf1/2(адрес Next-hop = virtual IP между парой VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN      ! Префикс доступен через L3VNI 99000

192.168.10.10/32, ubest/mbest: 1/0
    *via 10.255.1.10%default, [200/0], 02:33:40, bgp-65001, internal, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN

192.168.20.0/24, ubest/mbest: 1/0, attached
    *via 192.168.20.1, Vlan20, [0/0], 02:39:44, direct
192.168.20.1/32, ubest/mbest: 1/0, attached
    *via 192.168.20.1, Vlan20, [0/0], 02:39:44, local
192.168.20.20/32, ubest/mbest: 1/0, attached
    *via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmm

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

مبانی پروتکل IPv6 و تفاوت های آن با IPv4

منبع: www.habr.com

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