web-dev-qa-db-ja.com

ifconfigが新しいdhcp提供アドレスで更新されない

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
1
user760856

ドキュメントによると、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ではそれはできなくなりました)。

0
user760856