现在有 2 台宿主机,都是 ubuntu 的,每个上面都开了几台 vm,大概的网络拓扑如下,如何让 vm1 和 vm2 能够直接通讯呢:
vm1(192.168.122.21)
vm2(192.168.122.24)
1
zjsxwc 2019-07-17 09:25:36 +08:00
给你两个虚拟机加 host only 虚拟网卡呗,
如果一定要用默认的 nat 网卡就配置下端口映射也可以的 |
2
Tink 2019-07-17 09:26:19 +08:00
你的两个主机都在一个网段了,直接桥接不行?
|
7
hoyixi 2019-07-17 09:32:55 +08:00
网卡桥接的话,虚拟机和宿主机在同一网段,好似一台物理机接入宿主机的局域网一样。
这情况下,你 2 台宿主机怎么通讯,你的 2 台虚拟机就怎么通讯 |
8
iceheart 2019-07-17 09:34:49 +08:00 via Android
flannel ?
|
12
hoyixi 2019-07-17 09:41:03 +08:00
那看你具体情况了
上面说了,虚拟机网卡如果是桥接模式,虚拟机就像一台实际的电脑,接入你宿主机所在网络。 你 2 台宿主机怎么通讯?如果是都在同一个局域网内,那虚拟机之间也一样;如果跨网络,那虚拟机也一样。 |
13
defunct9 2019-07-17 09:53:14 +08:00
vxlan
|
14
cadmuxe 2019-07-17 10:09:06 +08:00
不知道你的需求是什么。
大概提供一个思路,希望有专门做网络的人看一看。 因为你虚拟机和 host 是桥接,通过一个虚拟网卡,他们是在一个网段的(只限于那个虚拟网卡和虚拟桥)。同时 host 还有真实的网卡连到外部。 Host1 92.168.122.1 [92.168.122.0/24] Vm1 192.168.122.2 Host1 92.168.123.1 [92.168.123.0/24] Vm1 192.168.123.2 host1 92.168.122.1 当作第一个网段的 gateway, 在 host1 上设置 ip_forwarding=1, 并且设置 ip rule 把这个网段的包从 eth0 push 出去。 在 host2 上做同样的操作。 在 host1,host2 的 router 上设置 route 把俩个网段 push 到正确的机器上应该就行了。 --- 如果只是想要通信,envoyproxy.io ? |
15
openbsd 2019-07-17 10:25:13 +08:00
你可以把桥接模式认为,哪有什么虚拟机 ?都是物理主机
|
16
nnnToTnnn 2019-07-17 10:28:29 +08:00
teamview ,或者 openvpn ,pptp 等等,组建一个虚拟隧道不就可以了?
|
18
CallMeReznov 2019-07-17 10:33:46 +08:00
无脑桥接即可
|
19
onice 2019-07-17 15:51:52 +08:00
全部桥接。不过宿主机必须要连接外部网络才行。
|