目次
概要
IPv4アドレスを利用して確立しているBGPネイバー上で、IPv6プレフィクスを交換できるように設定します。address-familyによって、マルチプロトコルを扱えるように設定できます。
ネットワーク構成
設定条件
- R1-R2間でEBGPネイバーを確立します。R1はAS65001、R2はAS65002です。BGPネイバーはIPv4アドレスを利用して確立してください。
- BGPで2001:1:1:1::/64と2001:2:2:2::/64のプレフィックスを交換して、これらのプレフィックス間でIPv6の通信ができるようにしてください。
初期設定
- ホスト名
- IPv4アドレス
- IPv6アドレス
※GNS3プロジェクトダウンロード
//www.n-study.com/gns3/IPv4_BGP_exhcange_IPv6_prefix_init.zip
設定と確認
【Step1:BGPネイバーの設定】
R1-R2間でEBGPネイバーの設定を行います。条件より、ネイバーのIPv4アドレスで設定します。また、IPv4プレフィクスは扱わないので、IPv4プレフィクスの交換を停止するようにします。そして、IPv6プレフィクスを交換するために、address-family ipv6 unicast内でネイバーをActivateします。
R1
router bgp 65001 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 192.168.12.2 remote-as 65002 ! address-family ipv6 neighbor 192.168.12.2 activate exit-address-family
R2
router bgp 65002 router bgp 65002 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 192.168.12.1 remote-as 65001 ! address-family ipv6 neighbor 192.168.12.1 activate exit-address-family
【Step2:BGPネイバーの確認】
R1-R2間のBGPネイバーを確認します。R1-R2間はIPv4プレフィクスではなくIPv6プレフィクスだけを交換するように設定しています。そのため、BGPネイバーの確認には、show bgp ipv6 unicast summaryコマンドを利用します。
R1
R1#show bgp ipv6 unicast summary BGP router identifier 192.168.12.1, local AS number 65001 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.12.2 4 65002 4 4 1 0 0 00:01:27 0
【Step3:BGPルートの生成】
R1、R2でLoopback0のプレフィックスをBGPルートとして設定します。そのために、address-family ipv6 unicast内でnetworkコマンドを利用します。
R1
router bgp 65001 address-family ipv6 network 2001:1:1:1::/64 exit-address-family
R2
router bgp 65002 address-family ipv6 network 2001:2:2:2::/64 exit-address-family
【Step4:BGPテーブルの確認】
R1、R2のBGPテーブルにStep3で生成したBGPルートとお互いでアドバタイズしたBGPルートが登録されているかどうかを確認します。
R1
R1#show bgp ipv6 unicast BGP table version is 2, local router ID is 192.168.12.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 2001:1:1:1::/64 :: 0 32768 i R1#show bgp ipv6 unicast neighbors 192.168.12.2 advertised-routes BGP table version is 2, local router ID is 192.168.12.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 2001:1:1:1::/64 :: 0 32768 i Total number of prefixes 1
R2
R2#show bgp ipv6 unicast BGP table version is 2, local router ID is 192.168.12.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 2001:2:2:2::/64 :: 0 32768 i R2#show bgp ipv6 unicast neighbors 192.168.12.1 advertised-routes BGP table version is 2, local router ID is 192.168.12.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 2001:2:2:2::/64 :: 0 32768 i Total number of prefixes 1
BGPテーブルには、networkコマンドで自身で生成したBGPルートしかありません。しかし、R1とR2でshow bgp ipv6 unicast neighbor advertised-routesを見ると、BGPルート自体はアドバタイズしているようです。
【Step5:BGPルートアドバタイズの確認】
R1、R2がBGPルートをアドバタイズしているかどうかをdebugコマンドで詳しく確認します。R1でdebug bgp ipv6 unicast updatesコマンドによって、BGPのUpdateパケットのdebugを有効にします。その状態で、clear bgp ipv6 unicast * inコマンドによってR2に対してBGPルートの再送を要求します。
R1
R1#debug bgp ipv6 unicast updates BGP updates debugging is on for address family: IPv6 Unicast R1#clear bgp ipv6 unicast * in R1# *Mar 1 00:19:49.747: BGP: 192.168.12.2 Advertised Nexthop ::FFFF:192.168.12.2: Non-local or Nexthop and peer Not on same interface *Mar 1 00:19:49.751: BGP(1): 192.168.12.2 rcv UPDATE w/ attr: nexthop ::FFFF:192.168.12.2 (FE80::2), origin i, metric 0, originator 0.0.0.0, path 65002, community , extended community *Mar 1 00:19:49.759: BGP(1): 192.168.12.2 rcv UPDATE about 2001:2:2:2::/64 -- DENIED due to: non-connected MP_REACH NEXTHOP;
debugコマンドの出力から、R1はEBGPネイバーであるR2から受信したIPv6 BGPプレフィクスのNEXT_HOPは「::FFFF:192.168.12.2」というIPv4射影アドレスとなっていることがわかります。EBGPネイバーは直接接続であることを前提としていますが、NEXT_HOPのIPv6アドレスがこのようなIPv4射影アドレスとなっていると、直接接続であるとはみなすことができません。
IPv4射影アドレスだけではなく、リンクローカルアドレスもNEXT_HOPアトリビュートになっています。
【Step6:ebgp-multihopの設定】
R1-R2間のEBGPネイバーが直接接続とみなすことができないので、neighbor ebgp-multihopコマンドの設定を行います。
R1
router bgp 65001 neighbor 192.168.12.2 ebgp-multihop 255
R2
router bgp 65002 neighbor 192.168.12.1 ebgp-multihop 255
【Step7:BGPテーブルの確認】
neighbor ebgp-multihopコマンドを設定したあとに、再度、R1からR2に対してBGPプレフィクスの再送を要求し、BGPテーブルを確認します。
R1
R1#clear bgp ipv6 unicast * in R1# *Mar 1 00:07:40.179: BGP(1): 192.168.12.2 rcvd UPDATE w/ attr: nexthop ::FFFF:192.168.12.2 (FE80::2), origin i, metric 0, path 65002 *Mar 1 00:07:40.183: BGP(1): 192.168.12.2 rcvd 2001:2:2:2::/64 *Mar 1 00:07:40.195: BGP(1): Revise route installing 2001:2:2:2::/64 -> ::FFFF:192.168.12.2 (FE80::2) to main IPv6 table R1#show bgp ipv6 unicast BGP table version is 3, local router ID is 192.168.12.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 2001:1:1:1::/64 :: 0 32768 i *> 2001:2:2:2::/64 ::FFFF:192.168.12.2 0 0 65002 i R1#show ipv6 route bgp IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 B 2001:2:2:2::/64 [20/0] via FE80::2, FastEthernet0/0
neighbor ebgp-multihopコマンドを設定すると、IPv6 BGPプレフィックスを受信してベストパスとなり、ルーティングテーブルに登録されていることがわかります。なお、IPv4射影アドレスには到達性がありません。ルーティングテーブルには、リンクローカルアドレスがNEXT_HOPとして登録されています。
【Step8:通信確認】
2001:1:1:1::/64と2001:2:2:2::/64間でIPv6の通信ができることを確認します。
R1
R1#ping 2001:2:2:2::2 source loopback 0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:2:2:2::2, timeout is 2 seconds: Packet sent with a source address of 2001:1:1:1::1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/28/72 ms
BGPの仕組み
- BGPの概要 ~AS間でルート情報を交換~
- BGPの動作
- BGPの基本設定と確認コマンド
- BGPピアグループ(Peer Group) ~ネイバーの設定をまとめよう~
- BGPネイバーの状態
- BGPコンフェデレーションの設定
- BGPコンフェデレーションの設定例
- BGPネイバー認証
- BGP Well Known Mandatory アトリビュート -ORIGIN/AS_PATH/NEXT_HOP-
- 図解!BGPベストパス選択アルゴリズム
- BGP 基本的な設定についての演習[Cisco]
- BGPの基本的な設定についての演習 ~トラブルシュート~
- BGP KEEPALIVEタイマ/ホールドタイムの設定
- BGPルート 最小送信間隔の設定
- BGPルートダンプニング
- マルチホーム – インターネット接続の冗長化 –
- マルチホームAS BGPルートフィルタのポイント
- マルチホームAS ベストパス選択のポイント
- マルチホームAS IGPとBGPの連携のポイント
- マルチホームAS BGPの設定例
- IP-VPNでのBGPの利用 設定例
- BGPルートフィルタの種類
- BGPルートフィルタ -ディストリビュートリスト-
- BGPルートフィルタ -ディストリビュートリスト設定例-
- BGPルートフィルタ -プレフィクスリスト-
- BGPルートフィルタ -プレフィクスリスト設定例-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)設定例-
- BGPルートフィルタ -ルートマップ(route-map)-
- BGPルートフィルタ -ルートマップ(route-map)設定例-
- BGP neighbor allowas-inコマンド
- BGP neighbor as-overrideコマンド
- BGPルート RIB Failure
- BGPルート アドミニストレイティブディスタンスの制御
- BGPルートの負荷分散
- BGPルート 条件付き生成
- BGPルート 条件付きアドバタイズ
- BGP ルート集約 自動集約
- BGPルート集約 networkコマンドによる集約
- BGPルート集約 networkコマンドによる集約 設定例
- BGP ルート集約 aggregate-addressコマンドによる集約
- aggregate-addressコマンドのオプション summary-only
- aggregate-addressコマンドのオプション attribute-map
- aggregate-addressコマンドのオプション as-set
- aggregate-addressコマンドのオプション advertise-map
- aggregate-addressコマンド as-set/attribute-map/advertise-map 設定例
- BGP選択型集約の概要
- BGP選択型集約 suppress-map
- BGP選択型集約 unsuppress-map
- BGP 選択型集約 suppress-map/unsuppress-map 設定例
- BGP local-as ~ネイバーに他のASのように見せる~
- BGP neighbor remove-private-ASコマンド
- bgp fast external-fallover
- BGP プレフィクス数の制限
- BGP COMMUNITYアトリビュートの使い方
- BGP Well-known COMMUNITYのルートフィルタ設定例
- BGP プライベートCOMMUNITYによるルート制御の設定例
- [演習]BGP応用 Part1:BGP基本設定
- [演習]BGP応用 Part2:ルート集約
- [演習]BGP応用 Part3:ポリシーベースルーティング
- [演習]BGP応用 Part4:トラブルシューティング
- BGP 設定ミスの切り分けと修正 Part1
- BGP 設定ミスの切り分けと修正 Part2
- BGP 設定ミスの切り分けと修正 Part3
- BGP 設定ミスの切り分けと修正 Part4
- BGP 設定ミスの切り分けと修正 Part5
- BGP 設定ミスの切り分けと修正 Part6
- BGP 設定ミスの切り分けと修正 Part7
- IPv6 BGPの設定例 Part1
- IPv6 BGPの設定例 Part2
- 2021年10月4日 Facebookに何が起こったか?
- IPv4 BGPネイバーでのIPv6プレフィックスの交換