SlideShare a Scribd company logo
3
Most read
8
Most read
21
Most read
BGP Unnumbered で遊んでみた
1
@akira6592
⾃⼰紹介
¡ 名前︓ よこち
¡ 執筆・ブログなど
¡ Ansible実践ガイド 第3版
¡ Software Design 2019年12⽉号 Ansible 連載
¡ Software Design 2018年12⽉号 Ansible 特集
¡ 技術ブログ(てくなべ)
¡ 過去発表資料
2
@akira6592
はじめに
¡ インターフェースや BGP ネイバーの IPアドレス設定が不要な
BGP Unnumbered をご紹介します
¡ デモもあります
¡ 最近知って、試してみたレベルです
¡ Cumulus Linux 4.1 (FRR) 前提です
3
BGP Unnumbered とは︖
4
BGP Unnumbered とは
¡ アドレス指定不要で BGP ネイバーを⾃動発⾒
¡ IPv6 リンクローカルアドレスをネクストホップとした
IPv4 経路情報を広報(RFC 5549)
5
アドレス通知
・⾃動発⾒
経路情報
Dest: 172.16.X.0/24
Next Hop: fe80: ...
何が嬉しいか
¡ インターフェースのIPアドレス設定が不要
¡ IPv4 アドレスの節約
¡ ネイバーIPアドレスの指定が不要
¡ コンフィグ可変要素が少なく、
スケールさせやすい
6
interface swp1
no shutdown
!
interface swp2
no shutdown
!
router bgp 65011
bgp router-id 10.0.0.11
no bgp default ipv4-unicast
bgp bestpath as-path multipath-relax
neighbor ISL peer-group
neighbor ISL remote-as external
neighbor ISL bfd
neighbor swp1 interface peer-group ISL
neighbor swp2 interface peer-group ISL
!
address-family ipv4 unicast
redistribute connected route-map ADV_LO_SRVRS
neighbor ISL activate
exit-address-family
IPアドレス設定なし
ネイバーIP設定なし
もう少しだけ詳しく
7
ネイバー⾃動発⾒の仕組み
¡ ⾃⾝のアドレスは IPv6 の リンクローカルアドレス で⾃動割当
¡ ⾃⾝に明⽰的なアドレス設定不要
¡ ネイバー間で IPv4 は利⽤しない
¡ ネイバーのアドレスは IPv6 の ND(Neighbor Discovery)の仕組みで通知
¡ RA で IPv6 リンクローカルアドレスと MAC アドレスを通知
¡ これにより BGP OPEN メッセージを開始
¡ ネイバーのアドレス指定不要
RA で通知、発⾒
8
IPv4 経路を IPv6 経由で広報する仕組み
¡ RFC 5549 を利⽤
¡ Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop
¡ IPv6 をネクストホップとした IPv4 経路を広報
【経路情報】
Dest: 172.16.X.0/24
Next Hop: fe80: ...
9
(参考)RFC 5549 関連の OPEN メッセージ
¡ Capability Code (RFC 5492): 5 Extended Next Hop Encoding (RFC 5549)
¡ NLRI AFI: 1 (IPv4)
¡ NLRI SAFI: 1 (unicast) など
¡ Next Hop AFI: 2 (IPv6)
10
(参考)RFC 5549 関連の UPDATE メッセージ
¡ Path Attribute Type Code: 14 (MP_REACH_NLRI) (RFC4760)
¡ AFI: 1 (IPv4)
¡ SAFI: 1 (unicast) など
¡ Network Address of Next Hop: IPv6 ネクストホップ
¡ NLRI: 広報する IPv4 経路
¡ Path Attribute Type Code: 15 (MP_UNREACH_NLRI) (RFC4760)
¡ AFI: 1 (IPv4)
¡ SAFI: 1 (unicast) など
¡ Withdrawn Routes: 削除する IPv4 経路
11
デモ
12
シナリオ: 1. 事前状態
¡ 4台構成のBGP
¡ leaf02はBGP未設定
¡ sv01/02間は疎通不可
13
spine01 spine02
leaf01 leaf02
swp1 swp2
swp1 swp2 swp1 swp2
swp1 swp2
swp3 swp3
sv01 sv02
BGP未設定
BGPネイバー
確⽴済み
.254
.1
172.16.1.0/24
.254
.1
172.16.2.0/24
シナリオ: 2. BGP 設定追加
¡ leaf02 へBGP設定追加
spine01 spine02
leaf01 leaf02
swp1 swp2
swp1 swp2 swp1 swp2
swp1 swp2
swp3 swp3
sv01 sv02
BGP設定追加
BGPネイバー
確⽴済み
.254
.1
172.16.1.0/24
.254
.1
172.16.2.0/24
14
シナリオ: 3. 事後状態確認
¡ 以下を確認
¡ ネイバー状態
¡ ルーティングテーブル
¡ 疎通
spine01 spine02
leaf01 leaf02
swp1 swp2
swp1 swp2 swp1 swp2
swp1 swp2
swp3 swp3
sv01 sv02
BGPネイバー
確⽴済み
.254
.1
172.16.1.0/24
.254
.1
172.16.2.0/24
ネイバー張れた︖
ルーティングは︖
疎通可能︖
15
デモ
¡ (デモ画⾯をご覧ください)
16
まとめ
17
まとめ
¡ BGP Unnumbered は以下の仕組みで実現しています
¡ IPv6 のリンクローカルアドレスや ND による、ネイバーを⾃動発⾒
¡ RFC 5549 による、IPv6 をネクストホップとした IPv4 経路を広報
¡ これに限らず、プロトコルや機器の実装レベルでの⾃動化を活⽤すると、
設計がシンプルになり、さらなる⾃動化も進めやすそうです
18
参考1(本・サイト)
¡ Cloud Native Data Center Networking
¡ https://www.oreilly.com/library/view/cloud-native-data/9781492045595/
¡ https://cumulusnetworks.com/lp/cloud-native-data-center-networking
¡ BGP in the Data Centerを読みました (4/6) : Chapter 4 - Reimagining BGP
Configuration
¡ https://foobaron.hatenablog.com/entry/bgp-in-the-data-center-04
¡ RFC5549の技術の導⼊を実現する⽅法とメリット
¡ https://cyberagent.ai/blog/tech/658/
¡ Cumulus Linux の仮想アプライアンス「Cumulus VX」を Vagrant で構築する
¡ https://tekunabe.hatenablog.jp/entry/2019/11/17/cumulus_vx_vagrant
19
参考2(関連RFC)
¡ RFC 5549
¡ Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop
¡ IPv6 をネクストホップとした IPv4 経路の広報
¡ RFC 5492
¡ Capabilities Advertisement with BGP-4
¡ Capability Code など
¡ RFC 4760
¡ Multiprotocol Extensions for BGP-4
¡ MP_UNREACH_NLRI、MP_REACH_NLRI パスアトリビュートなど
20
参考3(各社実装)
¡ Cumulus
¡ BGP unnumbered overview
¡ https://cumulusnetworks.com/blog/bgp-unnumbered-overview/
¡ Arista
¡ BGP IPv6 Link Local Peers Discovery -BGP Unnumberedに対するAristaの解-
¡ https://eos.arista.com/ja/bgp-ipv6-link-local-peers-discovery/
¡ Juniper
¡ Understanding Redistribution of IPv4 Routes with IPv6 Next Hop into BGP
¡ https://www.juniper.net/documentation/en_US/junos/topics/topic-map/multiprotocol-bgp.html#id-understanding-
redistribution-of-ipv4-routes-with-ipv6-next-hop-into-bgp
¡ Cisco
¡ NX-OS Release 6.2(8) 以降でRFC 5549 対応
¡ https://www.cisco.com/c/ja_jp/td/docs/sw/dcswt/nex7000swt/cg/049/l3-cli-nxos/l3-advbgp.html
21

