مقالات

قابلیت همکاری EVPN/VXLAN با IPv6 Next Hops « وبلاگ ipSpace.net


FRRouting نسخه 10.6 وعده داده شده استپشتیبانی BGP IPv6 VTEP“، با ادعای “استقرار EVPN را با استفاده از نقاط پایانی تونل IPv6 در حالی که سازگاری کامل با IPv4 VTEP حفظ می کند، فعال می کند.” البته باید آن را امتحان می‌کردم، و از آنجایی که ما قبلاً EVPN را روی IPv6 داریم که روی Arista EOS اجرا می‌شود (از نسخه Netlab نسخه 26.01)، تصمیم گرفتم یک آزمایشگاه ساده با یک دستگاه Arista cEOS با نسخه 4.35.2F و آخرین کانتینر FRRouting راه‌اندازی کنم.

وقتی کار نکرد، به خصوص تعجب نکردم. در حالی که Arista مسیرهای FRRouting EVPN را می پذیرفت، شبح FRRouting BGP مسیرهای ارسال شده توسط Arista EOS را رد می کرد:

پیام های خطا ایجاد شده توسط شبح FRRouting BGP

2026-04-02 15:04:10 [INFO] bgpd: [N9HHH-F8H1M] %ADJCHANGE: neighbor 2001:db8:0:1::1(Unknown) in vrf default Up
2026-04-02 15:04:10 [ERR!] bgpd: [ZYQP8-F7JMG][EC 33554440] Bad PMSI tunnel attribute length 21 for IR
2026-04-02 15:04:10 [WARN] bgpd: [RWQFK-BA2JR][EC 33554488] 2001:db8:0:1::1: Attribute PMSI_TUNNEL_ATTRIBUTE, parse error - treating as withdrawal
2026-04-02 15:04:10 [ERR!] bgpd: [QWG8G-NT6EJ][EC 33554455] 2001:db8:0:1::1(Unknown) rcvd UPDATE with errors in attr(s)!! Withdrawing route.

بررسی مسیرهای EVPN در جدول Arista EOS BGP جزئیات کثیف را نشان می دهد: رمزگذاری PMSI_TUNNEL_ATTRIBUTE بین دو پیاده سازی متفاوت است.

مسیرهای Arista EOS IMET

swe#show bgp evpn route-type imet detail
BGP routing table information for VRF default
Router identifier 10.0.0.1, local AS number 65000
BGP routing table entry for imet 2001:db8:0:1::1, Route Distinguisher: 10.0.0.1:1000
 Paths: 1 available
  Local
    - from - (0.0.0.0)
      Origin IGP, metric -, localpref -, weight 0, tag 0, valid, local, best
      Extended Community: Route-Target-AS:65000:1000 TunnelEncap:tunnelTypeVxlan
      VNI: 101000
      PMSI Tunnel: Ingress Replication, MPLS Label: 101000, Leaf Information Required: false, Tunnel ID: 2001:db8:0:1::1
BGP routing table entry for imet 2001:db8:0:2::1, Route Distinguisher: 10.0.0.2:1000
 Paths: 1 available
  Local
    2001:db8:0:2::1 from 2001:db8:0:2::1 (10.0.0.2)
      Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, best
      Extended Community: Route-Target-AS:65000:1000 TunnelEncap:tunnelTypeVxlan
      VNI: 101000
      PMSI Tunnel: Ingress Replication, MPLS Label: 101000, Leaf Information Required: false, Tunnel ID: 0.0.0.0

همانطور که از چاپ مشاهده می کنید، Arista EOS از یک آدرس IPv6 به عنوان شناسه تونل PMSI (2001:db8:0:1::1) استفاده می کند، در حالی که FRRouting از آدرس IPv4 (0.0.0.0) استفاده می کند، حتی اگر پرش بعدی مسیر EVPN (آدرس IP VTEP) یک آدرس IPv6 باشد. این هنوز هم خوب است (حداقل Arista EOS این را تشخیص می دهد)، اما FRRouting در مسیر EVPN با یک پرش بعدی IPv6 پارس می کند. و IPv6 PMSI ID تونل و آن را رد می کند.

مشخصه PMSI Tunnel دقیقا چیست؟

