適用対象: ✔️ Linux VM
元の KB 番号: 4010059
Note
この記事で参照されている CentOS は Linux ディストリビューションであり、EOL (End Of Life) に到達します。 適宜、使用と計画を検討してください。 詳細については、「 CentOS End Of Life ガイダンスを参照してください。
この記事では、ネットワーク エラーによって Azure Linux 仮想マシンに接続できなくなる問題を修正します。
現象
Azure Linux 仮想マシン (VM) 上のプライマリ インターフェイスは eth0 です。 eth0 が構成されていない場合、他のツールが VM が稼働中であることを示している場合でも、ネットワーク接続経由で VM にアクセスできません。
問題が発生すると、適切なアクセス許可を持つ Secure Shell (SSH) 接続が VM への接続を開始する可能性があります。 ただし、ネットワークの問題のため、最終的には VM にアクセスできません。
ネットワーク エラーは通常、シリアル コンソール ログに記録されます。 具体的には、次のエラーが表示される場合があります。
シリアル コンソール ログのエラー
CentOS Linux ディストリビューション エラー
エラー 1
Bringing up interface eth0:
Device eth0 does not seem to be present, delaying initialization.
[FAILED]
エラー 2
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Device eth0 has different MAC address than expected, ignoring.
[FAILED]
エラー 3
YYYY/MM/DD HH:MM:SS Discovered Windows Azure endpoint: ###.##.###.##
/usr/sbin/waagent:2275: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
Error('socket IOError ' + e.message + ' args: ' + repr(e.args))
YYYY/MM/DD HH:MM:SS ERROR:socket IOError args: (113, 'No route to host')
YYYY/MM/DD HH:MM:SS ERROR:socket IOError args: (113, 'No route to host')
Failed services in runlevel 3:network
エラー 4
login: YYYY/MM/DD HH:MM:SS ERROR:timed out
YYYY/MM/DD HH:MM:SS ERROR:Traceback (most recent call last):
YYYY/MM/DD HH:MM:SS ERROR: File "/usr/sbin/waagent", line 3395, in DoDhcpWork
YYYY/MM/DD HH:MM:SS ERROR: receiveBuffer = sock.recv(1024)
YYYY/MM/DD HH:MM:SS ERROR:timeout: timed out
YYYY/MM/DD HH:MM:SS ERROR:
YYYY/MM/DD HH:MM:SS DoDhcpWork: Setting socket.timeout=10, entering recv
YYYY/MM/DD HH:MM:SS ERROR:timed out
YYYY/MM/DD HH:MM:SS ERROR:Traceback (most recent call last):
YYYY/MM/DD HH:MM:SS ERROR: File "/usr/sbin/waagent", line 3395, in DoDhcpWork
YYYY/MM/DD HH:MM:SS ERROR: receiveBuffer = sock.recv(1024)
YYYY/MM/DD HH:MM:SS ERROR:timeout: timed out
Customer changed the IP from DHCP to FIXED
SUSE Linux ディストリビューション エラー
Setting up (localfs) network interfaces:
lo
lo IP address: 127.0.0.1/8
IP address: 127.0.0.2/8
done eth4
No configuration found for eth4
unused Waiting for mandatory devices: eth0
29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
eth0 No interface found
Ubuntu
エラー 1
cloud-init-nonet waiting 120 seconds for a network device.
cloud-init-nonet gave up waiting for a network device.
ci-info: lo : 1 127.0.0.1 255.0.0.0 .
ci-info: eth1 : 0 . . 00:0d:3a:10:6a:53
route_info failed
Waiting for network configuration...
Waiting up to 60 more seconds for network configuration...
Booting system without full network configuration...
エラー 2
ci-info: | eth0 | False | . | . | 00:0d:3a:21:f9:ad |
ci-info: +--------+-------+-----------+-----------+-------------------+
ci-info: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Route info failed!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ i=eth0
+ x=0
+ ifdown eth0
ifdown: interface eth0 not configured
+ ifup eth0
Missing required variable: address
Missing required configuration variables for interface eth0/inet.
Failed to bring up eth0.
+ exit 0x\
解決方法
CentOS の場合
/etc/sysconfig/network-script
の下にある ifcfg-eth0 ファイルから HWADDR ディレクティブを削除します。
SUSE Linux の場合
/etc/udev/rules.d
の eth0 または eth1 のエントリを含むファイルを削除します。
Ubuntu の場合
エラー 1
このエラーは、eth0 ではなく aneth1 インターフェイスが構成されていることを示します。 これは、VM 上のオペレーティング システムに udev の更新プログラムがインストールされていない場合に発生する可能性があります。 このような場合は、 udev 前のネットワーク インターフェイスを誤って保存します。 VM のサイズが変更または移動されると、別の MAC アドレスが受信され、eth1 に割り当てられます。
Note
シリアル ログからイメージのバージョンを確認できます。 非常に古い Ubuntu カーネル (2014 年 1 月にリリースされた 3.2.0-58.88 など) が見つかった場合は、オペレーティング システムが更新されていないことを示します。
この問題を解決するには、OS ディスクを実行中の別の VM に接続し、 /etc/udev/rules.d/70-persistent-net.rules
の udev ルール ファイルを削除します。
今後この問題を回避するには、VM 上の udev パッケージを更新することをお勧めします。 たとえば、次のコマンドを実行します。
sudo apt-get update
sudo apt-get install udev
エラー 2
この問題を解決するには、 /etc/network/interfaces.d/eth0.cfg
ファイルを既定値にリセットし、IP アドレスを取得するように Azure DHCP に要求します。 次に、キャッシュされた DHCP 設定を含む /var/lib/dhcp
フォルダー内のファイルを削除します。 既定の eth0.cfg ファイルの例を次に示します。
# The primary network interface
auto eth0
iface eth0 inet dhcp
カスタマイズされた Linux オペレーティング システムで問題を解決する
ネットワークの問題が発生している VM でアップロードされた VHD が使用されている場合は、作業ギャラリー イメージに基づいてネットワークの構成を試みることができます。 これを行うには、問題のあるディスクをデータ ディスクとしてギャラリー VM に接続し、次のコマンドを実行します。
fdisk -l
df -h
mount /dev/sdc1 /temporary
df -h
cd /temporary/etc/udev/rules.d
ls -ltr
mv 70-persistent-net.rules /temporary/root/
cd ../../network
ls
mv interfaces interfaces.org
ls -ltr
作業中の VM から現在のフォルダー ファイルにコピーします。
cp /etc/network/interfaces .
cp -R /etc/network/interfaces
cp -R /etc/network/interfaces.d .
cp -R /etc/network/interfaces.dynamic.d .
ls -ltr
cd ..
cd
umount /mnt
ギャラリー VM にデータ ディスクを接続する方法の詳細については、「 Azure portal で Windows VM にデータ ディスクを接続する方法を参照してください。
リファレンス: オペレーティング システムのネットワーク ファイル
ネットワーク カードの構成
/etc/sysconfig/network-scripts/ifcfg-eth0 ..ifcfg-eth0:1 (Centos, Oracle)
/etc/sysconfig/network/ifcfg-eth0 (SuSE)
/etc/network/interfaces (Ubuntu)
ホスト名の構成
/etc/sysconfig/network (Centos , Oracle)
/etc/HOSTNAME (SuSE)
/etc/hostname (Ubuntu)
DNS 構成ファイル
/etc/resolv.conf
/etc/nsswitch.conf
既定のゲートウェイの構成ファイル
set in ifcfg-ethn or /etc/sysconfig/network
/etc/sysconfig/network/route (SuSE)
/etc/network/interfaces (Ubuntu)
静的ルート
/etc/sysconfig/network-scripts/route-ethX (Centos, Oracle)
/etc/sysconfig/network/routes (SuSE)
/etc/network/interfaces (Ubuntu)
ファイアウォール規則
/etc/sysconfig/iptables (centos, Oracle)
/etc/sysconfig/SuSEfirewall2.d/services (SuSE)
/etc/ufw/ufw.conf (Ubuntu)
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。