“BGP4+”を用いた IPv6ルーティング のお勉強メモ
1
2014.9.21
@ttsubo
~その2~
2
まず、“BGP4+”を用いたIPv6ルーティングによるIPv6プレフィックスの経路広告の様子
を確認してみる
BGP4+
Native IPv6 (OSPF v3)
Native IPv6 (OSPF v3)
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
BGP4+
CE3#show bgp ipv6 unicast BGP table version is 7, local router ID is 10.10.10.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found ! Network Next Hop Metric LocPrf Weight Path *> 2001:1:1:1::/64 2001:1:1:3::1 0 65000 9598 65001 ? *> 2001:1:1:2::/64 2001:1:1:3::1 0 65000 9598 65002 ? *> 2001:1:1:3::/64 :: 0 32768 ? *> 2001:1:3:1::/64 2001:1:1:3::1 0 65000 9598 65001 ? *> 2001:1:3:2::/64 2001:1:1:3::1 0 65000 9598 65002 ? *> 2001:1:3:3::/64 :: 0 32768 ?
3
4
IPv6プレフィックスの経路広告の様子が確認できたので、CE3からCE1への疎通確認を
行ってみる
宛先
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
CE3#ping ipv6 2001:1:1:1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:1:1:1::1, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) !CE3#traceroute ipv6 2001:1:1:1::1 Type escape sequence to abort. Tracing the route to 2001:1:1:1::1 ! 1 2001:1:1:3::1 8 msec 4 msec 20 msec 2 2001:2:2:1::1 88 msec 36 msec 72 msec 3 2001:1:1:4::1 88 msec 64 msec 104 msec 4 * * * 5 * * * ..(snip)
×Drop!!
送信元5
6
CE3からのICMP Echoが、 CE1に到達できない!!
なぜ、失敗する?
宛先
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64×Drop!!
送信元
IPv6バックボーンのコアルータでは、BGP4+によるIPv6プレフィックスが伝搬されないので、IPルーティングの経路学習を行わないためだった。
失敗した理由
7
8
じゃあ、どうやって解決するか
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
IPv6バックボーンのコアルータでも、BGP4+によるIPv6プレフィックスが伝搬されるように、BGPピアに参加する
解決策1
9図中では、RouteReflectorとのiBGPピア関係のみを記載
Native IPv6 (OSPF v3)
Native IPv6 (OSPF v3)
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
10
P1#show bgp ipv6 unicast BGP table version is 19, local router ID is 10.0.0.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found ! Network Next Hop Metric LocPrf Weight Path *>i 2001:1:1:1::/64 2001:1:2::FFFF:1 0 100 0 65001 ? *>i 2001:1:1:2::/64 2001:1:2::FFFF:4 0 100 0 65002 ? *>i 2001:1:1:3::/64 2001:1:2::FFFF:3 0 100 0 65000 65003 ? *>i 2001:1:3:1::/64 2001:1:2::FFFF:1 0 100 0 65001 ? …(snip)
IPv6バックボーンのコアルータでも、 BGP4+によるIPv6プレフィックスが 伝搬されるようになった
宛先
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
CE3#ping ipv6 2001:1:1:1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:1:1:1::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 160/190/220 ms !CE3#traceroute ipv6 2001:1:1:1::1 Type escape sequence to abort. Tracing the route to 2001:1:1:1::1 ! 1 2001:1:1:3::1 20 msec 72 msec 68 msec 2 2001:2:2:1::1 144 msec 156 msec 436 msec 3 2001:1:1:4::1 296 msec 444 msec 212 msec 4 2001:1:2:2::1 448 msec 120 msec 108 msec 5 2001:1:2:1::1 144 msec 140 msec 152 msec 6 2001:1:1:1::1 [AS 65001] 264 msec 224 msec 152 msec
送信元CE3からの疎通確認のICMP EchoがCE1に到達できるようになった
11
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
IPv6バックボーンのエッジルータにて、BGP4+によるIPv6プレフィックス情報をOSPFルーティングに変換してコアルータに配布する
解決策2
12
ipv6 router ospf 9598 redistribute connected redistribute bgp 9598 !
ipv6 router ospf 9598 redistribute bgp 9598 !
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
13
P1#show ipv6 route IPv6 Routing Table - default - 26 entries Codes: C - Connected, L - Local, S - Static, U - Per-user Static route B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea IS - ISIS summary, D - EIGRP, EX - EIGRP external, ND - ND Default NDp - ND Prefix, DCE - Destination, NDr - Redirect, l - LISP O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 OE2 2001:1:1:1::/64 [110/20] via FE80::1, FastEthernet1/0 OE2 2001:1:1:2::/64 [110/20] via FE80::1, FastEthernet1/0 OE2 2001:1:1:3::/64 [110/1] via FE80::2, FastEthernet1/1 !…(snip)
IPv6バックボーンのコアルータでも、 BGP4+経由のIPv6プレフィックスが 配布されるようになった
宛先
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
CE3#ping ipv6 2001:1:1:1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:1:1:1::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 132/188/260 ms !CE3#traceroute ipv6 2001:1:1:1::1 Type escape sequence to abort. Tracing the route to 2001:1:1:1::1 ! 1 2001:1:1:3::1 20 msec 4 msec 16 msec 2 2001:2:2:1::1 84 msec 144 msec 400 msec 3 2001:1:1:4::1 428 msec 100 msec 104 msec 4 2001:1:2:2::1 128 msec 112 msec 104 msec 5 2001:1:2:1::1 200 msec 172 msec 172 msec 6 2001:1:1:1::1 [AS 65001] 260 msec 196 msec 176 msec
送信元CE3からの疎通確認のICMP EchoがCE1に到達できるようになった
14
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
IPv6バックボーン内で、LDPv6によるMPLSパスを有効にして、コアルータでのIPv6プレフィックのルックアップ処理が不要になるようにする。(エッジルータ間データプレーンでは、マルチホップを防止する)
解決策3
15
LDPv6
ちなみに、IPv4バックボーンでは実績豊富な解決策
本来、本解決策が望ましいが、Cisco実装が LDPv6に対応していないみたい
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
16
IPv4バックボーン化
解決策4IPv4バックボーン化を前提とした6PE(IPv6 over MPLS)を構築する。IPv4バックボーン内で、LDPv4によるMPLSパスを有効にして、コアルータでのIPv6プレフィックのルックアップ処理が不要になるようにする。
LDPv4
6PE(IPv6 over MPLS)の挙動を確認してみる
17
Native IPv4 (LDPv4)
Native IPv4 (LDPv4)
BGP4+
BGP4+
CE3#show bgp ipv6 unicast BGP table version is 7, local router ID is 10.10.10.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found ! Network Next Hop Metric LocPrf Weight Path *> 2001:1:1:1::/64 2001:1:1:3::1 0 65000 9598 65001 ? *> 2001:1:1:2::/64 2001:1:1:3::1 0 65000 9598 65002 ? *> 2001:1:1:3::/64 :: 0 32768 ? *> 2001:1:3:1::/64 2001:1:1:3::1 0 65000 9598 65001 ? *> 2001:1:3:2::/64 2001:1:1:3::1 0 65000 9598 65002 ? *> 2001:1:3:3::/64 :: 0 32768 ?
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
6PE(IPv6 over MPLS)でのIPv6プレフィックス情報の経路広告
18
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
宛先
送信元
CE3#ping ipv6 2001:1:1:1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:1:1:1::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 192/239/324 ms
LDPv4
Native IPv4 (LDPv4)
Native IPv4 (LDPv4)
6PE(IPv6 over MPLS)を介したエンドエンド疎通確認
19
6PE Deep Dive
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
Native IPv4 (LDPv4)
Native IPv4 (LDPv4)
20
AS65003側のIPv6プレフィックス情報が、AS65001に経路広告される様子と、PE1エッジルータで保持している経路情報(採用されたNextHopアドレス)を確認してみた。 さらに、データプレーン転送の様子も確認してみた。
”BGP4+”を用いたIPv6プレフィックス経路広告 の振る舞い調査
BGP4+
データプレーン
21
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
Native IPv4 (LDPv4)
Native IPv4 (LDPv4)
mp-iBGP通信(ASBR3 -> PE1)RouteReflector経由
調査1
router bgp 9598 bgp log-neighbor-changes no bgp default ipv4-unicast neighbor 10.0.0.7 remote-as 9598 neighbor 10.0.0.7 update-source Loopback0 neighbor 2001:1:1:1::1 remote-as 65001 ! address-family ipv4 exit-address-family ! address-family ipv6 neighbor 10.0.0.7 activate neighbor 10.0.0.7 next-hop-self neighbor 10.0.0.7 send-label neighbor 2001:1:1:1::1 activate exit-address-family
PE1側で取得したmp-iBGP(UPDATE)通信キャプチャ
PE1#show mpls forwarding-table Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 16 21 10.0.0.7/32 2454 Fa1/1 172.16.1.2 17 25 10.0.0.6/32 0 Fa1/1 172.16.1.2 18 16 10.0.0.5/32 2432 Fa1/1 172.16.1.2 19 Pop Label 10.0.0.4/32 6161 Fa2/0 172.16.5.2 20 22 10.0.0.3/32 1220 Fa1/1 172.16.1.2 21 Pop Label 10.0.0.2/32 0 Fa1/1 172.16.1.2 22 20 172.16.3.0/30 0 Fa1/1 172.16.1.2 23 19 172.16.4.0/30 0 Fa1/1 172.16.1.2 24 23 172.16.7.0/30 0 Fa1/1 172.16.1.2 25 Pop Label 172.16.2.0/30 0 Fa1/1 172.16.1.2 26 Pop Label 172.16.6.0/30 0 Fa1/1 172.16.1.2 27 Pop Label 172.16.8.0/30 0 Fa1/1 172.16.1.2 28 No Label 2001:1:1:1::/64 570 aggregate 29 No Label 2001:1:3:1::/64 570 Fa1/0 FE80::C805:1EFF:FE50:1C
22
データプレーン転送時、NextHopに、 シングルホップで到達できるように、 LDPラベルが挿入される
データプレーン転送時、IPv6プレフィックスに対応したBGPラベルが挿入される
23
2001:1:3:1::/64
2001:1:3:2::/64
2001:1:3:3::/64
Native IPv4 (LDPv4)
Native IPv4 (LDPv4)
データプレーン通信(CE1->CE3)調査2送信元 宛先
LDPv4
PE1#show mpls forwarding-table Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 16 21 10.0.0.7/32 2454 Fa1/1 172.16.1.2 17 25 10.0.0.6/32 0 Fa1/1 172.16.1.2 18 16 10.0.0.5/32 2432 Fa1/1 172.16.1.2 19 Pop Label 10.0.0.4/32 6161 Fa2/0 172.16.5.2 20 22 10.0.0.3/32 1220 Fa1/1 172.16.1.2 21 Pop Label 10.0.0.2/32 0 Fa1/1 172.16.1.2 22 20 172.16.3.0/30 0 Fa1/1 172.16.1.2 23 19 172.16.4.0/30 0 Fa1/1 172.16.1.2 24 23 172.16.7.0/30 0 Fa1/1 172.16.1.2 25 Pop Label 172.16.2.0/30 0 Fa1/1 172.16.1.2 26 Pop Label 172.16.6.0/30 0 Fa1/1 172.16.1.2 27 Pop Label 172.16.8.0/30 0 Fa1/1 172.16.1.2 28 No Label 2001:1:1:1::/64 570 aggregate 29 No Label 2001:1:3:1::/64 570 Fa1/0 FE80::C805:1EFF:FE50:1C
PE1#show bgp ipv6 unicast labels Network Next Hop In label/Out label 2001:1:1:1::/64 2001:1:1:1::1 28/nolabel 2001:1:1:2::/64 ::FFFF:10.0.0.4 nolabel/28 2001:1:1:3::/64 ::FFFF:10.0.0.3 nolabel/28 2001:1:3:1::/64 2001:1:1:1::1 29/nolabel 2001:1:3:2::/64 ::FFFF:10.0.0.4 nolabel/29 2001:1:3:3::/64 ::FFFF:10.0.0.3 nolabel/29 !!!!!!!!
データプレーン転送時、NextHopに、 シングルホップで到達できるように、 LDPラベル[22]が挿入される
データプレーン転送時、 IPv6プレフィックスに 対応したBGPラベル[28] が挿入される
PE1側で取得したICMP通信キャプチャ
24
BGPラベル[28]が挿入されている
LDPラベル[22]が挿入されている