网络命名空间:名称解析暂时失败

网络命名空间:名称解析暂时失败

这是我的情况:

我有两个不同的网络接口,每个接口都有自己的静态公网和私网 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

的默认网关eth010.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.

相关内容