AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1257262
Accepted
Velkan
Velkan
Asked: 2020-07-08 22:57:09 +0800 CST2020-07-08 22:57:09 +0800 CST 2020-07-08 22:57:09 +0800 CST

18.04 NetworkManager 主机和 KVM netplan guest 的桥接网络

  • 772

目标是让来宾与主机在同一网络上(使用与主机相同的 DHCP 服务器)。

我已经到了主机通过外部 DHCP 配置的地步,来宾配置了静态 IP,它们可以通信,主机可以与网络的其余部分通信,但来宾不能。

我正在遵循有关使用 NetworkManager 创建网桥并在 KVM 中使用它的指南(我还从主机中删除了所有 Wi-Fi 连接,并从 KVM 中删除了默认网桥):

$ nmcli con add ifname br0 type bridge con-name br0
$ nmcli con add type bridge-slave ifname enp59s0 master br0
$ nmcli con modify br0 bridge.stp no
$ nmcli con up br0
$ nmcli c
NAME                  UUID                                  TYPE      DEVICE  
br0                   39f90a3b-6090-4b4f-a9c4-76d6b980c8c4  bridge    br0     
bridge-slave-enp59s0  dd58e274-8cfa-4102-b524-fd16d96516b8  ethernet  enp59s0 
docker0               901ac863-2d2b-4351-9b81-fbc2096e398b  bridge    docker0
$ brctl show br0
bridge name  bridge id          STP enabled interfaces
br0          8000.54bf6428c24c  no          enp59s0

在ip a br0 中获取 IP,enp59s0是从接口,因此它显示没有 IP。

/tmp/br0.xml:

<network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="br0" />
</network>

设置 KVM:

$ virsh net-define /tmp/br0.xml
$ virsh net-start br0
$ virsh net-autostart br0
$ virsh net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 br0                  active     yes           yes

访客/etc/netplan/01-netcfg.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      addresses: [192.168.5.100/24]
      gateway4: 192.168.5.254
      dhcp4: no
      dhcp6: no

当虚拟机运行时有vnet0:

$ nmcli c
NAME                  UUID                                  TYPE      DEVICE  
br0                   39f90a3b-6090-4b4f-a9c4-76d6b980c8c4  bridge    br0     
bridge-slave-enp59s0  dd58e274-8cfa-4102-b524-fd16d96516b8  ethernet  enp59s0 
docker0               901ac863-2d2b-4351-9b81-fbc2096e398b  bridge    docker0 
vnet0                 1e6cdf02-8f57-4670-b6a7-b72e15151137  tun       vnet0  
$ brctl show br0
bridge name  bridge id          STP enabled interfaces
br0          8000.54bf6428c24c  no          enp59s0
                                            vnet0

在br0上的主机上的 Wireshark 中,我看到所有尝试从访客到网络以及从网络到访客的数据包(我尝试从访客 ping/连接到外部服务器并从外部服务器 ping/连接到访客)。但是连接没有通过,来宾无法与网络的其余部分进行通信。

这看起来像一个主机桥问题。桥怎么了?

networking kvm network-manager network-bridge
  • 1 1 个回答
  • 688 Views

1 个回答

  • Voted
  1. Best Answer
    Velkan
    2020-07-08T23:51:07+08:002020-07-08T23:51:07+08:00

    好的,需要允许在 iptables 中转发。脚本 /etc/NetworkManager/dispatcher.d/br0.sh:

    #!/bin/bash
    
    if [ "$1" == br0 ]; then
        case "$2" in
            up)
                /sbin/iptables -A FORWARD -i br0 -j ACCEPT
                ;;
            down)
                /sbin/iptables -D FORWARD -i br0 -j ACCEPT
                ;;
        esac
    fi
    

    也可以添加virsh net-destroy br0和virsh net-start br0以重新初始化 KVM 部分。

    • 0

相关问题

  • 如何将主机 Ubuntu 上的 VPN (tun0) 网络适配器映射到 VirtualBox 来宾 Windows?

  • 如何限制下载/上传带宽?

  • 如何通过 Windows 网络共享文件?

  • 如何设置默认启用网络?

  • 面板小程序以文本形式显示当前网络流量?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve