V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
a1274598858
V2EX  ›  云计算

关于 KVM 主机网络问题请教

  •  
  •   a1274598858 · 168 天前 · 2177 次点击
    这是一个创建于 168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虚拟化环境:KVM 宿主机:Ubuntu20 ip:192.168.2.222 虚拟机:Centos7.9 ip:192.168.122.5 请问有没有办法 让虚拟机和宿主机在同一个网段,或者有没有什么办法能让内网环境的电脑 访问虚拟机

    12 条回复    2022-06-16 16:24:49 +08:00
    Qetesh
        1
    Qetesh  
       168 天前 via iPhone
    iptables 做 nat 或者 ovs 做桥接
    pagxir
        2
    pagxir  
       168 天前 via Android
    主机端配置一下 ARP proxy 吧
    FrankAdler
        3
    FrankAdler  
       168 天前 via iPhone
    1 楼说的对,做桥接
    littlewey
        4
    littlewey  
       168 天前 via iPhone
    “bridged”
    asilin
        5
    asilin  
       168 天前 via Android
    2 楼说的对,而且如果宿主机通过 WiFi 连接外网,只能使用 arp proxy 方式。
    kyrre
        6
    kyrre  
       168 天前
    KVM 网络选 Routed ,不要用 Default 的。
    debuggerx
        7
    debuggerx  
       167 天前 via Android   ❤️ 1
    我推荐端口映射
    Davic1
        8
    Davic1  
       167 天前
    1,2 楼的方法都可以
    关于 Open vSwitch(ovs) 看 https://pve.proxmox.com/wiki/Open_vSwitch
    关于 ProxyARP(arp 代理) 看 https://www.practicalnetworking.net/series/arp/proxy-arp/
    ayasakinagi
        9
    ayasakinagi  
       167 天前 via iPhone
    不用 ovs, linux bridge 即可. host 的网卡和虚拟机的网卡都挂到同一个 linux bridge 上
    defunct9
        10
    defunct9  
       167 天前
    开 ssh ,让我上去搞
    ye4tar
        11
    ye4tar  
       167 天前
    让我来。
    第一步,物理网卡假设是 enp3s0, 配置文件中无论是 dhcp ,static 改成使用桥接
    配置如下
    TYPE="Ethernet"
    DEVICE="enp3s0"
    ONBOOT="yes"
    BRIDGE="br0"

    接着不上一个 br0 接口
    配置如下
    TYPE="Bridge"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    DEVICE="br0"
    ONBOOT="yes"
    ### 自己补充使用 DHCP 或者 static
    ##static 如下
    IPADDR="192.168.100.10"
    PREFIX="24"
    GATEWAY="192.168.100.1"
    DNS1="119.29.29.29"
    IPV6_PRIVACY="no"
    DEFROUTE="yes"
    ### 以上仅供参考

    这个时候重启网络后 使用 ip a s 查看网络,你会看见 enp3s0 被 br0 使用,本身不获取 ip ,br0 变得和原来的 enp3s0 获取了 ip


    紧接着很关键的来了
    sysctl -p


    net.bridge.bridge-nf-call-ip6tables = 0
    net.bridge.bridge-nf-call-iptables = 0
    net.bridge.bridge-nf-call-arptables = 0


    要不你会发现虚拟机有和宿主主机有同网段的 IP ,但是不能互通,
    当然,虚拟机的网络需要使用宿主的桥接网卡 br0 。
    a1274598858
        12
    a1274598858  
    OP
       167 天前
    @Qetesh
    @pagxir
    @FrankAdler
    @littlewey
    @asilin
    @kyrre
    @debuggerx
    @Davic1
    @ayasakinagi
    @defunct9
    @ye4tar
    非常感谢大家,我用 bridged 的方式解决了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3187 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 14:52 · PVG 22:52 · LAX 06:52 · JFK 09:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.