2021/9/30

udhcpc and dnsmasq -- release ip on exit

主要是要測試 udhcpc 的 -R (release ip) 功能。

所以準備兩台機器
  • server : run dnsmasq
  • client : run udhcpc
server 起來之後,可以在 /var/lib/dnsmasq/dnsmasq.leases 看到配發的 ip.


所以 client 用:
udhcpc -iwlan0 -R
可以看到取得 ip,然後用 ip addr 看 wlan0 有 ip address。
在 server 上 cat /var/lib/dnsmasq/dnsmasq.leases 可以看到 client 的 wlan0 mac 和配發的 ip

用 ps 看,udhcpc 在背景。
這時候在 client 上 kill udhcpc
再用 ip addr 看,wlan0 已經沒有 ip 了。
然後 server 的 /var/lib/dnsmasq/dnsmasq.leases 中,client 的那一行也被清掉。


如果不加上 -R
udhcpc -iwlan0
一樣,client 取得 ip,udhcpc 在背景。
server 的 dnsmasq.leases 有 client 的 mac 跟 ip

client kill udhcpc,之後確認 udhcpc 沒有在背景。
用 ip addr 看,wlan0 的 ip 還在。
server 的 dnsmasq.leases 中,client 的 ip 也還在。

如果不用 -R,然後要 udhcpc 取得 ip 後就退出,不要在背景。用 -q。
測試取得 ip 後, udhcpc 的確不會退到背景。


其他

udhcpc 在取得ip 後,會 執行 /usr/share/udhcpc/default.script
這個script 會依照 udhcpc call 他時給的參數,做:
  • 設定 interface 的 ip
  • 設定 route
  • 設定 resvolv.conf
其中 resolv.conf 是 /tmp/resolv.conf
猜是因為有些統是 readonly root,所以這樣,讓 /etc/resolv.conf link 到 /tmp/resolv.conf

沒有留言:

張貼留言