More Related Content

PDF
IPv4/IPv6 移行・共存技術の動向
PDF
大規模DCのネットワークデザイン
PDF
大規模サービスを支えるネットワークインフラの全貌
PDF
"SRv6の現状と展望" ENOG53@上越
PDF
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
PDF
AS45679 on FreeBSD
PDF
SRv6 study
PDF
TCAMのしくみ
IPv4/IPv6 移行・共存技術の動向
大規模DCのネットワークデザイン
大規模サービスを支えるネットワークインフラの全貌
"SRv6の現状と展望" ENOG53@上越
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
AS45679 on FreeBSD
SRv6 study
TCAMのしくみ

What's hot (20)

PDF
Multi Chassis LAG for Cloud builders
PDF
IIJmio meeting 31 音声通信の世界
PPTX
フロー技術によるネットワーク管理
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
インターネットの仕組みとISPの構造
PDF
ネットワーク構築訓練 入門
PPTX
コンテナネットワーキング(CNI)最前線
PDF
NETCONFとYANGの話
PDF
CXL_説明_公開用.pdf
PDF
閉域網接続の技術入門
PDF
Scapyで作る・解析するパケット
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
PDF
ロードバランスへの長い道
PDF
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PPTX
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
PPTX
3GPP TR38.801-e00まとめ
PDF
Ethernetの受信処理
PPTX
Amazon EKS によるスマホゲームのバックエンド運用事例
PDF
ISPの向こう側、どうなってますか
PPTX
ConfD で Linux にNetconfを喋らせてみた
Multi Chassis LAG for Cloud builders
IIJmio meeting 31 音声通信の世界
フロー技術によるネットワーク管理
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
インターネットの仕組みとISPの構造
ネットワーク構築訓練 入門
コンテナネットワーキング(CNI)最前線
NETCONFとYANGの話
CXL_説明_公開用.pdf
閉域網接続の技術入門
Scapyで作る・解析するパケット
コンテナ未経験新人が学ぶコンテナ技術入門
ロードバランスへの長い道
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
3GPP TR38.801-e00まとめ
Ethernetの受信処理
Amazon EKS によるスマホゲームのバックエンド運用事例
ISPの向こう側、どうなってますか
ConfD で Linux にNetconfを喋らせてみた
Ad

