سلام هابر من در حال حاضر رهبر دوره برای دوره مهندس شبکه در OTUS هستم.
در انتظار شروع ثبت نام جدید برای دوره
مقدار زیادی مطالب در مورد نحوه کار VxLAN EVPN وجود دارد، بنابراین من می خواهم وظایف و روش های مختلفی را برای حل مشکلات در یک مرکز داده مدرن جمع آوری کنم.
در قسمت اول از سری فناوری VxLAN EVPN، من میخواهم راهی برای سازماندهی اتصال L2 بین میزبانها در بالای یک بافت شبکه بررسی کنم.
همه نمونهها بر روی یک Cisco Nexus 9000v که در توپولوژی Spine-Leaf مونتاژ شده است، اجرا خواهند شد. ما در این مقاله به راه اندازی شبکه Underlay نمی پردازیم.
- شبکه زیرانداز
- همتاسازی BGP برای آدرس-خانواده l2vpn evpn
- راه اندازی NVE
- سرکوب-arp
شبکه زیرانداز
توپولوژی استفاده شده به شرح زیر است:
بیایید آدرس دهی را در همه دستگاه ها تنظیم کنیم:
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 بروید.
به عنوان بخشی از مقاله، سازماندهی یک شبکه بین هاست ها ضروری است، همانطور که در نمودار زیر نشان داده شده است:
برای پیکربندی یک شبکه 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 ها، توپولوژی زیر را دریافت می کنیم:
یعنی اکنون تونل بین آدرس 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
<........>
بیایید ببینیم که فریم ها هنگام عبور از کارخانه چگونه به نظر می رسند:
سرکوب-ARP
عالی است، ما اکنون ارتباط L2 بین میزبان ها داریم و می توانیم آنجا را تمام کنیم. با این حال، همه چیز به این سادگی نیست. تا زمانی که میزبان کم داشته باشیم هیچ مشکلی وجود نخواهد داشت. اما بیایید شرایطی را تصور کنیم که صدها و هزاران میزبان داریم. ممکن است با چه مشکلی مواجه شویم؟
این مشکل ترافیک BUM (Broadcast، Unknown Unicast، Multicast) است. در این مقاله گزینه برخورد با ترافیک پخش را بررسی خواهیم کرد.
مولد اصلی Broadcast در شبکه های اترنت خود میزبان ها از طریق پروتکل ARP هستند.
Nexus مکانیسم زیر را برای مبارزه با درخواستهای ARP پیادهسازی میکند - suppress-arp.
این ویژگی به صورت زیر عمل می کند:
- Host-1 یک درخواست APR را به آدرس Broadcast شبکه خود ارسال می کند.
- درخواست به سوئیچ 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
بنابراین، از دیدگاه میزبان، شبکه به شکل زیر خواهد بود:
بیایید 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 های مختلف را بررسی خواهیم کرد.
و اکنون همه را دعوت می کنم
منبع: www.habr.com