ifupdownはdhclientパラメータを変更します。

ifupdownはdhclientパラメータを変更します。

私はUbuntu 20.04を持っていて、すべてのネットワーク機能をifupdownに与えました。

私のインターフェイス1はdhclientを介してネットワークパラメータを取得します。

#/etc/network/interfaces
allow-hotplug enp2s0
auto enp2s0
iface enp2s0 inet dhcp

Dhclientは次のパラメータで始まります。

#ps -Af | grep dhclient

/sbin/dhclient -1 -4 -v -i -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0

DHクライアントバージョン:

# dhclient --version
isc-dhclient-4.4.1

クライアント構成:

# cat /etc/dhcp/dhclient.conf 
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;

timeout 60;
retry 60;
reboot 10;
reject 10.100.0.2;

次のようにdhclient起動パラメータを変更する方法(-1なしでデーモンモードで起動したい)を検索するのに疲れました。

/sbin/dhclient -nw -4 -v -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0

どうすればいいですか?

ありがとうございます!

答え1

dhclient実行パラメータはifupdown内にハードコードされており、他の場所では変更できません。

しかし、解決策を見つけました。

  1. ifup コマンドで dhclient が起動しないようにするには、インターフェイスを静的に設定します。
  2. 必要なパラメータを使用して辞書フックを介してdhclientを実行します。
allow-hotplug enp2s0
auto enp2s0
iface enp2s0 inet static
    address 192.168.1.1
    netmask 255.255.255.255

    pre-up /sbin/dhclient -4 -v -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0 
    pre-down /sbin/dhclient -4 -v -r -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0

関連情報