Ubuntu 18.04デスクトップで開発している小さなルーターがあり、イーサネットを接続せずに起動すると、Netplanが固定IPを割り当てていないようです(LAN側)。 WAN側はDHCPに接続されています。LANeth0インターフェースはisc-dhcp-serverが実行されているインターフェースです。
問題:eth0インターフェイスにIPアドレスが存在しないため、起動時にisc-dhcp-serverがクラッシュします。
Eth0に接続されたデバイスで手動で考える場合、すべてがうまく機能します。したがって、eth0に何かが接続されている場合、静的IPは機能しています。
192.168.10.1がプラグインされていない場合でも、eth0(このシステムではenp2s0)に割り当てるにはどうすればよいですか?
次の単一の.YAMLファイルがあります。
# Let NetworkManager manage all devices on this system
network:
ethernets:
enp2s0:
dhcp4: no
addresses:
- 192.168.10.1/24
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
search: []
enp3s0:
dhcp4: yes
version: 2
renderer: NetworkManager
または、接続されているインターフェースのトリガーに基づいてisc-dhcp-serverを起動(または再起動)する簡単な方法はありますか?
これは下記の非常によく似た質問でしたが、OPからクローズまたは検証されていませんでした...そして、これを達成する方法を見つけることに成功していません。どんな助けでもありがたいです。
Update 8/3/19:上記のようにw.r.t.サーバーを再起動したところ、ケーブルの状態は/ sys/class/net/enp2s0/carrierで確実に確認できることがわかりました。このファイルの値は、切断されている場合は0、接続されている場合は1です。
したがって、この値をテストするスクリプトを作成するのは非常に論理的です。値がゼロの場合は何もせず、値が0から1に変化した場合はコマンドを実行し、最後に値が1のままであるか1から0は何もしません。これを達成するためにどのようにbashスクリプトを記述しますか?
Update 8/14/19:以下の回答に従って解決策が見つかりました-ifupdownがインストールされていることを確認してください-私のシステムはインストールしていません。静的IPを取得するソリューションは信頼できると思われるので、スクリプトのアイデアを追求しませんでした。
netplanの場合は、この.yamlファイルを試してください...
network:
version: 2
renderer: networkd
ethernets:
enp2s0:
addresses:
- [192.168.10.1/24]
gateway4:
- 192.168.xx.xx
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
search: []
enp3s0:
dhcp4: yes
Sudo netplan --debug generate
Sudo netplan apply
reboot
NetworkManagerの場合、この.yamlファイルを使用します...
network:
version: 2
renderer: NetworkManager
Sudo netplan --debug generate
Sudo netplan apply
次に/etc/network/interfaces
を次のように編集します...
auto lo
iface lo inet loopback
auto enp2s0
iface enp2s0 inet static
address 192.168.10.1
netmask 255.255.255.0
gateway 192.168.xx.xx
dns-nameservers 8.8.8.8 1.1.1.1
auto enp3s0
iface enp3s0 inet dhcp
reboot
更新#1:
networkManagerを使用することにしました
インストール済みifupdown