web-dev-qa-db-ja.com

Ubuntu:eth0とeth1をどのように交換しますか? (VirtualBoxVM内のUbuntu13.10サーバー)

Ubuntu 13.10サーバー(64ビット)をVirtualBox 4.3.6 VM(Windows Host)に1つのNATアダプターが割り当てられた状態でインストールしました。デフォルト以外の唯一のアダプターインストール中に選択されたソフトウェアはOpenSSHでした。これまでのところ良好です...私は世界にpingを送信でき、アドレスは予想どおり10.0.2.15です(ifconfigごとにNATアダプターはこの時点でeth0です) )。

ポートマッピングなしでホスト経由でVMにアクセスしたい。ブリッジングはオプションではないため(ホストの外部から2番目の直接IPを取得できない)、ホストを作成しました-唯一のアダプター(DHCPが有効ですべて)、/ etc/network/interfacesを編集(eth1のeth0のデフォルトを複製)、VMをシャットダウン、新しいホストのみのアダプターを接続(選択)準仮想化)、および再起動しました。

この時点で、/ etc/network/interfacesには次のものが含まれていました。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

そして確かにそれはすべて機能します...しかしifconfigごとにNATアダプターはeth1になり、新しく追加されたホストオンリーアダプターはeth0になります。逆にしたいのですが-そしてそれはあらゆる問題に!

最初に、MACアドレスをインターフェイスファイルに追加してみました。たとえば、「hwaddress ether xx:xx:xx:xx:xx:xx」は、eth0とeth1用であると予想されます。喜びはありません...それはネットワークを完全に壊してしまいます。私はそれらの行をコメントアウトして再起動しました(実際には、そのホスト専用アダプターを無効にして再度再起動する必要がありました。その後、最終的に再度有効にすることができました...これが手がかりかもしれません)。

さらに読むと、MACアドレスを交換するために/etc/udev/rules.d/70-persistent-net.rulesを更新するための多くの参照があります。いい案! a README file /etc/udev/rules.d以外は完全に空です。 "Sudoを試しましたudevadmトリガー」(およびそのいくつかの順列)...変更なし。

質問#1:70-persistent-net.rulesはどうなりましたか?非推奨ですか?/etc/udev/rules.dはREADMEファイルを除いて空です。

次に、私は以下を試しました:

Sudo ifconfig eth0 down Sudo ifconfig eth1 down Sudo ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx Sudo ifconfig eth1 hw ether yy:yy:yy:yy:yy:yy Sudo ifconfig eth0 up Sudo ifconfig eth1 up

うーん。 ifconfigは予想されるMACアドレスを報告するようになりましたが、IPアドレスはそのままです。だから私は再起動します...

また、ネットワークが壊れています(/etc/init/failsafe.confを編集して、ネットワークのデバッグプロセス中のネットワーク遅延を短縮するメリットを学ぶのは、この時点です)。/etc/network/interfacesの内容は、上記の外観から変更されていません。 ifconfigは、上記のMACアドレスを実際に交換したにもかかわらず、eth0とeth1が同じ(NATアダプターMAC)アドレスを持っていることを報告するようになりました。同じ手順でMACを復元し、再起動すると、開始した場所に戻ります(eth0 =ホストのみおよびeth1 = NAT)。

したがって、主な質問は、Ubuntu 13.10でeth0とeth1を正しく交換するにはどうすればよいですか? CentOS(DHCPを指定)では、/ etc/sysconfig/network-scriptsのMACアドレスを交換するのと同じくらい簡単でした。/ifcfg-eth0およびifcfg-eth1を実行してから、再起動します。 Ubuntuでは、歯を抜くようなものです...動作するはずのすべてが動作せず、困惑しています。内部で比較的新しいことが起こっていると思います(したがって、「欠落している」ルールファイルなど)が、それは何でしょうか? network-managerもデフォルトではインストールされていないことに注意してください(そしてそれは絶対に存在しません)。


更新:ニヤリと笑うために、1つのネットワークアダプター(NAT)を使用して、同じデフォルトサーバーセットアップ(以前と同じOpenSSHを含む)で別のVM)を作成しました。変更なし-ネットワーキングこの構成では通常どおりに機能しますが、/ etc/udev/rules.dには、READMEファイル(rootとしてチェックした...何もない)以外は何もありません。

2
MartyMacGyver

さて、これまでのところ、少なくとも部分的な答えがあります。

私が言ったように、これはVMにあります。 VMは08:00:27:xx:yy:zzの形式の特別なMACアドレスを作成します。他のいくつかのスクリプトと一緒に、/ lib/udev/rules.d /を調べました。 75-persistent-net-generator.rulesを使用して、問題がそこにあるかどうかを確認します。これは、その中で具体的に言及されているいくつかの除外アドレス範囲の1つです。ファイル(仮想インターフェイスを無視しようとします)!

それで、その理論をテストするために、私はそのファイルの行をコメントアウトし、再起動してプレストしました! /etc/udev/rules.d/70-persistent-net.rulesは、現在使用しているインターフェイスのMACで生成されます。

次は、これだけを更新して再起動することで問題が解決するかどうかをテストします。テストが完了したら更新します。

更新:それでした!テスト修正プログラムと生成されたファイルを削除し、シャットダウンし、2番目のホスト専用ネットワークアダプターを追加して再起動しました。新しいアダプターは最初にeth0として列挙され、NAT 1つはeth1になりました。ジェネレーターを編集して除外を削除し、再起動すると、永続的なルールファイルが作成されました。と連携。

そのファイルでは、デバイス名を交換し(NAME = "eth0"を "eth1"に、またはその逆に変更しました)、保存し、再起動して、出来上がりました。

さて、他の場所でMACアドレスを入力した場合は、それらも修正したいと思いますが、この場合は非常に簡単でした。

2
MartyMacGyver