JANOG 53 NETCON 問題解説 Level 5-2
JANOG 53 にスタッフ(NETCON委員)として参加させていただきました。 作成した問題について、回答と解説を記載します。
Level 5-2 DHCP Relay information option 82 の問題
技術要素
・DHCP Relay information option 82
構成解説
・CSR1000v x 4, cEOS x1, Linux x 2
問題文
PC1とPC3はDHCPクライアントで、R2はDHCPサーバーです。 DHCPによるIPアドレスの割り当てに失敗しています。
■問題① DHCPによって、R2からPC1とPC3に以下の範囲でIPアドレスを割り当てて下さい。
・PC1:192.168.10.110 ~ 192.168.10.115・PC3:192.168.30.130 ~ 192.168.30.135
■問題②
R1とR3で ip dhcp relay information option に設定されている subscriber-id の文字を、
それぞれ回答してください
【制約】
・既存の設定を変更・削除してはいけません。必ず設定の追加で解決してください。
・R3にはログインできません。
・R1にはログインできますが、enableになることは出来ません。
・スタティックルートを設定してはいけません。
・新たなインターフェースを作成したり、PBRを設定してはいけません。
問題解説 ■問題① PC1とPC3のIP取得
PC1とPC3でIPアドレスを取得してみます。
PC1:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc failed to get a DHCP lease ^C
PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc failed to get a DHCP lease ^C |
取得に失敗しています。
構成的に、R1とR3はDHCPリレーの設定が必要になります。 R3にはログインできないため、R1を確認してみます。
R1>sh ip int g4 GigabitEthernet4 is up, line protocol is up Internet address is 192.168.10.1/24 Broadcast address is 255.255.255.255 Address determined by setup command MTU is 1500 bytes Helper address is 192.168.20.100 : |
enable になれないのでコンフィグは確認できませんが、show ip int g4 の表示結果から ip helper-address 192.168.20.100 の設定が入っていると予測されます。
R1は 192.168.20.100 (R2) にユニキャストで DHCP discover を転送する必要があるため、 IPの疎通性があるか、ping / traceroute で確認してみます。
R1>ping 192.168.20.100 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.20.100, timeout is 2 seconds: ..... Success rate is 0 percent (0/5)
R1>traceroute 192.168.20.100 Type escape sequence to abort. Tracing the route to 192.168.20.100 VRF info: (vrf in name/id, vrf out name/id) 1 172.16.0.1 2 msec 1 msec 2 msec 2 172.16.0.1 !A * !A |
ping が飛ばず、172.16.0.1 (FW) までしか表示されないことから、R1とR2の疎通性を疑ってみます。
R1のルーティングテーブルから確認します。
R1>sh ip route | be Gate Gateway of last resort is not set 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 172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks C 172.16.0.0/24 is directly connected, GigabitEthernet3 L 172.16.0.10/32 is directly connected, GigabitEthernet3 192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.10.0/24 is directly connected, GigabitEthernet4 L 192.168.10.1/32 is directly connected, GigabitEthernet4 O 192.168.20.0/24 [110/2] via 172.16.0.1, 00:06:44, GigabitEthernet3 O 192.168.30.0/24 [110/2] via 172.16.0.30, 00:06:51, GigabitEthernet3 |
R2のIPアドレス帯 192.168.20.0/24 をOSPFで学習しています。 FWからも確認してみます。
FW#ping 192.168.20.100 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.20.100, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/3 m |
FWからは 192.168.20.100 にpingが飛びます。
R2を確認してみます。
R2#sh ip route | be Gate Gateway of last resort is not set 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.20.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.20.0/24 is directly connected, GigabitEthernet3 L 192.168.20.100/32 is directly connected, GigabitEthernet3 |
R2はルーティングテーブルに Connected のアドレス帯しかありません。
R1はOSPFでルートを学習していたので、FWのOSPFの状態を確認してみます。
FW#sh ip ospf int b Interface PID Area IP Address/Mask Cost State Nbrs F/C Gi4 1 0 172.16.0.1/24 1 BDR 2/2 Gi3 1 0 192.168.20.1/24 1 DR 0/0 FW#sh ip ospf nei Neighbor ID Pri State Dead Time Address Interface 192.168.10.1 1 FULL/DROTHER 00:00:39 172.16.0.10 GigabitEthernet4 192.168.30.3 1 FULL/DR 00:00:39 172.16.0.30 GigabitEthernet4 |
FWのG3では OSPF が有効になっていますが、neighbor として見えているのはR1とR3だけです。
R2のOSPFの状態を確認します。
R2#sh ip ospf nei
R2#sh ip ospf int b R2#sh run | sec ospf router ospf 1 |
OSPFのプロセスが有効化されているだけで、 インターフェースでOSPFが有効になっていないようにみえます。
R2のG3でOSPFを有効化させます。
R2 router ospf 1 network 192.168.20.100 0.0.0.0 area 0 |
R2#sh ip ospf int b Interface PID Area IP Address/Mask Cost State Nbrs F/C Gi3 1 0 192.168.20.100/24 1 DR 1/1
R2#sh ip ospf nei Neighbor ID Pri State Dead Time Address Interface 192.168.20.1 1 FULL/BDR 00:00:39 192.168.20.1 GigabitEthernet3 R2#sh ip route | be Gate Gateway of last resort is not set 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 172.16.0.0/24 is subnetted, 1 subnets O 172.16.0.0 [110/2] via 192.168.20.1, 00:00:28, GigabitEthernet3 O 192.168.10.0/24 [110/3] via 192.168.20.1, 00:00:28, GigabitEthernet3 192.168.20.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.20.0/24 is directly connected, GigabitEthernet3 L 192.168.20.100/32 is directly connected, GigabitEthernet3 O 192.168.30.0/24 [110/3] via 192.168.20.1, 00:00:28, GigabitEthernet3 |
R2はFWとneighbor関係を構築し、connected 以外のルートをOSPFで学習します。
再度R1から ping を試してみます。
R1>ping 192.168.20.100 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.20.100, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms |
R1からR2へpingが飛ぶようになりました。
再度PC1でIPアドレスを取得してみます。
PC1:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover ^C |
まだIPアドレスは取得できていません。
DHCPリレーエージェントであるR1と、DHCPサーバであるR2とのIPの疎通性は確保したはずなので、 R1が転送したDHCP discover がR2まで届いているか、確認します。
R2で debug ip dhcp server packet を実行します。 SSH接続ではデフォルトでメッセージが表示されないため、terminal monitor のコマンドも投入します。
R2#debug ip dhcp server packet DHCP server packet debugging is on. R2#term monitor |
PC1でIPアドレス取得を試みます。
PC1:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc failed to get a DHCP lease udhcpc failed to get a DHCP lease ^C R2# |
R2の debug に何も表示されません。 PC3でもIPアドレス取得を試みてみます。
PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover ^C R2# *Dec 14 03:04:25.988: DHCPD: tableid for 192.168.20.100 on GigabitEthernet3 is 0 *Dec 14 03:04:25.988: DHCPD: client's VPN is . *Dec 14 03:04:25.988: DHCPD: No option 125 *Dec 14 03:04:25.988: DHCPD: No option 124 *Dec 14 03:04:25.988: DHCPD: Option 125 not present in the msg. *Dec 14 03:04:25.988: DHCPD: ignoring duplicate subscriber id. *Dec 14 03:04:25.988: DHCPD: ignoring duplicate subscriber id. *Dec 14 03:04:25.988: DHCPD: using received relay info. *Dec 14 03:04:25.988: DHCPD: DHCPDISCOVER received from client 01aa.c1ab.948f.bf through relay 192.168.30.3. |
IPアドレスの取得は出来ませんが、R2の debug にメッセージが表示されるため、 R3から転送された DHCP discover はR2に到達できているものと思われます。
R1が転送した discover がR2に届かない点について、FWの設定を疑ってみます。
FW#sh run | sec access ip access-group 101 in ip access-group 100 in ip access-list extended 100 10 permit udp host 192.168.30.3 eq bootps host 192.168.20.100 eq bootps 20 deny udp any any 30 permit ip any any ip access-list extended 101 10 permit udp host 192.168.20.100 eq bootps host 192.168.10.1 eq bootps 20 deny udp any any 30 permit ip any any
FW#sh ip int g3 | inc access list Outgoing Common access list is not set Outgoing access list is not set Inbound Common access list is not set Inbound access list is 101 FW#sh ip int g4 | inc access list Outgoing Common access list is not set Outgoing access list is not set Inbound Common access list is not set Inbound access list is 100 |
FWには ACL 100 と ACL 101 が設定されており、G3(リレーエージェント側) の IN 方向に ACL101 が、 G4(DHCPサーバ側) の IN 方向に ACL100 が適用されています。
G3(リレーエージェント側) の IN 方向に適用されている ACL101 を確認します。
FW#show access-lists 100 Extended IP access list 100 10 permit udp host 192.168.30.3 eq bootps host 192.168.20.100 eq bootps (5 matches) 20 deny udp any any (273 matches) 30 permit ip any any (798 matches) |
seq 10 でR3からのDHCPリレーだけ許可されているように見えます。
PC1:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover ^C
FW#show access-lists 100 Extended IP access list 100 10 permit udp host 192.168.30.3 eq bootps host 192.168.20.100 eq bootps (5 matches) 20 deny udp any any (21 matches) 30 permit ip any any (819 matches) |
PC1でIP取得を試みると 20 deny がカウントアップするため、やはりここで弾かれているようです。
FWの ACL100 に、R1からのDHCPリレーパケットを許容するようにseqを追加します。
FW ip access-list extended 100 15 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps |
FW#show access-lists 100 Extended IP access list 100 10 permit udp host 192.168.30.3 eq bootps host 192.168.20.100 eq bootps (5 matches) 15 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps 20 deny udp any any (27 matches) 30 permit ip any any (869 matches)
PC1:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.10.110, server 192.168.20.100 udhcpc: lease of 192.168.10.110 obtained from 192.168.20.100, lease time 86400 FW#show access-lists 100 Extended IP access list 100 10 permit udp host 192.168.30.3 eq bootps host 192.168.20.100 eq bootps (5 matches) 15 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps (2 matches) 20 deny udp any any (27 matches) 30 permit ip any any (899 matches) R2# **Dec 14 04:23:35.632: DHCPD: Option 125 not present in the msg. *Dec 14 04:23:35.632: DHCPD: egress Interfce GigabitEthernet3 *Dec 14 04:23:35.632: DHCPD: unicasting BOOTREPLY for client aac1.ab30.d48c to relay 192.168.10.1. *Dec 14 04:23:35.660: DHCPD: tableid for 192.168.20.100 on GigabitEthernet3 is 0 *Dec 14 04:23:35.661: DHCPD: client's VPN is . *Dec 14 04:23:35.661: DHCPD: No option 125 *Dec 14 04:23:35.661: DHCPD: No option 124 *Dec 14 04:23:35.661: DHCPD: DHCPREQUEST received from client 01aa.c1ab.30d4.8c. *Dec 14 04:23:35.661: DHCPD: DHCPREQUEST received on interface GigabitEthernet3. *Dec 14 04:23:35.661: DHCPD: Option 125 not present in the msg. *Dec 14 04:23:35.661: DHCPD: Can't find any hostname to updateDHCPD: Setting only requested parameters *Dec 14 04:23:35.661: DHCPD: Option 125 not present in the msg. *Dec 14 04:23:35.662: DHCPD: egress Interfce GigabitEthernet3 *Dec 14 04:23:35.662: DHCPD: unicasting BOOTREPLY for client aac1.ab30.d48c to relay 192.168.10.1. R2#sh ip dhcp binding Bindings from all pools not associated with VRF: IP address Client-ID/ Lease expiration Type State Interface Hardware address/ User name 192.168.10.110 01aa.c1ab.30d4.8c Dec 15 2023 04:23 AM Automatic Active GigabitEthernet3 |
PC1でIP取得に成功しました。
FWの追加したフィルタもカウントアップし、R2の debug でもメッセージが表示され、
バインディングテーブルにも表示されます。
PC3でも再度IP取得を試みます。
PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover ^C
R2# *Dec 14 04:25:44.524: DHCPD: tableid for 192.168.20.100 on GigabitEthernet3 is 0 *Dec 14 04:25:44.524: DHCPD: client's VPN is . *Dec 14 04:25:44.524: DHCPD: No option 125 *Dec 14 04:25:44.524: DHCPD: No option 124 *Dec 14 04:25:44.524: DHCPD: Option 125 not present in the msg. *Dec 14 04:25:44.524: DHCPD: ignoring duplicate subscriber id. *Dec 14 04:25:44.524: DHCPD: ignoring duplicate subscriber id. *Dec 14 04:25:44.524: DHCPD: using received relay info. *Dec 14 04:25:44.524: DHCPD: DHCPDISCOVER received from client 01aa.c1ab.2821.2d through relay 192.168.30.3. *Dec 14 04:25:44.524: DHCPD: Option 125 not present in the msg.e m |
PC3はIPの割り当てに失敗しますが、R2の debug にはちゃんと表示されるので、 DHCP discover はR2まで届いていると考えられます。
R2のDHCP設定を確認します。
R2#sh run | sec dhcp ip dhcp excluded-address 192.168.10.1 192.168.10.99 ip dhcp excluded-address 192.168.30.1 192.168.30.129 ip dhcp pool NET1 network 192.168.10.0 255.255.255.0 default-router 192.168.10.1 class Class1 address range 192.168.10.110 192.168.10.115 ip dhcp pool NET3 network 192.168.30.0 255.255.255.0 default-router 192.168.30.3 class Class3 address range 192.168.30.130 192.168.30.135 ip dhcp class Class1 relay agent information relay-information hex 020c020a0000c0a80a010000000006076a616e6f673533 ip dhcp class Class3 relay agent information relay-information hex 0123456789 |
割り当てアドレス範囲から、NET1 はPC1用、NET3 はPC3用と思われます。 NET1 には Class1 が設定され、relay-information hex 020c・・・・が設定されています。 NET3 には Class3 が設定され、relay-information hex 0123456789 が設定されています。
PC1の割り当ては成功しているので、Class3 の relay-information hex 0123456789 が 誤っているのではないか?と推察されますが、正しく設定すべき値は分かりません。
relay-information の情報を確認するため、R2で debug ip dhcp server class を実行します。
R2#u all R2#debug ip dhcp server class DHCP server class debugging is on. |
PC3でIP取得を試みると、relay-information らしき長い16進数が表示されます。
PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discoverudhcpc: broadcasting discoverudhcpc: broadcasting discover^C R2# *Dec 14 04:26:55.731: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' in class Class3*Dec 14 04:26:58.771: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' in class Class3*Dec 14 04:27:01.815: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' in class Class3 |
R2のバインディングテーブルをいったんクリアしてから、PC1でIPを取り直してみます。
R2#clear ip dhcp bind * PC1:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.10.111, server 192.168.20.100 udhcpc: lease of 192.168.10.111 obtained from 192.168.20.100, lease time 86400 R2# *Dec 14 04:27:54.871: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a80a010000000006076a616e6f673533' in class Class1 *Dec 14 04:27:54.871: DHCPD: input pattern 'relay-information 020c020a0000c0a80a010000000006076a616e6f673533' matches class Class1 *Dec 14 04:27:54.871: DHCPD: best_match class Class1 |
IPアドレスの割り当てに成功している状態では、input pattern ~ matches class ~ 、
best_match class ~ が出ています。
また、debug で見えた relay-information の16進数は、DHCPの設定で Class1 に
そのまま relay-information hex として登録されていることが分かります。
R2# *Dec 14 04:27:54.871: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a80a010000000006076a616e6f673533' in class Class1 *Dec 14 04:27:54.871: DHCPD: input pattern 'relay-information 020c020a0000c0a80a010000000006076a616e6f673533' matches class Class1 *Dec 14 04:27:54.871: DHCPD: best_match class Class1
R2#sh run | sec dhcp ip dhcp excluded-address 192.168.10.1 192.168.10.99 ip dhcp excluded-address 192.168.30.1 192.168.30.129 ip dhcp pool NET1 network 192.168.10.0 255.255.255.0 default-router 192.168.10.1 class Class1 address range 192.168.10.110 192.168.10.115 ip dhcp pool NET3 network 192.168.30.0 255.255.255.0 default-router 192.168.30.3 class Class3 address range 192.168.30.130 192.168.30.135 ip dhcp class Class1 relay agent information relay-information hex 020c020a0000c0a80a010000000006076a616e6f673533 ip dhcp class Class3 relay agent information relay-information hex 0123456789 |
PC3用の Class3 にも、debug で見えた relay-information を設定してみます。
PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover ^C
R2# *Dec 14 04:26:55.731: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' in class Class3 *Dec 14 04:26:58.771: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' in class Class3 *Dec 14 04:27:01.815: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' in class Class3 |
R2 ip dhcp class Class3 relay agent information relay-information hex 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121 |
relay-information hex は複数設定できるので、「設定の修正・削除」ではなく「設定の追加」に当たります。(逆に relay-information hex 0123456789 を削除すると不正解になります)
R2#sh run | sec dhcp ip dhcp excluded-address 192.168.10.1 192.168.10.99 ip dhcp excluded-address 192.168.30.1 192.168.30.129 ip dhcp pool NET1 network 192.168.10.0 255.255.255.0 default-router 192.168.10.1 class Class1 address range 192.168.10.110 192.168.10.115 ip dhcp pool NET3 network 192.168.30.0 255.255.255.0 default-router 192.168.30.3 class Class3 address range 192.168.30.130 192.168.30.135 ip dhcp class Class1 relay agent information relay-information hex 020c020a0000c0a80a010000000006076a616e6f673533 ip dhcp class Class3 relay agent information relay-information hex 0123456789 relay-information hex 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121 |
PC3でIPを取得してみます。
PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover^C
R2# *Dec 14 04:33:17.940: DHCPD: Searching for a match to 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' in class Class3 *Dec 14 04:33:17.940: DHCPD: input pattern 'relay-information 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121' matches class Class3 *Dec 14 04:33:17.940: DHCPD: best_match class Class3 |
IPの割り当てには失敗しますが、input pattern ~ matches class ~ 、 best_match class ~ が出るようになりました。
R2からは DHCP Offer を出していると思われますので、R1へ届いていない可能性を疑って、 FWの設定を見てみます。 FWのG3(DHCPサーバ側)には ACL101 がIN方向に適用されています。
FW#sh access-lists 101 Extended IP access list 101 10 permit udp host 192.168.20.100 eq bootps host 192.168.10.1 eq bootps (18 matches) 20 deny udp any any (3 matches) 30 permit ip any any (178 matches) |
seq 10 で許可されているのは、Src:192.168.20.100/32、Dst:192.168.10.1/32 だけです。
再度PC3でIP取得を試みます。
PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting discover ^C FW#sh access-lists 101 Extended IP access list 101 10 permit udp host 192.168.20.100 eq bootps host 192.168.10.1 eq bootps (6 matches) 20 deny udp any any (6 matches) 30 permit ip any any (181 matches) |
20 deny がカウントアップするので、弾かれている可能性が高いです。
FWのACL101に、R3へのDHCPリレーパケットも許可するように設定を追加します。
FW ip access-list extended 101 15 permit udp host 192.168.20.100 eq bootps host 192.168.30.3 eq bootps |
FW#sh run | sec access ip access-group 101 in ip access-group 100 in ip access-list extended 100 10 permit udp host 192.168.30.3 eq bootps host 192.168.20.100 eq bootps 15 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps 20 deny udp any any 30 permit ip any any ip access-list extended 101 10 permit udp host 192.168.20.100 eq bootps host 192.168.10.1 eq bootps 15 permit udp host 192.168.20.100 eq bootps host 192.168.30.3 eq bootps 20 deny udp any any 30 permit ip any any
FW#show ip access-lists 101 Extended IP access list 101 10 permit udp host 192.168.20.100 eq bootps host 192.168.10.1 eq bootps (6 matches) 15 permit udp host 192.168.20.100 eq bootps host 192.168.30.3 eq bootps 20 deny udp any any (6 matches) 30 permit ip any any (191 matches) PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.30.130, server 192.168.20.100 udhcpc: lease of 192.168.30.130 obtained from 192.168.20.100, lease time 86400 FW#show ip access-lists 101 Extended IP access list 101 10 permit udp host 192.168.20.100 eq bootps host 192.168.10.1 eq bootps (6 matches) 15 permit udp host 192.168.20.100 eq bootps host 192.168.30.3 eq bootps (2 matches) 20 deny udp any any (6 matches) 30 permit ip any any (193 matches) |
PC3でIPの取得に成功します。
■問題② R1/R3の subscriber-id
R2でEPCでDHCPのパケットをキャプチャしてみます。
EPCのために、キャプチャするパケットを絞り込むACLを作成します。
R2 ip access-list extended DHCP 10 permit udp any eq bootps any eq bootps |
R2#monitor capture DHCP_CAP access-list DHCP interface g3 in buffer size 1 R2#monitor capture start Started capture point : DHCP_CAP *Dec 12 09:42:23.372: %BUFCAP-6-ENABLE: Capture Point DHCP_CAP enabled. R2#clear ip dhcp bind * PC1:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.10.110, server 192.168.20.100 udhcpc: lease of 192.168.10.110 obtained from 192.168.20.100, lease time 86400 R2#monitor capture stop R2#show monitor capture DHCP_CAP buffer dump 0000: 50000002 00025000 00040002 08004500 P.....P.......E. 0010: 014A0044 0000FE11 1BA9C0A8 0A01C0A8 .J.D............ 0020: 14640043 00430136 63E90101 06018208 .d.C.C.6c....... 0030: 8D7D0000 0000C0A8 0A6F0000 00000000 .}.......o...... 0040: 0000C0A8 0A010050 79666803 00000000 .......Pyfh..... 0050: 00000000 00000000 00000000 00000000 ................ 0060: 00000000 00000000 00000000 00000000 ................ 0070: 00000000 00000000 00000000 00000000 ................ 0080: 00000000 00000000 00000000 00000000 ................ 0090: 00000000 00000000 00000000 00000000 ................ 00A0: 00000000 00000000 00000000 00000000 ................ 00B0: 00000000 00000000 00000000 00000000 ................ 00C0: 00000000 00000000 00000000 00000000 ................ 00D0: 00000000 00000000 00000000 00000000 ................ 00E0: 00000000 00000000 00000000 00000000 ................ 00F0: 00000000 00000000 00000000 00000000 ................ 0100: 00000000 00000000 00000000 00000000 ................ 0110: 00000000 00006382 53633501 033604C0 ......c.Sc5..6.. 0120: A8146432 04C0A80A 6F3D0701 00507966 ..d2....o=...Pyf 0130: 68030C04 50433131 37040103 060F5217 h...PC117.....R. 0140: 020C020A 0000C0A8 0A010000 00000607 ................ 0150: 6A616E6F 673533FF janog53. |
R1が設定している relay-information option subscriber-id は 「janog53」です。
R3側も確認します。
R2#monitor capture clear R2#monitor capture start Started capture point : DHCP_CAP PC3:~# udhcpc -i eth1 udhcpc: started, v1.36.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.30.130, server 192.168.20.100 udhcpc: lease of 192.168.30.130 obtained from 192.168.20.100, lease time 86400 R2#monitor capture stop R2#show monitor capture DHCP_CAP buffer dump 0 0000: 50000002 00025000 00040002 08004500 P.....P.......E. 0010: 01480044 0000FE11 07A9C0A8 1E03C0A8 .H.D............ 0020: 14640043 00430134 8C620101 0601D97B .d.C.C.4.b.....{ 0030: 1D5F0000 00000000 00000000 00000000 ._.............. 0040: 0000C0A8 1E030050 79666806 00000000 .......Pyfh..... 0050: 00000000 00000000 00000000 00000000 ................ 0060: 00000000 00000000 00000000 00000000 ................ 0070: 00000000 00000000 00000000 00000000 ................ 0080: 00000000 00000000 00000000 00000000 ................ 0090: 00000000 00000000 00000000 00000000 ................ 00A0: 00000000 00000000 00000000 00000000 ................ 00B0: 00000000 00000000 00000000 00000000 ................ 00C0: 00000000 00000000 00000000 00000000 ................ 00D0: 00000000 00000000 00000000 00000000 ................ 00E0: 00000000 00000000 00000000 00000000 ................ 00F0: 00000000 00000000 00000000 00000000 ................ 0100: 00000000 00000000 00000000 00000000 ................ 0110: 00000000 00006382 53633501 010C0450 ......c.Sc5....P 0120: 4333313D 07010050 79666806 5220020C C31=...Pyfh.R .. 0130: 020A0000 C0A81E03 00000000 06104E45 ..............NE 0140: 54434F4E 2D576565 65656B21 2121FF00 TCON-Weeeek!!!.. 0150: 00000000 0000 ...... |
R3が設定している relay-information option subscriber-id は 「NETCON-Weeeek!!!」です。
正解例
■問題①
FW ip access-list extended 100 15 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps
ip access-list extended 101 15 permit udp host 192.168.20.100 eq bootps host 192.168.30.3 eq bootps |
R2 router ospf 1 network 192.168.20.100 0.0.0.0 area 0 ip dhcp class Class3 relay agent information relay-information hex 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121 |
■問題②
・R1に設定されている relay-information option subscriber-id は janog53 ・R3に設定されている relay-information option subscriber-id は NETCON-Weeeek!!!
初期config
R1
hostname R1 no ip domain lookup
ip dhcp relay information option
interface GigabitEthernet3 no shutdown ip address 172.16.0.10 255.255.255.0
interface GigabitEthernet4 no shutdown ip dhcp relay information trusted ip dhcp relay information option subscriber-id janog53 ip address 192.168.10.1 255.255.255.0 ip helper-address 192.168.20.100
router ospf 1 passive-interface GigabitEthernet4 network 172.16.0.0 0.0.0.255 area 0 network 192.168.10.0 0.0.0.255 area 0 |
R2
hostname R2 no ip domain lookup
ip dhcp excluded-address 192.168.10.1 192.168.10.99 ip dhcp excluded-address 192.168.30.1 192.168.30.129
ip dhcp pool NET1 network 192.168.10.0 255.255.255.0 default-router 192.168.10.1 class Class1 address range 192.168.10.110 192.168.10.115
ip dhcp pool NET3 network 192.168.30.0 255.255.255.0 default-router 192.168.30.3 class Class3 address range 192.168.30.130 192.168.30.135
ip dhcp class Class1 relay agent information relay-information hex 020c020a0000c0a80a010000000006076a616e6f673533
ip dhcp class Class3 relay agent information relay-information hex 0123456789 ! relay-information hex 020c020a0000c0a81e030000000006104e4554434f4e2d57656565656b212121
interface GigabitEthernet3 ip address 192.168.20.100 255.255.255.0 no shutdown
!router ospf 1 ! network 192.168.20.0 0.0.0.255 area 0 |
R3
hostname R3 no ip domain lookup
ip dhcp relay information option
interface GigabitEthernet3 ip address 172.16.0.30 255.255.255.0 no shutdown
interface GigabitEthernet4 ip dhcp relay information option subscriber-id NETCON-Weeeek!!! ip address 192.168.30.3 255.255.255.0 ip helper-address 192.168.20.100 no shutdown
router ospf 1 passive-interface GigabitEthernet4 network 172.16.0.0 0.0.0.255 area 0 network 192.168.30.3 0.0.0.0 area 0 |
FW
hostname FW no ip domain lookup
interface GigabitEthernet3 ip address 192.168.20.1 255.255.255.0 ip access-group 101 in no shutdown
interface GigabitEthernet4 ip address 172.16.0.1 255.255.255.0 ip access-group 100 in no shutdown
router ospf 1 network 192.168.20.0 0.0.0.255 area 0 network 172.16.0.1 0.0.0.0 area 0
ip access-list extended 100 10 permit udp host 192.168.30.3 eq bootps host 192.168.20.100 eq bootps ! 15 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps 20 deny udp any any 30 permit ip any any
ip access-list extended 101 10 permit udp host 192.168.20.100 eq bootps host 192.168.10.1 eq bootps ! 15 permit udp host 192.168.20.100 eq bootps host 192.168.30.3 eq bootps 20 deny udp any any 30 permit ip any any |
Comentarios