top of page

JANOG 53 NETCON 問題解説 Level2-5

JANOG 53 にスタッフ(NETCON委員)として参加させていただきました。 作成した問題について、回答と解説を記載します。 Level2-5 DHCPリレー問題



技術要素

DHCP Relay(ACL)

構成解説

・CSR1000v x 3, Linux x 1 

問題文

PC1はR2からDHCPによってIPアドレスを取得します。

IPアドレスの取得がうまくいきません。

以下のようにPC1がDHCPでIPアドレスを取得できるようにしてください。

(取得するIPアドレスはレンジ内であれば不問です)

PC1:~# udhcpc -i eth1
udhcpc: started, v1.36.0
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.10.103, server 192.168.20.100
udhcpc: lease of 192.168.10.103 obtained from 192.168.20.100, lease time 86400

制約 R2によってDHCPでIPアドレスを払い出す必要があります。

 R1/FWをDHCPサーバ/DHCPクライアントにしてはいけません。

FWは、DHCPリレーエージェント:192.168.10.1 が DHCPサーバ:192.168.20.100 宛に送信するDHCPリレーのパケットのみ通過させ、

 それ以外のUDPパケットをフィルタする必要があります。

・FWでは、既存の設定を削除したり、ACLの適用を無効化してはいけません。新たな設定を追加してもいけません。

 必ず設定内容の変更で対応してください。


 例:ACL100 seq 10 の設定を削除→×、ACL100 seq 5 を追加→×

   ACL100 seq 10 の設定を修正→〇


・新たなインターフェースを作成したり、PBRを設定してはいけません。



問題解説 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

^C

取得に失敗しています。

 構成的に、R1にはDHCPリレーの設定が必要になります。

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.1

(略)

R1#sh run int g4

Building configuration...

Current configuration : 153 bytes

!

interface GigabitEthernet4

ip address 192.168.10.1 255.255.255.0

ip helper-address 192.168.20.1

helper-address に 192.168.20.1 (FW) のIPアドレスが設定されてしまっています。

hepler-address を 192.168.20.100 (R2) に修正します。

R1

interface GigabitEthernet4

 no ip helper-address 192.168.20.1

 ip helper-address 192.168.20.100

R1#sh run int g4

Building configuration...

Current configuration : 155 bytes

!

interface GigabitEthernet4

ip address 192.168.10.1 255.255.255.0

ip helper-address 192.168.20.100

R1はR2にユニキャストで DHCP discover を転送する必要があるため、IPの疎通性があるか、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/11/51 ms

大丈夫のようなので、もう一度IPアドレスを取得してみます。

PC1:~# udhcpc -i eth1

udhcpc: started, v1.36.0

udhcpc: broadcasting discover

udhcpc: broadcasting discover

udhcpc: broadcasting discover

^C

まだ取得できません。

R1から転送された DHCP discover がR1/R2まで届いているか、debug  ip dhcp server packet で確認してみます。

R1#debug ip dhcp server packet

DHCP server packet debugging is on.


R1#term monitor

R2#debug ip dhcp server packet

DHCP server packet debugging is on.


R2#term monitor


PC1:~# udhcpc -i eth1

udhcpc: started, v1.36.0

udhcpc: broadcasting discover

udhcpc: broadcasting discover

udhcpc: broadcasting discover

^C


R1#

*Dec 25 04:15:16.690: Option 82 not present

*Dec 25 04:15:16.690: DHCPD: tableid for 192.168.10.1 on GigabitEthernet4 is 0

*Dec 25 04:15:16.690: DHCPD: client's VPN is .

*Dec 25 04:15:16.690: DHCPD: No option 125

*Dec 25 04:15:16.690: DHCPD: No option 124

*Dec 25 04:15:16.690: DHCPD: Option 125 not present in the msg.

*Dec 25 04:15:16.690: Option 82 not present

*Dec 25 04:15:16.690: Option 82 not present

*Dec 25 04:15:16.690: DHCPD: Option 125 not present in the msg.

*Dec 25 04:15:16.690: DHCPD: Looking up binding using address 192.168.10.1

*Dec 25 04:15:16.690: DHCPD: setting giaddr to 192.168.10.1.

*Dec 25 04:15:16.691: DHCPD: BOOTREQUEST from 01aa.c1ab.e4a4.32 forwarded to 192.168.20.100


R2#

(何も表示されず)

R1は、リレー先である 192.168.20.100 に転送した内容のメッセージが表示されますが、

R2に何も表示されないので、R2までDHCP discover が届いていない可能性があります。


R1とR2の間にあるFWの設定を確認してみます。

FW#sh run | sec access

ip access-group 100 in

ip access-list extended 100

10 permit udp host 192.168.10.1 eq bootpc host 192.168.20.100 eq bootps

20 deny udp any any

30 permit ip any any

FW#sh run int g4

Building configuration...

Current configuration : 143 bytes

!

interface GigabitEthernet4

ip address 172.16.0.1 255.255.255.0

ip access-group 100 in

negotiation auto

FW#show access-lists 100

