IPアドレスが割り当てられない!
お疲れ様です。「IPアドレスが割り当てられない!」作問者の岩橋です。DHCPサーバ一つで異なるセグメントのクライアントにもIPを振りたいシチュエーションがあったき、DHCP relay agentを使ってDHCP requestを通過させるという問題でした。
設定中にIPの設定を吹き飛ばしてしまったのか、リセット依頼がたくさん来ました。
問題
問題文
VM(DHCP_Client)に 192.168.12.0/26 の範囲のIPアドレスを割り当てたいのだが、うまくいかない。 既存のDHCPサーバ(DHCP_Server)に既に導入されているdnsmasqを利用して、IPアドレスが割り当てられるように設定を変更してほしい。
開始状態
DHCP_Clientの eth0 にIPアドレスが割り当てられていない
終了状態
DHCP_Clientの eth0 にDHCP_Serverで動いているdnsmasqから 192.168.12.0/26 のIPアドレスが割り当てられている
解説
この問題のトポロジーは次のようなものでした、
############### ########## ############### # DHCP_Client # (eth0)---(eth0) # Router # (eth1)---(eth0) # DHCP_Server # ############### ########## ###############
Routerの設定
この図からわかるように、DHCP_Router
の通信がDHCP_Client
に到達するためにはRouter
を通る必要があります。しかし、DHCP Request
パケットは初期状態ではRouter
を通過できません。
そこで、Router
のDHCP Relay Agent
機能を有効にします。
VyOSにログイン後、設定モードに移行し次のコマンドを実行します。
conf
set service dhcp-relay interface eth0
set service dhcp-relay interface eth1
set service dhcp-relay server 192.168.12.193
commit
save
この操作により、DHCP_Client
によるDHCP Request
はRouter
を通過し、DHCP_Server
に到達することができます。
DHCP_Serverの設定
次にDHCP_Server
の設定を行います。
終了状態より、DHCP_Client
に192.168.12.0/26のIPを振らなければならないのに対し、既存の設定では/24になっています。そこで/etc/dnsmasq.conf
内のサブネットマスクを255.255.255.0(/24)
から255.255.255.194(/26)
に修正してdnsmasqをrestartします。
DHCP_Clientの設定
最後にDHCP_Client
の設定を行います。
具体的には、DHCPによりIPアドレスを自動で振られるようにします。
network:
version: 2
ethernets:
eth0:
dhcp4: true
採点基準
- dnsmasqの設定の修正 50%
- Vyosの設定の修正 50%