このトピックでは、複数のNICを持つLinux Elastic Compute Service (ECS) インスタンスで発生するネットワークインターフェイスコントローラー (NIC) ドリフトの問題を解決する方法について説明します。
問題の説明
O&M中に複数のNICを持つLinux ECSインスタンスにNICを追加または削除すると、LinuxオペレーティングシステムのNICのデバイス名と対応するメディアアクセス制御 (MAC) アドレスとの間に不一致が発生する可能性があります。 この問題はNICドリフトと呼ばれます。
この例では、MACアドレスが00:16:3e:10:bd:1bのeth1 NICと、MACアドレスが00:16:3e:0c:92:dfのeth2 NICを持つLinux ECSインスタンスでNICドリフトが発生します。 次の図に示すように、ip addr
コマンドを実行してNIC情報を照会すると、eth2 NICのMACアドレスがeth1 NICのMACアドレスとして表示されます。
原因
LinuxオペレーティングシステムのNIC情報は、/etc/udev/rules.d/70-persistent-net.ru lesファイルに保存されます。 ファイルが存在しないか、ファイルに誤った情報が含まれている場合、NICドリフトが発生する可能性があります。
解決策
Alibaba Cloudインスタンスの設定やデータの変更など、リスクの高い操作を実行する前に、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認して、データのセキュリティを確保します。 事前にスナップショットを作成することを推奨します。 スナップショットの詳細については、「概要」をご参照ください。
ユーザー名やパスワードなどの機密情報に対する権限を特定のユーザーに付与した場合、またはAlibaba Cloud管理コンソールで機密情報を送信した場合は、できるだけ早い機会に機密情報を変更することを推奨します。
Linuxオペレーティングシステムの /etc/udev/rules.d/70-persistent-net.ru lesファイルを変更して、各NICのデバイス名を対応するMACアドレスに関連付けます。
Linux ECSインスタンスに接続します。
詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行して、/etc/udev/rules.dディレクトリに移動します。
cd /etc/udev/rules.d
次のコマンドを実行して、/etc/udev/rules.d/70-persistent-net.ru lesファイルを開きます。
vi 70-persistent-net.rules
次のコマンドを実行して、各NICのデバイス名を対応するMACアドレスに関連付けます。
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="<MAC address of the NIC>", KERNEL=="eth*", NAME="<Device name of the NIC>"
たとえば、eth1 NICをMACアドレス00:16:3e:10:bd:1bに関連付けるには、次のコマンドを実行します。
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3e:10:bd:1b", KERNEL=="eth*", NAME="eth1"
次のコマンドを実行して、/etc/udev/rules.d/70-persistent-net.ru lesファイルのNIC設定を照会します。
cat 70-persistent-net.rules
次の図に示すコマンド出力が表示されます。
コマンド出力は、eth1 NICのMACアドレスが00:16:3e:10:bd:1bであり、NICドリフトが発生していないことを示しています。