JANOG 53 NETCON 問題解説 Level 1-8
JANOG 53 にスタッフ(NETCON委員)として参加させていただきました。 作成した問題について、回答と解説を記載します。
本問題につきましては、vJunos-switch が起動するまで非常に時間がかかったり、正常に起動できない状況が発生し、大変ご不便をおかけしましたことをお詫びいたします。 Level 1-8 Junos再帰ルーティング問題
技術要素
・スタティックルート
構成解説
・CSR1000v x 1, vJunos-switch x 1, Linux x 2
問題文
PC1からPC2にpingが飛びません。
PC1で ping 192.168.2.200 が成功するようにしてください。
【制約】
・既に設定されているconfigを修正・削除してはいけません。必ず設定追加で問題を解決してください。
・next-hop を指定したスタティックルートを新たに追加してはいけません。
・新たにインターフェースを追加してはいけません。 また、既存のインターフェースにsecondaryアドレスを設定してもいけません
・新たにダイナミックルーティングプロトコルを動作させてはいけません
問題解説 ping/tracerouteの状況を確認すると、R2が表示されません。
PC1:~# ping -c 3 192.168.2.200 PING 192.168.2.200 (192.168.2.200) 56(84) bytes of data. ^C --- 192.168.2.200 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2040ms PC1:~# traceroute 192.168.2.200 traceroute to 192.168.2.200 (192.168.2.200), 30 hops max, 46 byte packets 1 192.168.1.1 (192.168.1.1) 0.219 ms 0.274 ms 0.162 ms 2 * |
R1のルーティングテーブルを確認してみます。
R1#sh ip route | be Gate Gateway of last resort is not set 2.0.0.0/32 is subnetted, 1 subnets S 2.2.2.2 [1/0] via 192.168.12.2 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.0.0.0/24 is directly connected, GigabitEthernet2 L 10.0.0.15/32 is directly connected, GigabitEthernet2 192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.1.0/24 is directly connected, GigabitEthernet4 L 192.168.1.1/32 is directly connected, GigabitEthernet4 S 192.168.2.0/24 [1/0] via 2.2.2.2 192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.12.0/24 is directly connected, GigabitEthernet3 L 192.168.12.1/32 is directly connected, GigabitEthernet3 |
192.168.2.0/24 の next-hop として 2.2.2.2 が指定されており、 2.2.2.2/32 の next-hop として 192.168.12.2 が指定される、再帰ルーティングの状態になっています。
R1のconfigも確認します。
R1#sh run | sec route ip route 2.2.2.2 255.255.255.255 192.168.12.2 ip route 192.168.2.0 255.255.255.0 2.2.2.2 |
やはり再起ルーティングが設定されています。 R2のルーティングテーブルも確認します。
admin@R2> show route inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) Limit/Threshold: 1048576/1048576 destinations + = Active Route, - = Last Active, * = Both 1.1.1.1/32 *[Static/5] 00:06:46 > to 192.168.12.1 via ge-0/0/0.0 10.0.0.0/24 *[Direct/0] 00:10:19 > via fxp0.0 10.0.0.15/32 *[Local/0] 00:10:19 Local via fxp0.0 192.168.2.0/24 *[Direct/0] 00:06:46 > via ge-0/0/1.0 192.168.2.2/32 *[Local/0] 00:06:46 Local via ge-0/0/1.0 192.168.12.0/24 *[Direct/0] 00:06:46 > via ge-0/0/0.0 192.168.12.2/32 *[Local/0] 00:06:46 Local via ge-0/0/0.0 (略)
admin@R2> show route 192.168.1.0/24 (何も表示されず) |
1.1.1.1/32 はルーティングテーブル上に存在していますが、192.168.1.0/24 がありません。
R2の設定も確認します。
admin@R2> show configuration | display set (略) set routing-options static route 1.1.1.1/32 next-hop 192.168.12.1 set routing-options static route 192.168.1.0/24 next-hop 1.1.1.1 |
192.168.1.0/24 は、1.1.1.1 を介した再帰ルーティングの設定になっているように見えます。
192.168.1.0/24 の next-hop として 1.1.1.1 が設定されていますが、
ルーティングテーブル上には 192.168.1.0/24 が表示されません。
admin@R2> show route 192.168.1.0/24(何も表示されず) |
Cisco IOSはデフォルトで再帰ルーティングを許容しますが、Junosの場合は無効となります。
再帰ルーティングをさせる場合には、該当のルートに resolve の設定を追加する必要があります。
admin@R2# set routing-options static route 192.168.1.0/24 resolve |
resolve の設定を追加すると、R2のルーティングテーブル上に 192.168.1.0/24 が表示されます。
next-hop は再帰で解決された 192.168.12.1 になります。
admin@R2# set routing-options static route 192.168.1.0/24 resolve
admin@R2> show route inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden) Limit/Threshold: 1048576/1048576 destinations + = Active Route, - = Last Active, * = Both 1.1.1.1/32 *[Static/5] 00:11:53 > to 192.168.12.1 via ge-0/0/0.0 10.0.0.0/24 *[Direct/0] 00:15:26 > via fxp0.0 10.0.0.15/32 *[Local/0] 00:15:26 Local via fxp0.0 192.168.1.0/24 *[Static/5] 00:00:10, metric2 0 > to 192.168.12.1 via ge-0/0/0.0 192.168.2.0/24 *[Direct/0] 00:11:53 > via ge-0/0/1.0 192.168.2.2/32 *[Local/0] 00:11:53 Local via ge-0/0/1.0 192.168.12.0/24 *[Direct/0] 00:11:53 > via ge-0/0/0.0 192.168.12.2/32 *[Local/0] 00:11:53 Local via ge-0/0/0.0 |
R2に 192.168.1.0/24 宛の経路ができると、PC2からの戻りのパケットが返るようになり、 PC1からのpingが成功するようになります。
PC1:~# ping -c 3 192.168.2.200 PING 192.168.2.200 (192.168.2.200) 56(84) bytes of data. 64 bytes from 192.168.2.200: icmp_seq=1 ttl=62 time=1.22 ms 64 bytes from 192.168.2.200: icmp_seq=2 ttl=62 time=1.29 ms 64 bytes from 192.168.2.200: icmp_seq=3 ttl=62 time=1.29 ms --- 192.168.2.200 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 1.221/1.268/1.294/0.033 ms
PC1:~# traceroute 192.168.2.200 -n traceroute to 192.168.2.200 (192.168.2.200), 30 hops max, 46 byte packets 1 192.168.1.1 0.297 ms 0.171 ms 0.218 ms 2 192.168.12.2 3.077 ms 33.914 ms 27.688 ms 3 192.168.2.200 1.426 ms 1.259 ms 1.549 ms |
正解例
Cisco IOSはデフォルトで再起ルーティングしますが、Junosはデフォルトでは再帰ルーティングしないので、再帰ルーティングさせる static route を書く場合は resolve の設定が必要になります。
以下のようにR2に設定を追加します。
root@R2# set routing-options static route 192.168.1.0/24 resolve root@R2# commit
root@R2# run show route inet.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 1.1.1.1/32 *[Static/5] 00:02:01 > to 192.168.12.1 via ge-0/0/0.0 192.168.1.0/24 *[Static/5] 00:00:24, metric2 0 > to 192.168.12.1 via ge-0/0/0.0 192.168.2.0/24 *[Direct/0] 03:36:20 > via ge-0/0/1.0 192.168.2.2/32 *[Local/0] 03:36:20 Local via ge-0/0/1.0 192.168.12.0/24 *[Direct/0] 03:36:20 > via ge-0/0/0.0 192.168.12.2/32 *[Local/0] 03:36:21 Local via ge-0/0/0.0
root@R2# run show route 192.168.1.0/24 inet.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 192.168.1.0/24 *[Static/5] 00:01:31, metric2 0 > to 192.168.12.1 via ge-0/0/0.0 PC1> ping 192.168.2.200 84 bytes from 192.168.2.200 icmp_seq=1 ttl=62 time=8.581 ms 84 bytes from 192.168.2.200 icmp_seq=2 ttl=62 time=4.951 ms 84 bytes from 192.168.2.200 icmp_seq=3 ttl=62 time=3.917 ms 84 bytes from 192.168.2.200 icmp_seq=4 ttl=62 time=3.370 ms 84 bytes from 192.168.2.200 icmp_seq=5 ttl=62 time=3.834 ms PC1> trace 192.168.2.200 trace to 192.168.2.200, 8 hops max, press Ctrl+C to stop 1 192.168.1.1 1.985 ms 1.036 ms 1.080 ms 2 192.168.12.2 2.926 ms 2.441 ms 2.308 ms 3 *192.168.2.200 5.709 ms (ICMP type:3, code:3, Destination port unreachable) root@R2# run show configuration | display set (略) set interfaces ge-0/0/0 unit 0 family inet address 192.168.12.2/24 set interfaces ge-0/0/1 unit 0 family inet address 192.168.2.2/24 set routing-options static route 192.168.1.0/24 next-hop 1.1.1.1 set routing-options static route 192.168.1.0/24 resolve set routing-options static route 1.1.1.1/32 next-hop 192.168.12.1 |
【不正解の例】
以下のように、192.168.1.0/24 の next-hop として 192.168.12.1 を追加したり、 0.0.0.0/0 や 192.168.1.100/32 の next-hop として 192.168.12.1 を追加する設定は、 「next-hop を指定したスタティックルートの追加」になるので、不正解になります。
set routing-options static route 192.168.1.0/24 next-hop 192.168.12.1 set routing-options static route 0.0.0.0/0 next-hop 192.168.12.1 set routing-options static route 192.168.1.100/32 next-hop 192.168.12.1 |
初期config
R1
host R1 no ip domain lo
interface GigabitEthernet3 ip address 192.168.12.1 255.255.255.0 no shut
interface GigabitEthernet4 ip address 192.168.1.1 255.255.255.0 no shut
ip route 2.2.2.2 255.255.255.255 192.168.12.2 ip route 192.168.2.0 255.255.255.0 2.2.2.2 |
R2
set system host-name R2 set interfaces ge-0/0/0 unit 0 family inet address 192.168.12.2/24 set interfaces ge-0/0/1 unit 0 family inet address 192.168.2.2/24 set routing-options static route 192.168.1.0/24 next-hop 1.1.1.1 set routing-options static route 1.1.1.1/32 next-hop 192.168.12.1 |
Comments