JANOG 51 NETCON 問題解説 (Level 2-1)
JANOG 51 にスタッフ(NETCON委員)として参加させていただきました。 作成した問題について、回答と解説を記載します。 私の作成した問題は以下となっています。
Level 2-1 IPマルチキャスト 問題
技術要素
IPマルチキャスト
構成解説
Cisco CSR1000v x 3 (R1、R2、R3)、通信確認用端末(Linux) x 3
R2のみ設定変更可能、R1/R3は enable 権限なし
R2のスイッチオーバーは無効化している
問題文
NETCON株式会社は、総務部、営業部、システム部の3つのネットワークがあり、
以前は営業部とシステム部は総務部を経由して通信していました。
システム部にはマルチキャストソースがあり、224.1.1.1 宛にIPマルチキャストのデータを送信します。 総務部と営業部にはそれぞれマルチキャストのレシーバがあり、 224.1.1.1 宛のマルチキャストデータを受信します。 RPにはR3のLo0のIPアドレス:3.3.3.3/32 をスタティックに設定しています。
営業部とシステム部のユニキャストトラフィックが肥大化したため、 営業部とシステム部を直結するセグメント:10.0.23.0/24 を追加しました。 ただし、このセグメントはユニキャスト通信専用であり、マルチキャストトラフィックは流していません。
セグメント追加と同時に、営業部のレシーバーはマルチキャストデータの受信が 出来なくなってしまいました。 システム部とのユニキャスト通信は問題ありません。
R2の設定を変更して、営業部にあるPCが 224.1.1.1 宛のマルチキャストデータを 受け取れるようにして下さい。 具体的には以下の流れで通信確認を実施してください。
①レシーバー:PC2で sudo tcpdump -i eth1 src host 192.168.3.100 を実行します
②ソース:PC3 で ping -t 10 224.1.1.1 を実行します
③レシーバー:PC2で以下のように表示されればマルチキャストデータを受信できています
PC2:~$ sudo tcpdump -i eth1 src host 192.168.3.100
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
07:31:47.532675 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 1, length 64
07:31:48.517162 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 2, length 64
07:31:49.517438 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 3, length 64
07:31:50.518081 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 4, length 64
:
制約事項
・追加した 10.0.23.0/24 のセグメントには、224.1.1.1 宛のマルチキャストのデータを流してはいけません。 R2のGi4、R3のGi4のインターフェースでPIMを有効にしてはいけません。
・IGPとして使用しているOSPFの設定を変更してはいけません。 また、ユニキャストルーティングをスタティックで設定してはいけません。
・RPを変更してはいけません。
・R1~R3の GigabitEthernet1 インターフェースは管理用のため、設定変更を実施してはいけません (機器にログイン出来なくなります)
・営業部とシステム部のユニキャスト通信は、追加したセグメント:10.0.23.0/24を経由する必要があります。 具体的には、PC2で sudo traceroute 192.168.3.100 を実施した時に、以下のように直結セグメントである 10.0.23.0/24 を通って3HOPでPC3に到達する必要があります。
PC2:~$ sudo traceroute 192.168.3.100
traceroute to 192.168.3.100 (192.168.3.100), 30 hops max, 46 byte packets
1 192.168.2.2 (192.168.2.2) 0.276 ms 0.180 ms 0.174 ms
2 10.0.23.3 (10.0.23.3) 0.546 ms 0.554 ms 0.367 ms
3 192.168.3.100 (192.168.3.100) 0.511 ms 0.546 ms 0.542 ms
※設定を追加・修正したconfigも回答として送信してください。
問題解説
初期状態
R2#sh ip mroute | be Outgoing
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.1), 00:00:58/00:02:04, RP 3.3.3.3, flags: SCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
GigabitEthernet3, Forward/Sparse, 00:00:58/00:02:04
(*, 224.0.1.40), 00:00:57/00:02:02, RP 3.3.3.3, flags: SCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
GigabitEthernet2, Forward/Sparse, 00:00:57/00:02:02
R2#sh ip rpf 3.3.3.3
failed, no route exists
R2#show ip route 3.3.3.3
Routing entry for 3.3.3.3/32
Known via "ospf 1", distance 110, metric 2, type intra area
Last update from 10.0.23.3 on GigabitEthernet3, 00:48:34 ago
Routing Descriptor Blocks:
* 10.0.23.3, from 3.3.3.3, 00:48:34 ago, via GigabitEthernet4
Route metric is 2, traffic share count is 1
→ユニキャストのルーティングテーブル上では、RP:3.3.3.3 への最適経路は G4 、ネクストホップは 10.0.23.3 になっている
R2#sh ip pim nei
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
P - Proxy Capable, S - State Refresh Capable, G - GenID Capable,
L - DR Load-balancing Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
10.0.12.1 GigabitEthernet2 00:49:25/00:01:35 v2 1 / S P G
→G4ではPIMを有効にしていないので、PIMネイバーはR1とのみ形成されている ユニキャストルーティング上の最適経路のネクストホップが PIMネイバーのアドレス:10.0.12.1 と異なっているため、 R2からRP:3.3.3.3 に向かって (*,G) Join が送信できなくなっています。
R1>sh ip mroute | be Outgoing
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.1), 00:06:57/00:03:08, RP 3.3.3.3, flags: SJCL
Incoming interface: GigabitEthernet2, RPF nbr 10.0.13.3
Outgoing interface list:
GigabitEthernet4, Forward/Sparse, 00:06:57/00:01:56
(*, 224.0.1.40), 00:06:57/00:03:07, RP 3.3.3.3, flags: SJCL
Incoming interface: GigabitEthernet2, RPF nbr 10.0.13.3
Outgoing interface list:
GigabitEthernet2, Forward/Sparse, 00:06:46/00:03:07
→R1のOutgoing interface が G4 のみになっている 【修正方法】 ip mroute コマンドでRPFネイバーのアドレスをスタティックで R1(10.0.12.1) に指定することで、 この問題は回避されます。
R2(config)#ip mroute 3.3.3.3 255.255.255.255 10.0.12.1
R2(config)#do sh ip mroute | be Outgoing
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.1), 00:06:37/00:02:29, RP 3.3.3.3, flags: SCL
Incoming interface: GigabitEthernet2, RPF nbr 10.0.12.1, Mroute
Outgoing interface list:
GigabitEthernet3, Forward/Sparse, 00:06:37/00:02:29
(*, 224.0.1.40), 00:06:35/00:02:29, RP 3.3.3.3, flags: SPCL
Incoming interface: GigabitEthernet2, RPF nbr 10.0.12.1, Mroute
Outgoing interface list: Null
R2(config)#do sh ip rpf 3.3.3.3
RPF information for ? (3.3.3.3)
RPF interface: GigabitEthernet2
RPF neighbor: ? (10.0.12.1)
RPF route/mask: 3.3.3.3/32
RPF type: multicast (static)
Doing distance-preferred lookups across tables
RPF topology: ipv4 multicast base
→R2はRPFチェックに成功して、G2上から (*,G) Join を送信します。
R1>sh ip mroute | be Outgoing
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.1), 00:14:20/00:02:38, RP 3.3.3.3, flags: SJCL
Incoming interface: GigabitEthernet3, RPF nbr 10.0.13.3
Outgoing interface list:
GigabitEthernet2, Forward/Sparse, 00:01:09/00:02:38
GigabitEthernet4, Forward/Sparse, 00:14:20/00:02:33
→R1はG2で (*,G) Join を受け取り、Outgoing interface list に G2 を追加します。
これにより、R2は 224.1.1.1 宛のマルチキャストパケットを受信することができます。
PC3:~$ ping -t 10 224.1.1.1
PING 224.1.1.1 (224.1.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=2 ttl=254 time=1.24 ms
64 bytes from 192.168.2.2: icmp_seq=2 ttl=254 time=1.39 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=254 time=0.893 ms
64 bytes from 192.168.2.2: icmp_seq=3 ttl=254 time=1.18 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=254 time=0.866 ms
64 bytes from 192.168.2.2: icmp_seq=4 ttl=254 time=1.16 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=254 time=1.19 ms
64 bytes from 192.168.2.2: icmp_seq=5 ttl=254 time=1.45 ms
→PC3から 224.1.1.1 宛のpingを事項すると、R2の G3 のIPアドレス:192.168.2.2 から
ICMP echo reply が返っていることがわかります。
PC2:~$ sudo tcpdump -i eth1 src 192.168.3.100
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
07:31:47.532675 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 1, length 64
07:31:48.517162 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 2, length 64
07:31:49.517438 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 3, length 64
07:31:50.518081 IP 192.168.3.100 > 224.1.1.1: ICMP echo request, id 2, seq 4, length 64
:
→PC2上で tcpdump を実行した結果にも、PC3からのマルチキャストパケットが 正常に届いていることがわかります。
誤答例:スタティックルートの追加
R2上で、RP:3.3.3.3 宛のスタティックルートを 10.0.12.1 に向けることで、
RPFネイバーを 10.0.12.1 にすることができ、マルチキャストを受信できるようになりますが、
今回は ユニキャストスタティックルートの使用は禁止されていますので、不正解となります。
こちらの回答の提出が多かったです。
R2(config)# ip route 3.3.3.3 255.255.255.255 10.0.12.1
R2(config)#do sh ip rpf 3.3.3.3
RPF information for ? (3.3.3.3)
RPF interface: GigabitEthernet2
RPF neighbor: ? (10.0.12.1)
RPF route/mask: 3.3.3.3/32
RPF type: unicast (static)
Doing distance-preferred lookups across tables
RPF topology: ipv4 multicast base, originated from ipv4 unicast base
R2(config)#do sh ip mroute 224.1.1.1 | be Incoming
Incoming interface: GigabitEthernet2, RPF nbr 10.0.12.1
Outgoing interface list:
GigabitEthernet3, Forward/Sparse, 00:41:21/00:02:42
初期コンフィグ
R1
hostname R1 no ip domain lookup ip multicast-routing distributed interface GigabitEthernet2 ip address 10.0.12.1 255.255.255.0 ip pim sparse-mode no shutdown interface GigabitEthernet3 ip address 10.0.13.1 255.255.255.0 ip pim sparse-mode no shutdown interface GigabitEthernet4 ip address 192.168.1.1 255.255.255.0 ip pim sparse-mode ip igmp join-group 224.1.1.1 no shutdown router ospf 1 router-id 1.1.1.1 passive-interface GigabitEthernet4 network 10.0.0.0 0.0.255.255 area 0 network 192.168.1.1 0.0.0.0 area 0 ip pim rp-address 3.3.3.3 username janoger privilege 1 password 0 netcon! |
R2
hostname R2 no ip domain lookup ip multicast-routing distributed interface GigabitEthernet2 ip address 10.0.12.2 255.255.255.0 ip pim sparse-mode no shutdown interface GigabitEthernet3 ip address 192.168.2.2 255.255.255.0 ip pim sparse-mode ip igmp join-group 224.1.1.1 no shutdown interface GigabitEthernet4 ip address 10.0.23.2 255.255.255.0 no shutdown router ospf 1 router-id 2.2.2.2 passive-interface GigabitEthernet3 network 10.0.0.0 0.0.255.255 area 0 network 192.168.2.2 0.0.0.0 area 0 ip pim rp-address 3.3.3.3 ip pim spt-threshold infinity |
R3
hostname R3 no ip domain lookup ip multicast-routing distributed interface GigabitEthernet2 ip address 10.0.13.3 255.255.255.0 ip pim sparse-mode no shutdown interface GigabitEthernet3 ip address 192.168.3.3 255.255.255.0 ip pim sparse-mode no shutdown interface GigabitEthernet4 ip address 10.0.23.3 255.255.255.0 no shutdown int lo0 ip address 3.3.3.3 255.255.255.255 router ospf 1 router-id 3.3.3.3 passive-interface GigabitEthernet3 network 10.0.0.0 0.0.255.255 area 0 network 192.168.3.3 0.0.0.0 area 0 network 3.3.3.3 0.0.0.0 area 0 ip pim rp-address 3.3.3.3 username janoger privilege 1 password 0 netcon! |
Comments