DHCP IPアドレスを「予測」する方法は?

DHCP IPアドレスを「予測」する方法は?

私のスクリプトで仮想マシンを起動する前に、どのIPアドレスを受け取るのかを知る必要があります。

だから私はこれをしました:

dhclient <interface>

dhclientこれは、指定されたインターフェイスのMACアドレスが使用され、macvtapDHCPサーバーからIPアドレスが返されるために機能します。

同じMACに対して常に同じIPを返さないルーターが自宅にいる人がいる可能性があるため、これは完璧なソリューションではありません。しかし、それは私が所有しているすべてのルーターに当てはまります。したがって、99%の時間で動作する場合はそれで十分です。

しかし、問題は、dhclientホストシステムでそのアドレスを実際に使用したいと思うので、ローカル設定も変更することです。これを防ぐフラグがありますが、-nDebian や他のほとんどのディストリビューションではサポートされません。

それでは、実際にホストの設定を変更せずに特定のMACアドレスを提供するIPをDHCPサーバーに尋ねる最善の方法は何ですか?

ベストアンサー1

dhcpローカル設定を直接変更せずにリースを取得し、スクリプトを呼び出します(/sbin/dhclient-scriptDebianではデフォルト)。

独自のスクリプトを指定-sfし、$new_ip_addressリースされたIPを見つけるために使用できます。一つある専用マンページこのタイプのスクリプトについてです。

dhcpリースを受け取ると実行が継続されるため、停止する必要があります。デフォルトではpidはに保存されますが、を/var/run/dhclient.pid使用して変更できます-pf

サンプルスクリプト:

#!/bin/sh

case $reason in
BOUND|RENEW|REBIND|REBOOT)
    echo "MY IP IS " $new_ip_address
    kill $(cat /var/run/dhclient.pid)
    ;;
*)
    ;;
esac

その後、実行すると:

dhclient -sf /path/to/your_script -d  interface 2>&1 | grep "MY IP"

価値を得るでしょう。

この場合、結果が異なる可能性があるため、他のDHCPクライアントプロセス(dhclient、、...)との対話を避けてください。NetworkManager

おすすめ記事