
私はglibcを使用してbusyboxを実行するIoTデバイスを使用しています。 DHCPを設定すると自動的に更新さ/etc/network/interfaces
れます。をクリアして起動すると、これが表示されます。udhcpc
/etc/resolv.conf
/etc/resolv.conf
udhcpc
# udhcpc -i wlan0 --pidfile /tmp/udhpcp.pid
udhcpc: started, v1.26.2
udhcpc: sending discover
udhcpc: sending select for 172.20.53.151
udhcpc: lease of 172.20.53.151 obtained, lease time 46800
deleting routers
SIOCDELRT: No such process
adding dns 172.20.62.208
adding dns 172.20.108.123
ただし、静的構成設定がある場合は/etc/network/interfaces
何も更新されません/etc/resolv.conf
。/etc/resolv.conf
静的IP構成を使用するときはいつDNSサーバーを自動的に追加できますか?可能ですか?現在、このモジュールが静的IPとして設定されている場合、DNSホスト名またはIPは提供されません。静的IP構成を使用している場合は、これを提供する必要がありますか?
編集する:
さらに詳しく説明すると、デバイスはXML設定ファイルからネットワーク設定を取得します。ファイルには4つのフィールドがあります。
<NetworkConfig>
<IP>1.2.3.4</IP>
<NETMASK>255.255.240.0</NETMASK>
<GATEWAY>1.2.3.1</GATEWAY>
<DHCP>0</DHCP>
</NetworkConfig>
デバイスのプログラムはこの情報を取得してファイルを生成し/etc/network/interfaces
、DHCP = 0の場合は次の項目を生成します。
auto wlan0
iface wlan0 inet static
address 1.2.3.4
netmask 255.255.240.0
gateway 1.2.3.1
DHCP=1の場合、次の項目
auto wlan0
iface wlan0 inet dhcp
したがって、静的IPでデバイスを設定しようとすると、更新は発生せず、/etc/resolv.conf
XMLファイルにDNS情報は提供されません。自動的に更新できるアプリはありますか/etc/resolv.conf
? DNS情報はどこで/どのようにudhcpc
取得できますか?
答え1
udhcpc 使用スクリプト: /usr/share/udhcpc/default.script
DHCP 応答を受信した後にインターフェイスを設定します。スクリプトには変数があります。$dns
これはネームサーバーの配列です。$dns
目的の2つのネームサーバーの変数のオーバーライドを含む、必要な操作を実行するようにスクリプトを編集できます。
dns="8.8.8.8 8.8.4.4"