Similar to BGP Unnumbered で遊んでみた (20)

PDF
自宅ラック勉強会#3
PDF
Technical report for IPv6 Routing w/ bgp4+
PDF
IPv6 を始めてみた
PDF
Internet Week 2018 知っておくべきIPv6とセキュリティの話
PDF
IPv6冗長で差をつけよう 2011年夏の思い出作り HSRP編
PDF
I pv6 のはなし
PDF
I pv6 research_basical
PDF
192.0.0.4 on android
PDF
Apstra AOS 3.2 機能一覧
PDF
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
PDF
Technical report for IPv6 Routing w/ bgp4+ (part2)
KEY
MAP 実装してみた
PPTX
545人のインフラを支えたNOCチーム!
PDF
Layer 4 Load Balancer (NAT, IP Tunnelling, DR)
PDF
IPv6冗長で差をつけよう 2011年夏の思い出作り VRRP編
PDF
結局IPv6ってどうなん?(序)
PPT
IPv6 Update
PPTX
自宅ラック勉強会資料
PDF
自宅ラック勉強会Vol4 #routerboard
PDF
これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
自宅ラック勉強会#3
Technical report for IPv6 Routing w/ bgp4+
IPv6 を始めてみた
Internet Week 2018 知っておくべきIPv6とセキュリティの話
IPv6冗長で差をつけよう 2011年夏の思い出作り HSRP編
I pv6 のはなし
I pv6 research_basical
192.0.0.4 on android
Apstra AOS 3.2 機能一覧
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
Technical report for IPv6 Routing w/ bgp4+ (part2)
MAP 実装してみた
545人のインフラを支えたNOCチーム!
Layer 4 Load Balancer (NAT, IP Tunnelling, DR)
IPv6冗長で差をつけよう 2011年夏の思い出作り VRRP編
結局IPv6ってどうなん?(序)
IPv6 Update
自宅ラック勉強会資料
自宅ラック勉強会Vol4 #routerboard
これからのアプリ開発はIPv6対応で行こう!(2014/09/20 OSC Hiroshima版)
Ad

More from akira6592 (20)

PDF
新人研修資料 向き合うエンジニア
PDF
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
PDF
Ansible 実践ガイド第3版 ネットワーク担当としてのふりかえり #インフラエンジニアBooks
PDF
Ansible でお世話になっている機能と拡張
PDF
Ansible 2.10 と Collection
PDF
自動化の下ごしらえ
PDF
向き合うエンジニア 2020年度版
PDF
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
PDF
はじめてAnsibleのバグ修正に協力してみた
PDF
CML-Personal (VIRL2)のインストールと基本機能
PDF
自動化ツール Ansible に触れてみよう(技術インターン)
PDF
技術ブログを書こう
PDF
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
PDF
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
PDF
show コマンド結果をパースする方法あれこれ #npstudy
PDF
はじめた自動化をどう広めるか 書籍「Fearless Change」からのヒント
PPTX
はじめどころを探る自動化アセスメント(JANOG44 ここからはじめよう、運用自動化)
PPTX
向き合うエンジニア
PDF
Ansible 2.8 アップデート情報 -機能追加と注意点-
PDF
ネットワークコンフィグ分析ツール Batfish との付き合い方
新人研修資料 向き合うエンジニア
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
Ansible 実践ガイド第3版 ネットワーク担当としてのふりかえり #インフラエンジニアBooks
Ansible でお世話になっている機能と拡張
Ansible 2.10 と Collection
自動化の下ごしらえ
向き合うエンジニア 2020年度版
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
はじめてAnsibleのバグ修正に協力してみた
CML-Personal (VIRL2)のインストールと基本機能
自動化ツール Ansible に触れてみよう(技術インターン)
技術ブログを書こう
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
show コマンド結果をパースする方法あれこれ #npstudy
はじめた自動化をどう広めるか 書籍「Fearless Change」からのヒント
はじめどころを探る自動化アセスメント(JANOG44 ここからはじめよう、運用自動化)
向き合うエンジニア
Ansible 2.8 アップデート情報 -機能追加と注意点-
ネットワークコンフィグ分析ツール Batfish との付き合い方

