複数のLinuxリモートホストで対応するリモートDHCPサーバーをテストしたい(このサーバーは別のホストにあり、それにアクセスできません)。
SSHを使用してこれらのホストに接続して再起動したり、eth0設定を変更したくありません。
私は基本的なDHCP情報を取得する方法を知っています。nmap --script broadcast-dhcp-discover
これは非常に有用な情報を提供します。しかし、私たちはバグのあるDHCPサーバーを扱っているので、時間の経過とともにそれをテストするために「実際の」ネットワークインターフェースを設定したかったのです。
ネットワークインタフェースeth0:1を使用すると、dhclientは操作の実行を拒否します。
ip addr add 192.168.0.123/24 label eth0:1 dev eth0
dhclient -v eth0:1
# --> dhclient displays: Bind socket to interface: No such device
その後、仮想ネットワークインターフェイスを作成して接続してみました。ただし、これにより不要なeth0構成が変更されます。
ip link add br0 type bridge # create a bridge
# in one line, so the ssh connection is not lost (can additionnaly be wise
# to use "screen" but I currently do the tests on a local computer):
ip addr del 192.168.0.30/24 dev eth0; \
ip addr add 192.168.0.30/24 dev br0; \
ip link set dev eth0 master br0; \
ip link set dev br0 up
modprobe dummy # create dummy0
ip link set dev dummy0 master br0
これで、eth0にDHCPをリースできます。dhclient -v eth0
素晴らしい作品。
ただし、dhclient -v dummy0
DHCPリースは取得されません(エラーは表示されません)。
--> eth0(eth0をブリッジの一部にするデバイス)に触れることなく、物理ネットワークに正しくブリッジされるネットワークインターフェイスをどのように生成しますか?