【云计算 | Openstack】KVM虚机通过Linux网桥连接外网

1. 背景

上文 【云计算 | OpenStack】从零开始使用libvirt创建一个kvm虚机 中的虚机使用了基于Linux网桥的虚拟网卡,xml文件中关于interface的定义如下

   #添加网络配置,基于网桥
   <interface type='bridge'>
    <source bridge='br0'/>
    <target dev='vnet1'/>
    <alias name='net1'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
   </interface>

其网络架构如下图所示

在这里插入图片描述

对应到vmware虚机(kvm虚机的宿主机)里,如下图

在这里插入图片描述

  • ens33:vmware虚机的网卡,类似物理机的物理网卡,用于连接外网。其ip地址是向无线路由器发起dhcp请求动态获取
  • vnet1:kvm虚机在Linux网桥上对应的端口
  • vnet2:kvm虚机在Linux网桥上对应的端口

现在需求是让kvm虚机能够访问外网,本文围绕这点展开试验

2. 实践

整体思路就是让物理网卡ens33也挂载到Linux网桥br0上,使kvm虚机能通过dhcp获取到无线路由器分配的ip地址,其网络架构图如下

在这里插入图片描述

1、首先通过命令brctl addif br0 ens33给网桥添加物理网卡ens3(也可以在网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33中添加BRIDGE=br0
2、通过dhclient br0让网桥br0获取外部地址
3、通过ip a del 172.16.27.77/20 dev ens33删除网卡ens33的地址(这个地址如果不删除,可能存在一些网络问题。网上有说如果物理网卡加入了网桥,就相当于网桥上的一个端口,类似vnet1和vnet2,仅用来连接对端,所以可以不用配地址。至于原理尚不明晰,欢迎留言指出)

在这里插入图片描述

4、获取kvm虚机的vnc端口,通过vncviewer :port进入kvm虚机

在这里插入图片描述

5、通过dhclient ens3获取地址(此处网卡ens3已设置为开机自启并通过dhcp获取地址,所以如果重启虚机也可以直接获取地址)

在这里插入图片描述

6、测试kvm虚机能否上外网

在这里插入图片描述

3. 总结

  • kvm虚机采用基于Linux网桥的虚拟网卡时,可以将宿主机的物理网卡添加到Linux网桥,从而打通kvm虚机的外部网络
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田土豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值