BGP Unnumbered で遊んでみた

  • 2. ⾃⼰紹介 ¡ 名前︓ よこち ¡ 執筆・ブログなど ¡ Ansible実践ガイド 第3版 ¡ Software Design 2019年12⽉号 Ansible 連載 ¡ Software Design 2018年12⽉号 Ansible 特集 ¡ 技術ブログ(てくなべ) ¡ 過去発表資料 2 @akira6592
  • 3. はじめに ¡ インターフェースや BGP ネイバーの IPアドレス設定が不要な BGP Unnumbered をご紹介します ¡ デモもあります ¡ 最近知って、試してみたレベルです ¡ Cumulus Linux 4.1 (FRR) 前提です 3
  • 5. BGP Unnumbered とは ¡ アドレス指定不要で BGP ネイバーを⾃動発⾒ ¡ IPv6 リンクローカルアドレスをネクストホップとした IPv4 経路情報を広報(RFC 5549) 5 アドレス通知 ・⾃動発⾒ 経路情報 Dest: 172.16.X.0/24 Next Hop: fe80: ...
  • 6. 何が嬉しいか ¡ インターフェースのIPアドレス設定が不要 ¡ IPv4 アドレスの節約 ¡ ネイバーIPアドレスの指定が不要 ¡ コンフィグ可変要素が少なく、 スケールさせやすい 6 interface swp1 no shutdown ! interface swp2 no shutdown ! router bgp 65011 bgp router-id 10.0.0.11 no bgp default ipv4-unicast bgp bestpath as-path multipath-relax neighbor ISL peer-group neighbor ISL remote-as external neighbor ISL bfd neighbor swp1 interface peer-group ISL neighbor swp2 interface peer-group ISL ! address-family ipv4 unicast redistribute connected route-map ADV_LO_SRVRS neighbor ISL activate exit-address-family IPアドレス設定なし ネイバーIP設定なし
  • 8. ネイバー⾃動発⾒の仕組み ¡ ⾃⾝のアドレスは IPv6 の リンクローカルアドレス で⾃動割当 ¡ ⾃⾝に明⽰的なアドレス設定不要 ¡ ネイバー間で IPv4 は利⽤しない ¡ ネイバーのアドレスは IPv6 の ND(Neighbor Discovery)の仕組みで通知 ¡ RA で IPv6 リンクローカルアドレスと MAC アドレスを通知 ¡ これにより BGP OPEN メッセージを開始 ¡ ネイバーのアドレス指定不要 RA で通知、発⾒ 8
  • 9. IPv4 経路を IPv6 経由で広報する仕組み ¡ RFC 5549 を利⽤ ¡ Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop ¡ IPv6 をネクストホップとした IPv4 経路を広報 【経路情報】 Dest: 172.16.X.0/24 Next Hop: fe80: ... 9
  • 10. (参考)RFC 5549 関連の OPEN メッセージ ¡ Capability Code (RFC 5492): 5 Extended Next Hop Encoding (RFC 5549) ¡ NLRI AFI: 1 (IPv4) ¡ NLRI SAFI: 1 (unicast) など ¡ Next Hop AFI: 2 (IPv6) 10
  • 11. (参考)RFC 5549 関連の UPDATE メッセージ ¡ Path Attribute Type Code: 14 (MP_REACH_NLRI) (RFC4760) ¡ AFI: 1 (IPv4) ¡ SAFI: 1 (unicast) など ¡ Network Address of Next Hop: IPv6 ネクストホップ ¡ NLRI: 広報する IPv4 経路 ¡ Path Attribute Type Code: 15 (MP_UNREACH_NLRI) (RFC4760) ¡ AFI: 1 (IPv4) ¡ SAFI: 1 (unicast) など ¡ Withdrawn Routes: 削除する IPv4 経路 11
  • 13. シナリオ: 1. 事前状態 ¡ 4台構成のBGP ¡ leaf02はBGP未設定 ¡ sv01/02間は疎通不可 13 spine01 spine02 leaf01 leaf02 swp1 swp2 swp1 swp2 swp1 swp2 swp1 swp2 swp3 swp3 sv01 sv02 BGP未設定 BGPネイバー 確⽴済み .254 .1 172.16.1.0/24 .254 .1 172.16.2.0/24
  • 14. シナリオ: 2. BGP 設定追加 ¡ leaf02 へBGP設定追加 spine01 spine02 leaf01 leaf02 swp1 swp2 swp1 swp2 swp1 swp2 swp1 swp2 swp3 swp3 sv01 sv02 BGP設定追加 BGPネイバー 確⽴済み .254 .1 172.16.1.0/24 .254 .1 172.16.2.0/24 14
  • 15. シナリオ: 3. 事後状態確認 ¡ 以下を確認 ¡ ネイバー状態 ¡ ルーティングテーブル ¡ 疎通 spine01 spine02 leaf01 leaf02 swp1 swp2 swp1 swp2 swp1 swp2 swp1 swp2 swp3 swp3 sv01 sv02 BGPネイバー 確⽴済み .254 .1 172.16.1.0/24 .254 .1 172.16.2.0/24 ネイバー張れた︖ ルーティングは︖ 疎通可能︖ 15
  • 18. まとめ ¡ BGP Unnumbered は以下の仕組みで実現しています ¡ IPv6 のリンクローカルアドレスや ND による、ネイバーを⾃動発⾒ ¡ RFC 5549 による、IPv6 をネクストホップとした IPv4 経路を広報 ¡ これに限らず、プロトコルや機器の実装レベルでの⾃動化を活⽤すると、 設計がシンプルになり、さらなる⾃動化も進めやすそうです 18
  • 19. 参考1(本・サイト) ¡ Cloud Native Data Center Networking ¡ https://www.oreilly.com/library/view/cloud-native-data/9781492045595/ ¡ https://cumulusnetworks.com/lp/cloud-native-data-center-networking ¡ BGP in the Data Centerを読みました (4/6) : Chapter 4 - Reimagining BGP Configuration ¡ https://foobaron.hatenablog.com/entry/bgp-in-the-data-center-04 ¡ RFC5549の技術の導⼊を実現する⽅法とメリット ¡ https://cyberagent.ai/blog/tech/658/ ¡ Cumulus Linux の仮想アプライアンス「Cumulus VX」を Vagrant で構築する ¡ https://tekunabe.hatenablog.jp/entry/2019/11/17/cumulus_vx_vagrant 19
  • 20. 参考2(関連RFC) ¡ RFC 5549 ¡ Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop ¡ IPv6 をネクストホップとした IPv4 経路の広報 ¡ RFC 5492 ¡ Capabilities Advertisement with BGP-4 ¡ Capability Code など ¡ RFC 4760 ¡ Multiprotocol Extensions for BGP-4 ¡ MP_UNREACH_NLRI、MP_REACH_NLRI パスアトリビュートなど 20
  • 21. 参考3(各社実装) ¡ Cumulus ¡ BGP unnumbered overview ¡ https://cumulusnetworks.com/blog/bgp-unnumbered-overview/ ¡ Arista ¡ BGP IPv6 Link Local Peers Discovery -BGP Unnumberedに対するAristaの解- ¡ https://eos.arista.com/ja/bgp-ipv6-link-local-peers-discovery/ ¡ Juniper ¡ Understanding Redistribution of IPv4 Routes with IPv6 Next Hop into BGP ¡ https://www.juniper.net/documentation/en_US/junos/topics/topic-map/multiprotocol-bgp.html#id-understanding- redistribution-of-ipv4-routes-with-ipv6-next-hop-into-bgp ¡ Cisco ¡ NX-OS Release 6.2(8) 以降でRFC 5549 対応 ¡ https://www.cisco.com/c/ja_jp/td/docs/sw/dcswt/nex7000swt/cg/049/l3-cli-nxos/l3-advbgp.html 21