Linuxローカル仮想ネットワークインタフェースでDHCPサーバーとクライアントを設定する方法

Linuxローカル仮想ネットワークインタフェースでDHCPサーバーとクライアントを設定する方法

私の仕事をするには、ローカルLinuxシステムでdhcpクライアントとサーバーの交換をダンプする必要があります。

  1. まず、ISC dhcpソースからdhcpサーバーとクライアントを複製して構築しました。https://github.com/isc-projects/dhcp
  2. 私の実験のために、BridgeでTapインターフェースを作成して設定します。
sudo ip link add test_eth0 type tap
sudo ip link add test_eth1 type tap
sudo ip link add test_eth2 type tap

sudo ifconfig test_eth0 up
sudo ifconfig test_eth1 up
sudo ifconfig test_eth2 up

sudo ifconfig test_eth0 10.1.1.7 netmask 255.255.255.0 up

sudo ip link add test_br0 type bridge
sudo ip link set dev test_eht0 master test_br0
sudo ip link set dev test_eht1 master test_br0
sudo ip link set dev test_eht2 master test_br0
sudo ip link set test_br0 up
  1. dhcpd サーバーの起動

sudo ./dhcpd -d -f # start dhcp daemon in foreground mode

dhcpd.confを使用してください:

...
subnet 10.1.1.0 netmask 255.255.255.0 {
  range 10.1.1.3 10.1.1.254;
  option routers 10.1.1.1; 
}
...
  1. 指定されたターゲットインターフェイスとdhcpサーバーに対してdhclientを起動します。

sudo ./dhclient -lf ./dhclient.leases test_eth1 -s 10.1.1.0 -v

クライアント出力:

...
DHCPDISCOVER on test_eht1 to 10.1.1.0 port 67 interval 3
DHCPDISCOVER on test_eht1 to 10.1.1.0 port 67 interval 6
DHCPDISCOVER on test_eht1 to 10.1.1.0 port 67 interval 11
...

クライアントを起動した後、実行中のサーバーを検出してtest_eth1インターフェイスに動的アドレスを提供し、dhcpdumpを使用してダンプできると予想しましたが、思ったほどネットワーキングにはうまくいきませんでした。

ベストアンサー1

1つ以上のテストインターフェイスに手動でアドレスを割り当てる必要があり、DHCPサーバーはそのインターフェイスにバインドし、そのアドレスを別のインターフェイスにデプロイします。

これは、dhcpdはどのインターフェイスにバインドするかを知る方法がないためです。

また、すべてのテストインターフェイスをブリッジに追加して一緒に「接続」する必要があります。

おすすめ記事