這是我的場景:
我有兩個不同的網路接口,每個接口都有自己的靜態公共和私人 IP (IPv4),連接到單一虛擬網絡,該網絡連接到單一虛擬機。我希望能夠將eth1
輔助網路介面指派給自己的網路命名空間,然後使用該命名空間執行將資訊傳送到 MySQL 資料庫的 Python 應用程式。
本質上,我想在單個虛擬機上同時運行其中兩個應用程序,但在不同的命名空間中運行它們,以便我的資料庫接收來自兩個不同公共 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
然後我嘗試 pinggoogle.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.