多个kvm虚拟机跨宿主机通信

多个kvm虚拟机跨宿主机通信

有些场景可能需要大量的虚拟机,一台宿主机上的虚拟机可能会不够,需要多个宿主机上的多个虚拟机构成一个集群,各个虚拟机之间要求能互相通信,通常有2种解决方案:

第一种方案

虚拟机使用“桥接模式”,这种情况下虚拟机和宿主机共用一个网桥,虚拟机和宿主机其实在同一个的网络,各个虚拟机之间也就可以直接互相通信了,缺点就是每个虚拟机要占用一个宿主机所在物理网络的IP,虚拟机如果数量大,可能出现IP不够用的情况。更多情况下网管可能不会允许虚拟机直接占用宿主机物理网络IP。
在这里插入图片描述

第二种方案

虚拟机使用“NAT模式”,虚拟机网桥需要借助宿主机网卡通过NAT地址转换来实现上网,这种情况下虚拟机不占用宿主机网络的IP,宿主机的一个网桥就代表一个网络,相同网桥的虚拟机之间可以互相通信,跨宿主机的多个虚拟机不在一个网络,需要借助宿主机配置静态路由才能实现互相访问,下面就基于这种方案说明。
在这里插入图片描述
环境如上图所示:
有2台物理机:
物理机1的IP为192.168.137.79,虚拟机网络:192.168.122.0/24
物理机2的IP为192.168.137.80,虚拟机网络:192.168.123.0/24

物理机和虚拟机的系统都为Centos7.9,虚拟化软件使用kvm,物理机必须在同一个网络里面

1、宿主机关闭防火墙和Selinux

systemctl stop firewalld
setenforce 0

这里有个坑,关闭firewalld之后,kvm还有2条iptables规则也会拦截数据包转发,必须删除
在这里插入图片描述

iptables -t filter -D FORWARD 5
iptables -t filter -D FORWARD 4
iptables -t filter -nL --line-num

2、宿主机配置静态路由

宿主机1配置

# 开启路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# 添加静态路由
ip route add 192.168.123.0/24 via 192.168.137.80

宿主机2配置

# 开启路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# 添加静态路由
ip route add 192.168.122.0/24 via 192.168.137.79

配置好静态路由后多个虚拟机之间就可以跨宿主机即互相通信了。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值