JANOG 53 NETCON 問題解説 Level1-9
JANOG 53 にスタッフ(NETCON委員)として参加させていただきました。
作成した問題について、回答と解説を記載します。
Level1-9 BGP route-reflector問題
技術要素
・BGP
構成解説
・CSR1000v x 4
問題文
R3が 4.4.4.4/32 を学習していません。
R3に 4.4.4.4/32 の経路を学習させて、以下の表示のように疎通が取れるようにして下さい。
R3>show ip bgp | include 4.4.4.4
*>i 4.4.4.4/32 1.1.1.1 0 100 0 200 i
R3>ping 4.4.4.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/13/62 ms
R3>traceroute 4.4.4.4
Type escape sequence to abort.
Tracing the route to 4.4.4.4
VRF info: (vrf in name/id, vrf out name/id)
1 192.168.23.2 44 msec 0 msec 0 msec
2 192.168.12.1 1 msec 1 msec 1 msec
3 123.0.0.2 8 msec * 2 msec
制約 ・R4にはログインできません
・R2のみ設定を変更できます
問題解説 R3で show ip route 4.4.4.4 / show ip bgp を実行してみます。
R3>sh ip route 4.4.4.4 % Network not in table
R3>sh ip bgp BGP table version is 3, local router ID is 3.3.3.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, t secondary path, L long-lived-stale, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path r>i 2.2.2.2/32 2.2.2.2 0 100 0 i *> 3.3.3.3/32 0.0.0.0 0 32768 |
R3は 4.4.4.4/32 をBGPで学習していません。R2のBGPテーブルも確認してみます。
R2#sh ip bgp BGP table version is 5, local router ID is 2.2.2.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, t secondary path, L long-lived-stale, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path r>i 1.1.1.1/32 1.1.1.1 0 100 0 i *> 2.2.2.2/32 0.0.0.0 0 32768 i r>i 3.3.3.3/32 3.3.3.3 0 100 0 i *>i 4.4.4.4/32 1.1.1.1 0 100 0 200 i
R2#sh ip route 4.4.4.4 Routing entry for 4.4.4.4/32 Known via "bgp 100", distance 200, metric 0 Tag 200, type internal Last update from 1.1.1.1 00:06:43 ago Routing Descriptor Blocks: * 1.1.1.1, from 1.1.1.1, 00:06:43 ago opaque_ptr 0x7F3D6DFFE7F0 Route metric is 0, traffic share count is 1 AS Hops 1 Route tag 200 MPLS label: none |
R2は 4.4.4.4/32 をBGPで学習しており、ルーティングテーブルにも載っています。 R2がR3に 4.4.4.4/32 をアドバタイズしているのか、確認します。
R2#sh ip bgp summary BGP router identifier 2.2.2.2, local AS number 100 BGP table version is 5, main routing table version 5 4 network entries using 992 bytes of memory 4 path entries using 544 bytes of memory 3/3 BGP path/bestpath attribute entries using 864 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 2424 total bytes of memory BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs 4 networks peaked at 08:38:28 Dec 19 2023 UTC (00:01:46.423 ago)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 100 8 6 5 0 0 00:02:37 2 3.3.3.3 4 100 6 6 5 0 0 00:02:40 1
R2#sh ip bgp nei 3.3.3.3 advertised-routes BGP table version is 5, local router ID is 2.2.2.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, t secondary path, L long-lived-stale, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *> 2.2.2.2/32 0.0.0.0 0 32768 i
Total number of prefixes 1 |
R2は 2.2.2.2/32 しかアドバタイズしていません。
R1とR3のBGPネイバーも確認します。
R1>sh ip bgp su (略)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 100 7 8 4 0 0 00:02:57 1 123.0.0.2 4 200 8 8 4 0 0 00:03:47 1
R3>sh ip bgp su (略)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 100 7 7 3 0 0 00:03:09 1 |
R1とR3のiBGPネイバーが構成されておらず、フルメッシュになっていません。
R2はR1/R3とiBGPネイバーを構成していますが、BGPスプリットホライズンにより
iBGPピアから受信したルートを別のiBGPピアにアドバタイズしないため、
R3は 2.2.2.2/32 しか学習できていません。
フルメッシュ構成にするにはR1とR3でiBGPネイバーを構成することになりますが、
今回の問題では設定変更できるのはR2だけのため、R1とR3の設定変更が出来ません。
今回の場合、R2をルートリフレクタにして、R1/R3をルートリフレクタクライアントにすることで
R2が受信したルートをリフレクトするため、R3で 4.4.4.4/32 の経路を学習することが出来ます。
(正確には、今回の問題はR2がR1から学習した 4.4.4.4/32 をR3にアドバタイズすれば良いため、
R1かR3のどちらに対して route-reflector-client を設定するだけでも問題は解決できます)
ルートリフレクタ
R2 router bgp 100 neighbor 1.1.1.1 route-reflector-client neighbor 3.3.3.3 route-reflector-client
R2#clear ip bgp * soft |
再度R3のBGPネイバーの状態とBGPテーブル・ルーティングテーブルを確認します。
R3>sh ip bgp su (略)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 100 10 5 7 0 0 00:00:01 3
R3>sh ip bgp (略)
Network Next Hop Metric LocPrf Weight Path r>i 1.1.1.1/32 1.1.1.1 0 100 0 i r>i 2.2.2.2/32 2.2.2.2 0 100 0 i *> 3.3.3.3/32 0.0.0.0 0 32768 i *>i 4.4.4.4/32 1.1.1.1 0 100 0 200 i
R3>sh ip route bgp | be Gate Gateway of last resort is not set
4.0.0.0/32 is subnetted, 1 subnets B 4.4.4.4 [200/0] via 1.1.1.1, 00:00:28 |
R3が 4.4.4.4/32 をBGPで学習できたので、疎通確認してみます。
R3>ping 4.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/14/66 ms
R3>trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 VRF info: (vrf in name/id, vrf out name/id) 1 192.168.23.2 43 msec 1 msec 1 msec 2 192.168.12.1 0 msec 1 msec 0 msec 3 123.0.0.2 9 msec * 2 msec |
疎通が取れるようになりました。
正解例
以下のようにR2に設定を追加します。
R2 router bgp 100 neighbor 1.1.1.1 route-reflector-client neighbor 3.3.3.3 route-reflector-client |
※今回の問題はR1かR3をルートリフレクタクライアントに指定するだけでも解決できます
R2 router bgp 100 neighbor 1.1.1.1 route-reflector-client |
または
R2 router bgp 100 neighbor 3.3.3.3 route-reflector-client |
初期config
R1
hostname R1 no ip domain lookup
interface Loopback0 ip address 1.1.1.1 255.255.255.255
interface GigabitEthernet3 ip address 192.168.12.1 255.255.255.0 no shut
interface GigabitEthernet4 ip address 123.0.0.1 255.255.255.252 no shut
router ospf 1 router-id 1.1.1.1 network 1.1.1.1 0.0.0.0 area 0 network 192.168.12.0 0.0.0.255 area 0
router bgp 100 bgp router-id 1.1.1.1 network 1.1.1.1 mask 255.255.255.255 neighbor 2.2.2.2 remote-as 100 neighbor 2.2.2.2 update-source Loopback0 neighbor 2.2.2.2 next-hop-self neighbor 123.0.0.2 remote-as 200 |
R2
hostname R2 no ip domain lookup
interface Loopback0 ip address 2.2.2.2 255.255.255.255
interface GigabitEthernet3 ip address 192.168.12.2 255.255.255.0 no shut
interface GigabitEthernet4 ip address 192.168.23.2 255.255.255.0 no shut
router ospf 1 router-id 2.2.2.2 network 2.2.2.2 0.0.0.0 area 0 network 192.168.12.0 0.0.0.255 area 0 network 192.168.23.0 0.0.0.255 area 0
router bgp 100 bgp router-id 2.2.2.2 network 2.2.2.2 mask 255.255.255.255 neighbor 1.1.1.1 remote-as 100 ! neighbor 1.1.1.1 route-reflector-client neighbor 3.3.3.3 remote-as 100 ! neighbor 3.3.3.3 route-reflector-client |
R3
hostname R3 no ip domain lookup
interface Loopback0 ip address 3.3.3.3 255.255.255.255
interface GigabitEthernet3 ip address 192.168.23.3 255.255.255.0 no shut
router ospf 1 router-id 3.3.3.3 network 3.3.3.3 0.0.0.0 area 0 network 192.168.23.0 0.0.0.255 area 0
router bgp 100 bgp router-id 3.3.3.3 network 3.3.3.3 mask 255.255.255.255 neighbor 2.2.2.2 remote-as 100 neighbor 2.2.2.2 update-source Loopback0 |
R4
hostname R4 no ip domain lookup
interface Loopback0 ip address 4.4.4.4 255.255.255.255
interface GigabitEthernet3 ip address 123.0.0.2 255.255.255.252 no shut
router bgp 200 bgp router-id 4.4.4.4 neighbor 123.0.0.1 remote-as 100 network 4.4.4.4 mask 255.255.255.255
ip route 0.0.0.0 0.0.0.0 123.0.0.1 |
Comments