我有两个带有容器的 OpenVZ 主机。这是当前的布局:
Host-A:(eth0(连接到 Internet),eth1(连接到 Host-B))
Host-B:(eth0(连接到 Internet),eth1(连接到 Host-A))
Host-A 和 Host-B 上有 OpenVZ 容器。Host-A 和 Host-B 有一个公共 IPv4 地址(每个),容器没有公共 IP,它们需要位于内部专用网络上。
如何配置网络,以便两台主机上的容器可以相互通信并访问互联网。
我有两个带有容器的 OpenVZ 主机。这是当前的布局:
Host-A:(eth0(连接到 Internet),eth1(连接到 Host-B))
Host-B:(eth0(连接到 Internet),eth1(连接到 Host-A))
Host-A 和 Host-B 上有 OpenVZ 容器。Host-A 和 Host-B 有一个公共 IPv4 地址(每个),容器没有公共 IP,它们需要位于内部专用网络上。
如何配置网络,以便两台主机上的容器可以相互通信并访问互联网。
在收到大量关于 SF 的回复后……不!?!,我自己研究了一下。我就是这样做的。
配置
-SSH 到主机 A 并更新 /etc/network/interfaces 如下:
-SSH 到主机 B 并更新 /etc/network/interfaces 如下:
- 在所有新容器上,创建 eth0 (->vmbr0) 和 eth1 (->vmbr1),并为每个 eth 接口分配一个来自相应块的静态 IP。
- 在所有新容器上,确保默认路由指向 10.0.1.1,如果不是,则相应地更新容器中的网络配置文件。
服务器网络拓扑:
主机A(eth0:公网IP,vmbr0:10.0.1.0/24)(eth1/vmbr1:10.0.2.99/24)
主机B(eth0:公网IP,vmbr0:10.0.1.0/24)(eth1/vmbr1:10.0.2.199/24)
容器 (eth0-mapped-to->vmbr0: 10.0.1.[CT#]/24) (eth1-mapped-to->vmbr1: 10.0.2.[CT# if on host-a, else CT#+100 ]/24)
两台主机上的容器在 10.0.1.x IP 块中可以具有相同的 IP,但在 10.0.2.x IP 块中不能
示例容器配置:
主机 A 上的 100 号容器(eth0->vmbr0:10.0.1.100/24,网关:10.0.1.1)(eth1->vmbr1:10.0.2.100/24,网关:10.0.2.99)
主机 B 上的 100 号容器(eth0->vmbr0:10.0.1.100/24,网关:10.0.1.1)(eth1->vmbr1:10.0.2.200/24,网关:10.0.2.199)
主机 A 上的 101 号容器(eth0->vmbr0:10.0.1.101/24,网关:10.0.1.1)(eth1->vmbr1:10.0.2.101/24,网关:10.0.2.99)
主机 B 上的容器 #101 (eth0->vmbr0: 10.0.1.101/24, gateway: 10.0.1.1) (eth1->vmbr1: 10.0.2.201/24, gateway: 10.0.2.199)