ویژگی PMSI Tunnel (تعریف شده در RFC 6514) استفاده می شود. با IMET (نوع 3) مسیرهای EVPN تا به همسایگان EVPN بگوییم که دستگاه از کدام تکرار BUM استفاده می کند. مقادیر رایجی که در یک محیط EVPN/VXLAN خواهید دید عبارتند از 3/4 (برای تکرار چندپخشی) یا 6 (برای تکرار ورودی) (مقادیر معتبر را می توان در یک رجیستری IANA یافت).

فرمت ویژگی PMSI Tunnel در بخش 5 RFC 6514 تعریف شده است که شناسه تونل را به صورت تعریف می کند. با طول متغیر فیلد (که باعث می شود هر دو آدرس IPv4 و IPv6 مقادیر قابل قبولی داشته باشند). همچنین می گوید:

هنگامی که نوع تونل روی Inbound Replication تنظیم می شود، شناسه تونل آدرس IP نقطه پایانی تونل unicast PE محلی را حمل می کند، که باید آدرس نقطه پایانی مقصد آن PE برای تونل باشد.

یکی می تواند به کامل تبدیل شود فرشتگان روی سنجاق می رقصند حالت دهید و استدلال کنید که آیا مقدار 0.0.0.0 یک مقدار معتبر برای شناسه تونل است یا خیر، اما به نظر می‌رسد اکثر پیاده‌سازی‌ها یک رویکرد عقل سلیم دارند و می‌گویند: «اوم، احتمالاً به این معنی است آن را نادیده بگیرید(یا نمی‌توانیم از FRRouting به‌عنوان یک دستگاه کاوشگر در آزمایش‌های یکپارچه‌سازی EVPN-over-IPv4 استفاده کنیم). رد کردن IPv6 به‌عنوان یک ویژگی تونل PMSI هنگام اجرای EVPN از طریق IPv6 احتمالاً یک گام بسیار دور است، یا شاید من فقط یک دکمه geek را گم کرده‌ام، در این صورت می‌خواهم بخش‌های مربوطه را در مورد آن بشنوم. پیکربندی:

router bgp 65000
 bgp router-id 10.0.0.2
 no bgp default ipv4-unicast
 bgp bestpath as-path multipath-relax
 neighbor 2001:db8:0:1::1 remote-as 65000
 neighbor 2001:db8:0:1::1 description swe
 neighbor 2001:db8:0:1::1 update-source lo
 use-underlays-nexthop-weight
 !
 address-family ipv6 unicast
  network 2001:db8:0:2::/64
  neighbor 2001:db8:0:1::1 activate
  neighbor 2001:db8:0:1::1 next-hop-self
 exit-address-family
 !
 address-family l2vpn evpn
  neighbor 2001:db8:0:1::1 activate
  advertise-all-vni
  vni 101000
   rd 10.0.0.2:1000
   route-target import 65000:1000
   route-target export 65000:1000
  exit-vni
  advertise-svi-ip
  advertise ipv6 unicast
 exit-address-family
exit

می خواهید آن را امتحان کنید؟

در اینجا توپولوژی آزمایشگاهی است که من استفاده کردم (فقط اگر بخواهید رفتار را بازتولید یا اصلاح کنید):

---
provider: clab

addressing:
  loopback:
    ipv6: 2001:db8::/48
    ipv4: False
  p2p:
    ipv4: False
    ipv6: True

bgp.as: 65000
defaults.vxlan.use_v6_vtep: True

vlans:
  tenant.links: [ swe, swf ]

module: [ ospf, bgp, vlan, vxlan, evpn ]

nodes:
  swe.device: eos
  swf.device: frr

links: [ swe-swf ]

در نهایت، یک یادداشت به مهندسان بزرگی که FRRouting را توسعه می‌دهند: در روزهایی که دستگاه‌های شبکه رایگان برای دانلود به‌عنوان ماشین‌های مجازی یا کانتینر اجرا می‌شوند، لطفاً تست‌های قابلیت همکاری را روی ویژگی‌های جدید اجرا کنید. در برخی موارد، netlab ممکن است بتواند به کمک کند و پیکربندی های دستگاه لازم را در دستگاه های غیر FRR ایجاد کند.


Source link

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا