• 【云计算 | 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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    其网络架构如下图所示

    在这里插入图片描述

    对应到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虚机的外部网络
  • 相关阅读:
    游戏中的语音聊天方案
    【C++修炼之路】1. 初窥门径
    【Python】Pyside6简易版教程
    flutter开发web应用支持浏览器跨域设置
    二叉树的按层遍历
    Vue3 动态组件 component:is= 失效
    分页查询慢的优化方式
    朝花夕拾 - 停更三月,期待 失败
    Gateway 开源网关
    MATLB|哈里斯鹰算法HHO在电力系统中的应用
  • 原文地址:https://blog.csdn.net/weixin_42216109/article/details/126578695