سلام هابر ادامه سری مقالات در زمینه فناوری VxLAN EVPN که به طور خاص برای شروع دوره نوشته شده است
در قسمت آخر، ما به یک دامنه پخش دست یافتیم که بر روی بافت شبکه در Nexus 9000v ساخته شده است. با این حال، این طیف وسیعی از وظایفی نیست که باید در شبکه مرکز داده حل شوند. و امروز ما به کار بعدی نگاه خواهیم کرد - مسیریابی بین شبکه ها یا بین VNI ها.
اجازه دهید یادآوری کنم که از توپولوژی Spine-Leaf استفاده می شود:
ابتدا، بیایید ببینیم مسیریابی چگونه رخ می دهد و چه ویژگی هایی دارد.
برای درک، بیایید نمودار منطقی را ساده کنیم و VNI 20000 دیگری را برای Host-2 اضافه کنیم. نتیجه این است:
در این حالت چگونه می توانید ترافیک را از یک هاست به میزبان دیگر منتقل کنید؟
دو گزینه وجود دارد:
- اطلاعات مربوط به تمام VNI ها را در تمام سوئیچ های Leaf نگه دارید، سپس تمام مسیریابی ها در اولین برگ در شبکه انجام می شود.
- از 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
در نتیجه، نمودار به شکل زیر خواهد بود:
باقی مانده است که کمی انجام شود - یک رابط دیگر اضافه کنید - رابط vlan 99 در VRF PROD
interface Vlan99
no shutdown
vrf member PROD
ip forward ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf
در نتیجه، منطق انتقال فریم از Host-1 به Host-2 به شرح زیر است:
- فریم ارسال شده توسط Host-1 به Leaf در VLAN 10 می رسد که با VNI 10000 مرتبط است.
- Leaf بررسی می کند که آدرس مقصد کجاست و آن را از طریق L3 VNI در سوئیچ Leaf دوم پیدا می کند.
- به محض اینکه مسیری به آدرس مقصد پیدا شد، Leaf فریم را در یک هدر با L3VNI 99000 لازم بسته بندی می کند - و آن را به سمت برگ دوم ارسال می کند.
- سوئیچ Leaf دوم داده ها را از L3VNI 99000 دریافت می کند. فریم اصلی را گرفته و به L2VNI 20000 مورد نیاز و سپس به VLAN 20 منتقل می کند.
در نتیجه این کار، L3VNI نیاز به نگه داشتن اطلاعات در مورد تمام VNI هایی که در شبکه هستند در تمام سوئیچ های Leaf را حذف می کند.
در نتیجه، وقتی ترافیک را از Host-1 به Host-2 ارسال می کنیم، بسته در داخل VxLAN با یک VNI جدید - 99000 بسته می شود:
باید دید Leaf-1 دقیقاً چگونه آدرس MAC را از یک VNI دیگر میآموزد. این همچنین با استفاده از مسیر EVPN نوع 2 (MAC/IP) اتفاق میافتد.
شکل زیر روند انتشار یک مسیر را در مورد پیشوندی که در VNI دیگری قرار دارد نشان می دهد:
یعنی آدرس های دریافت شده از 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 ارسال کنید (این نوع مسیرها در زمان نوشتن فقط در نسخه پیش نویس است.
برای انتقال پیشوندها، لازم است پیشوندهایی را اضافه کنید که در فرآیند 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
در نتیجه، به روز رسانی خواهد داشت:
بیایید به جدول 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 ها را بررسی خواهیم کرد.
منبع: www.habr.com