Ubuntu 16.04.1 LTS サーバーで IPv4 を有効にする方法

Ubuntu 16.04.1 LTS サーバーで IPv4 を有効にする方法

Ubuntu 16.04.1 LTS ホストで VirtualBox を実行しています。新しい仮想マシンを作成し、ネットワーク タイプを「ブリッジ アダプタ」に設定しました。その後、ゲストに 16.04.1 LTS をインストールしましたが、そこから外部 IPv4 アドレスに接続できません。

「ifconfig」を実行すると、IPv6 アドレスのみが表示されます。

$ ifconfig enp0s3
enp0s3    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet6 addr: fd00:xx:xx:xx:xx:xx:xx:xx/64 Scope:Global
          inet6 addr: fe80::xx:xx:xx:xx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:933 errors:0 dropped:0 overruns:0 frame:0
          TX packets:751 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:101012 (101.0 KB)  TX bytes:144480 (144.4 KB)

IPv6アドレスを使用してホストからゲストにSSH接続できます。これ質問ですが、ネットワーク マネージャーがインストールされておらず (IPv4 が機能するまでインストールできません)、他の唯一のコマンド「sudo ip link set enp0s3 up」も役に立ちませんでした。また、質問では WiFi については触れられていませんが、回答では WiFi が前提となっているようで、私は WiFi ではなく有線接続を使用しています。

私の /etc/network/interfaces ファイルは非常に汎用的ですが、コメントには IPv6 インターフェイスであることが示されています。そうは言っても、なぜそうなるのかはわかりません。すべてのパラメータは IPv4 に対して正しいです。

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# This is an autoconfigured IPv6 interface
auto enp0s3
iface enp0s3 inet dhcp

私の neworking.service ステータスを見ると、ネットワーク サービスの起動を開始してから実際に起動するまでに 5 分のギャップがあることがわかります。何が起こっているのかわかりません。

$ systemctl status networking.service
● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/networking.service.d
           └─50-insserv.conf-$network.conf
   Active: active (exited) since Wed 2017-06-14 09:33:00 EDT; 55min ago
     Docs: man:interfaces(5)
  Process: 2335 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
  Process: 1947 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=
 Main PID: 2335 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
      CPU: 0
   CGroup: /system.slice/networking.service

Jun 14 09:27:58 chris-ubuntu systemd[1]: Starting Raise network interfaces...
Jun 14 09:28:01 chris-ubuntu ifup[2335]: /sbin/ifup: waiting for lock on /run/network/ifstate.enp0s3
Jun 14 09:33:00 chris-ubuntu systemd[1]: Started Raise network interfaces.

dhclient を手動で実行すると、ハングします。Syslog には次のログが含まれます。

Jun 14 10:39:13 chris-ubuntu dhclient[3061]: DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 10 (xid=0x4dfcbf2b)
Jun 14 10:39:16 chris-ubuntu dhclient[2377]: DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 4 (xid=0x25d1c331)
Jun 14 10:39:20 chris-ubuntu dhclient[2377]: No DHCPOFFERS received.
Jun 14 10:39:20 chris-ubuntu dhclient[2377]: No working leases in persistent database - sleeping.
Jun 14 10:39:23 chris-ubuntu dhclient[3061]: DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 15 (xid=0x4dfcbf2b)

ホスト VirtualBox は DHCP サーバーとして機能しているため、応答するはずなので、これは奇妙に思えます。

答え1

IPv4 は必要ありません。上記の設定は少し奇妙です (パブリック IPv6 アドレスなし)。ネットワーク管理者への最初の質問は、Web プロキシを提供していますか? 提供している場合は、プロキシ設定を変更して、IPv4 専用ホストへのアクセスを含めることができます。ただし、IPv6 グローバル ユニキャスト アドレスの方が望ましいです。その場合、DNS (DNS64/NAT64) によって問題が解決されます。プロキシでも同様の効果が得られます。

関連情報