ネットワーク名前空間: 名前解決の一時的な失敗

ネットワーク名前空間: 名前解決の一時的な失敗

これが私のシナリオです:

2 つの異なるネットワーク インターフェイスがあり、それぞれが独自の静的パブリック IP とプライベート IP (IPv4) を持ち、単一の仮想ネットワークに接続されています。この仮想ネットワークは単一の仮想マシンに接続されています。eth1セカンダリ ネットワーク インターフェイスを独自のネットワーク名前空間に割り当て、その名前空間を使用して、MySQL データベースに情報を送信する Python アプリケーションを実行できるようにしたいと考えています。

基本的に、これらのアプリケーションを 2 つ、単一の VM で同時に実行したいのですが、別々の名前空間内で実行して、データベースが 2 つの異なるパブリック IP アドレスからクエリを受信できるようにしたいのです。名前空間を使用するのが、私が見つけた最良の選択肢でした。Python の部分は整理しましたが (netns 用の Python ラッパーを使用しています)、名前空間のネームサーバーと思われるものに苦労しています。

名前空間を作成するには、次のコマンドを実行します。

>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up

次に ping を実行しようとするgoogle.comと、次のエラーが表示されます。 ping: google.com: Temporary failure in name resolution

何かが足りないことはわかっていますし、ネットワークに関してはまったくの初心者であることも認めます。どんな助けでもいただければ幸いです。

ご参考までに: 私はこれらすべてにAzureクラウドサービスを使用しています。両方のネットワークインターフェイスのDNSサーバーは次のように設定されています。仮想ネットワークから継承IP 転送は無効になっています。仮想ネットワークのアドレス空間は、10.0.0.0/24プライマリ インターフェイス ( eth0) が を使用し10.0.0.4、セカンダリ インターフェイス ( eth1) が を使用します10.0.0.5

編集: ネットワーク ルーティングを理解するコツをつかんできたと思いますが、別のエラーが発生しています。

>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up
>> sudo ip netns exec 001 ip addr add 10.0.0.5/24 dev eth1

のデフォルト ゲートウェイはeth0なので、同じ仮想ネットワークを共有しているので、 のデフォルト ゲートウェイを同じアドレスに10.0.0.1設定すると想定しました。eth1

>> sudo ip netns exec 001 ip route add default via 10.0.0.1 dev eth1
Error: Nexthop has invalid gateway.

関連情報