Ubuntu 17.10サーバーを使用してルーターとしてセットアップしたマシンがあります。
イーサネットポートが3つあります。1つはWAN [ここでは$ {WAN}と呼びます)として使用し、残りの2つはLANとしてブリッジしました。
私のWANアドレスは、DHCP経由で提供されるISPです。
/etc/network/interface
:
auto ${WAN}
iface ${WAN} inet dhcp
ddclient
がインストールされているため、動作するテスト用のスクリプトをセットアップしました。その出力は[セキュリティのために若干変更されています]:
=================================================
WAN IP: via 'ip -4 addr show ${WAN}'
24.163.176.94
174.109.187.251
=================================================
External IP: via 'curl http://icanhazip.com'
174.109.187.251
=================================================
nslookup of mylan.us.to:
174.109.187.251
ip -4 addr show ${WAN}
を介してリストされている2つのIPに注意してください。通常、ISPはこれら2つのIPアドレス間でランダムに切り替えます。このスクリプトの実行時、正しいIPは174.109.187.251アドレスです。これにより、ifconfig
が示したことを確認できました。
${WAN}: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 24.163.176.94 netmask 255.255.248.0 broadcast 24.163.185.255
ether 90:fb:a6:88:a1:7a txqueuelen 1000 (Ethernet)
RX packets 823978 bytes 141634338 (141.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93505 bytes 16976560 (16.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet
を介して表示されるifconfig
は、古い IPアドレスであることがわかります。
私はネットワークを再起動しようとしました:
Sudo service networking restart
また、マシンを再起動しました。 ifconfig
は引き続き間違ったIPを提供し、ip -4 addr show ${WAN}
は引き続き両方のIPを表示します。
これら2つの問題以外は、他のすべてが正常に機能しているようです。 NATはNATing、LANはWAN経由で転送、ddclient
は正しいIPアドレスで更新中などです。
私はUbuntuを初めて使用するので、デバッグスキルの限界に達したので、この古いIPアドレスが使用され続ける理由はありますか?
編集:
Sudo ifdown ${WAN}
Killed old client process
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/enp1s0/90:fb:a6:88:a1:7a
Sending on LPF/enp1s0/90:fb:a6:88:a1:7a
Sending on Socket/fallback
DHCPRELEASE on ${WAN} to 142.254.207.161 port 67 (xid=0x7948571c)
その後:
Sudo ifup ${WAN}
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/${WAN}/90:fb:a6:88:a1:7a
Sending on LPF/${WAN}/90:fb:a6:88:a1:7a
Sending on Socket/fallback
DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 3 (xid=0x92b2b512)
DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 6 (xid=0x92b2b512)
DHCPREQUEST of 174.109.187.251 on ${WAN} to 255.255.255.255 port 67 (xid=0x12b5b292)
DHCPOFFER of 174.109.187.251 from 69.134.11.87
DHCPACK of 174.109.187.251 from 69.134.11.87
bound to 174.109.187.251 -- renewal in 28592 seconds.
それでも、syslogでは:
5924:Nov 16 17:23:30 router systemd-networkd[528]: enp1s0: DHCPv4 address 24.163.176.94/21 via 24.163.72.1
なぜ違いがあるのですか?
/ etc/network/interfacesは非推奨になったと言ったコメンターの場合:
cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
${WAN}:
dhcp4: yes
ドキュメントによると、IFUPDOWNはUbuntu 17.10にプリインストールされていませんが、セットアップ中のある時点でインストールする必要があります(そうすることを覚えていませんが)。
その結果、IFUPDOWNでDHCPクライアント要求を作成し、ネットワークで2番目のDHCPクライアント要求を作成しました。 IFUPDOWNは私のISPから1つのIPを受け取り、ネットワークは別のIPを受け取ります。
私はネットワーキングを構成するIFUPDOWNの方法(およびその方法を使用するすべての「ルーターHOW-TOの構築」)に精通しているため、厳密にIFUPDOWNを使用することにしました。
NetPLANをさらに削除する前に、IFUPDOWNがインストールされていることを確認してください:Sudo apt-get install ifupdown
その後、次の手順でネットプランを無効にしました。
cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
${WAN}:
dhcp4: yes
これを次のように変更しました。
/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
...リブートして、2つの異なるDHCPが提供するIPアドレスで見ていた問題を修正しました。これにより、IFUPDOWNが期待どおりに正しく動作していることが確認されました。
私は3つの方法でこれをチェックしました:
ip -4 addr show ${WAN} | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
-DHCPが提供するアドレスを1つだけ表示しますcurl http://icanhazip.com
-期待している住所を見るroute
-チェーン内で予想されるアドレスを参照してください。次に、netplan wikiに従ってネットプランを無効にしました: https://wiki.ubuntu.com/Netplan grub config:/etc/default/grub
変更行:
GRUB_CMDLINE_LINUX="ipv6.disable=1 netcfg/do_not_use_netplan=true"
...実行:Sudo update-grub
、その後マシンを再起動しました。
次に実行しました:
journalctl -p err
Nov 17 11:09:42 router systemd[1]: Failed to start Raise network interfaces.
私はエラーを見たくないので、次を発行しました:Sudo rm /lib/systemd/system-generators/netplan
[これは/lib/netplan/generate
への単なるシンボリックリンクです]を再起動しました。
「journalctl -p err」、エラーなし。
grep netplan /var/log/syslog
Nov 17 13:12:07 router kernel: [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.13.0-16-generic root=UUID=1e26c91e-0805-44f7-9ae3-3a707fa0d311 ro ipv6.disable=1 netcfg/do_not_use_netplan=true
...エラーなし。
したがって、私が知る限り、netplanは事実上無効になっています(ただし、以前のバージョンでは、apt-getを使用して完全にアンインストールできましたが、17.10ではそれはできなくなりました)。