dhclientが終了した場合、Linuxの動的IPアドレスを公開するプログラムは何ですか?

dhclientが終了した場合、Linuxの動的IPアドレスを公開するプログラムは何ですか?

dhclientが終了した後、短期的に動的IP損失は表示されません。その後、週末が過ぎると、動的IPアドレスが消えました。

どのプログラムで投稿したのか気になります。

ベストアンサー1

私のDebianシステムはNetworkManager + dhclientを使用して、dhclientによって割り当てられたIPにタイマーを設定します(初期設定はNetworkManagerによって変更されます)。このタイマーはカーネルによって直接管理されます。最近のインターフェースが登場したとき、次のようになりました。

# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 10.6.0.122/24 brd 10.6.0.255 scope global dynamic noprefixroute eth0
       valid_lft 7150sec preferred_lft 7150sec

更新がない場合、IPは7150秒以内にカーネルによって直接削除されます。リースを更新すると、この値が更新されます。これは間違いなく私のDHCPサーバーの設定に関連していますdefault-lease-time 7200;

以下は、インターフェイスに10秒のIPを追加する簡単な例ですlo

term1# ip -4 -o monitor addr|while read -r l; do printf '%s\n' "$l" | sed "s/^/$(date --iso-8601=s) /"; done
2018-11-19T21:10:18+00:00 1: lo    inet 10.1.1.1/32 scope global dynamic lo\       valid_lft 10sec preferred_lft 5sec
2018-11-19T21:10:23+00:00 1: lo    inet 10.1.1.1/32 scope global deprecated dynamic lo\       valid_lft 5sec preferred_lft 0sec
2018-11-19T21:10:28+00:00 Deleted 1: lo    inet 10.1.1.1/32 scope global deprecated dynamic lo\       valid_lft 0sec preferred_lft 0sec

2学期のとき:

term2# ip addr add dev lo 10.1.1.1 preferred_lft 5 valid_lft 10
term2# ip -4 -br a  show dev lo
lo               UNKNOWN        127.0.0.1/8 10.1.1.1/32 
term2# ip -4 -br a  show dev lo
lo               UNKNOWN        127.0.0.1/8 

Debian Stretchのdhclientはこれを処理しませんvalid_lft(しかしNetworkManagerはそれを追加します)。 CentOSなどの他のシステムでは、valid_lft次の行に示すようにdhclientによって処理されます/sbin/dhclient-script

351     # replace = add if it doesn't exist or override (update lifetimes) if it's there
352     ip -4 addr replace ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} \
353        valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time} >/dev/null 2>&1

したがって、特定の設定がvalid_lft異なる場合、forever答えはカーネルが実行するということです。

おすすめ記事