Next Hop • Route Entry & Next Hop データ構造 • Next Hop Group on SONiC • SONiC における Next Hop Group (Multipath Route) • ASIC_DB エントリ • CLIで設定した場合の各種 DB の変化(CONFIG_DB, APPL_DB, ASIC_DB) • その他:参考情報 • (参考)ASIC_DB エントリの変化(詳細)(CLI で設定した場合) • (参考)SWSS / SAI の動作ログ(swss.rec , sairedis.rec)(CLI で設定した場合) • (参考)FRR での Next Hop Group 確認方法 • (参考)direct attached network に関する nexthop_id • (参考)ASIC エントリ確認方法 • 参考文献 Next Hop Group on SONiC | Twitter: @ebiken | 2022/11/23 目次 Wedge100BF-32X (Tofino) SONiC-OS-master.143513-dirty-20220903.195418
この場合の prefix は Longest Prefix Match に利用されマスク(len)を含む • gw (address) により dev が決定する場合等、dev を指定しなくてもOS等により解 決される場合もあり • gw の MAC アドレスは別途解決され neightbor table に保存される(Linuxの場合) • 実装により様々な保持の仕方(データ構造)が存在する Next Hop Group on SONiC | Twitter: @ebiken | 2022/11/23 Route Entry & Next Hop A B C D route prefix: D dev : ens0 gw : B ens0 route ens1
Route Entry & Next Hop データ構造 route prefix dev gateway route prefix nexthop nexthop dev gateway ip route add <prefix> via <gw> [dev <device>] ip route add <prefix> nexthop via <gw> [dev <device>] route group nexthop nexthop dev gateway nexthop dev gateway nexthop dev gateway nexthop group nexthop[N] ① route entry に nexthop 情報 を内包(Linux 5.2 以前) ② route entry と nexthop object の分離(Linux 5.3 以降) ※ Linux 5.2 は nexthop サポートに向け たリファクタリングが含まれる。但し、 fib_info には fib_nh のみ含まれ nexthop はまだ含まれない Linux コマンド
(参考)ASIC エントリ確認方法 [email protected]:~$ docker exec -it syncd bash [email protected]:/# [email protected]:/# /opt/bfn/install/bin/bfshell ******************************************** * WARNING: Authorised Access Only * ******************************************** bfshell> syncd / sonic host から ASIC 固有の debug コマンドを利用 ※ 具体的な利用方法解説には各ASICベンダとのNDAが必要なため省略 [email protected]:~$ bcmsh Press Enter to show prompt. Press Ctrl+C to exit. NOTICE: Only one bcmsh or bcmcmd can connect to the shell at same time. drivshell>
Plumbers Conf 2019: David Ahern @Cumulus • https://lpc.events/event/4/contributions/434/attachments/251/436/nexthop-objects-talk.pdf • https://www.youtube.com/watch?v=HIqvUiwDHGk • lwn.net [net: Improve route scalability via support for nexthop objects] • https://lwn.net/Articles/763950/ • FRR: Docs: • Nexthop Groups: https://docs.frrouting.org/en/latest/nexthop_groups.html • Multiple nexthop static route: https://docs.frrouting.org/en/latest/static.html#multiple- nexthop-static-route • RFC5549 Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop • https://datatracker.ietf.org/doc/rfc5549/ • RFC8950 Advertising IPv4 Network Layer Reachability Information (NLRI) with an IPv6 Next Hop • https://datatracker.ietf.org/doc/rfc8950/ Next Hop Group on SONiC | Twitter: @ebiken | 2022/11/23 参考文献