Extended IP access list 100

10 permit udp host 192.168.10.1 eq bootpc host 192.168.20.100 eq bootps

20 deny udp any any (55 matches)

30 permit ip any any (462 matches)

FWのG4では ACL100 がIN方向に適用されています。


もう一度IPアドレスの取得を試みます。

PC1:~# udhcpc -i eth1

udhcpc: started, v1.36.0

udhcpc: broadcasting discover

udhcpc: broadcasting discover

^C


FW#show access-lists 100

Extended IP access list 100

10 permit udp host 192.168.10.1 eq bootpc host 192.168.20.100 eq bootps

20 deny udp any any (66 matches)

30 permit ip any any (483 matches)

ACL100 の seq 20 がカウントアップするので、ここでフィルタされている可能性があります。

ACL100 の seq 10 をよく見ると、Src Port が bootpc (68) になっています。

FW#sh run | sec access

ip access-group 100 in

ip access-list extended 100

10 permit udp host 192.168.10.1 eq bootpc host 192.168.20.100 eq bootps

20 deny udp any any

30 permit ip any any


FW(config-ext-nacl)#10 permit udp any eq ?

<0-65535> Port number

biff Biff (mail notification, comsat, 512)

bootpc Bootstrap Protocol (BOOTP) client (68)

bootps Bootstrap Protocol (BOOTP) server (67)

discard Discard (9)

dnsix DNSIX security protocol auditing (19

通常の DHCP Client からの パケットは SrcPort:68、DstPort:67 ですが、

DHCPリレーエージェントによってリレーされるパケットは SrcPort:67、DstPort:67 となるので

ACLの許可設定でSrcPortを修正する必要があります。



ACLを修正します。

FW ip access-list extended 100

 no 10

 10 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps

FW#sh access-lists 100

ip access-group 100 in

ip access-list extended 100

10 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

再度PC1でIP取得を試みます。

PC1:~# udhcpc -i eth1

udhcpc: started, v1.36.0

udhcpc: broadcasting discover

udhcpc: broadcasting select for 192.168.10.100, server 192.168.20.100

udhcpc: lease of 192.168.10.100 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.10.1 eq bootps host 192.168.20.100 eq bootps (2 matches)

20 deny udp any any (67 matches)

30 permit ip any any (499 matches)

R2#

*Dec 14 09:32:17.082: Option 82 not present

*Dec 14 09:32:17.082: Option 82 not present

*Dec 14 09:32:17.082: DHCPD: Option 125 not present in the msg.

*Dec 14 09:32:17.082: DHCPD: Selecting relay q from pool

*Dec 14 09:32:17.082: DHCPD: Attempt ping to check address available

*Dec 14 09:32:17.082: DHCPD: Saving workspace (ID=0xE1000004)

*Dec 14 09:32:17.082: DHCPD: New packet workspace 0x7FCD1FD53BE0 (ID=0x5D000005)

R2#show 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.100 01aa.c1ab.e4a4.32 Dec 26 2023 04:46 AM Automatic Active GigabitEthernet3

PC1へのIPアドレス割り当てに成功しました。


正解例


R1 interface GigabitEthernet4

 no ip helper-address 192.168.20.1

 ip helper-address 192.168.20.100


FW ip access-list extended 100

 no 10

 10 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps

以下は制約事項に違反するので不正解になります。

・R1/FWをDHCPサーバにする

・FWのG4へのACL100の適用を無効化する

・ACL100自体を削除する

・ACL100 の 許可設定を 10 permit udp any any のように設定する 初期config


R1

hostname R1

no ip domain lookup

 

interface GigabitEthernet3

 no shutdown

 ip address 172.16.0.10 255.255.255.0

 

 

interface GigabitEthernet4

 no shutdown

 ip address 192.168.10.1 255.255.255.0

 ! ip helper-address 192.168.20.100

 ip helper-address 192.168.20.1

 

router ospf 1

 passive-interface g4

 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 pool NET1

 network 192.168.10.0 255.255.255.0

 default-router 192.168.10.1

 

interface GigabitEthernet3

 no shutdown

 ip address 192.168.20.100 255.255.255.0

 

router ospf 1

 network 192.168.20.0 0.0.0.255 area 0

 FW

hostname FW

no ip domain lookup

 

interface GigabitEthernet3

 no shutdown

 ip address 192.168.20.1 255.255.255.0

 

interface GigabitEthernet4

 no shutdown

 ip address 172.16.0.1 255.255.255.0

 ip access-group 100 in

 

router ospf 1

 network 192.168.20.0 0.0.0.255 area 0

 network 172.16.0.0 0.0.0.255 area 0

 

ip access-list extended 100

 ! 10 permit udp host 192.168.10.1 eq bootps host 192.168.20.100 eq bootps

 10 permit udp host 192.168.10.1 eq bootpc host 192.168.20.100 eq bootps

 20 deny   udp any any

 30 permit ip any any


タグ:

Comments


最新記事
アーカイブ
タグから検索
ソーシャルメディア
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page