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
    • 最新
    • 标签
主页 / server / 问题 / 1168229
Accepted
Thomas P
Thomas P
Asked: 2024-11-27 23:12:20 +0800 CST2024-11-27 23:12:20 +0800 CST 2024-11-27 23:12:20 +0800 CST

libvirt:将静态路由添加到隔离网络

  • 772

我正在使用 Ubuntu 24.04 桌面,并创建了一个连接到默认 libvirt-NAT-Bridge 和第二个隔离网络的虚拟机。

桥接网络是virbr0: 192.168.122.0/24主机获得192.168.122.1而虚拟机获得静态192.168.122.128网络。隔离网络是10.95.212.0/24。

我希望能够 ping/ssh 到隔离网络中的主机,所以我route add ...在主机上设置了静态路由 ()。它可以工作,但重启后就失效了。我试过了,nmtui但重启后路由就消失了。

我考虑过virsh net-edit default,但没有找到有关如何去做的任何文档。

我必须在哪里定义重启后仍存在的路线?

kvm-virtualization
  • 1 1 个回答
  • 25 Views

1 个回答

  • Voted
  1. Best Answer
    larsks
    2024-11-28T04:02:09+08:002024-11-28T04:02:09+08:00

    一个选项是在您的主机上设置静态路由。听起来您尝试过这样做,但由于您没有向我们提供详细信息,因此很难判断为什么它不起作用。

    在我的 Ubuntu 24.04 系统上,我首先创建了如下界面配置:

    root@ubuntu:~# nmcli conn add type ethernet ifname enp1s0 \
      con-name wired ipv4.method auto autoconnect yes save yes
    

    这将为我获取默认 libvirt 网络上的地址(在我的系统上是 192.168.124.0/24):

    root@ubuntu:~# ip addr show enp1s0
    2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 52:54:00:eb:75:96 brd ff:ff:ff:ff:ff:ff
        inet 192.168.124.148/24 brd 192.168.124.255 scope global dynamic noprefixroute enp1s0
           valid_lft 3405sec preferred_lft 3405sec
        inet6 fe80::9714:efbc:6239:b9e/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    

    要向此配置添加静态路由,我可以使用以下nmcli modify命令对其进行修改:

    root@ubuntu:~# nmcli c mod wired +ipv4.routes "10.95.212.0/24 192.168.124.10"
    

    重新启动后,我有:

    root@ubuntu:~# ip route
    default via 192.168.124.1 dev enp1s0 proto dhcp src 192.168.124.148 metric 100
    10.95.212.0/24 via 192.168.124.10 dev enp1s0 proto static metric 100
    192.168.124.0/24 dev enp1s0 proto kernel scope link src 192.168.124.148 metric 100
    

    根据libvirt 文档,应该可以在网络定义中定义静态路由,以便通过 DHCP 将它们提供给您的主机。我对此进行了一些实验,但它似乎没有像文档中所述的那样工作。

    幸运的是,也可以指定任意 dnsmasq 选项,这意味着我们可以像这样添加必要的 dnsmasq 配置:

    <network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0' connections='1'>
      <name>default</name>
      <forward mode='nat'>
        <nat>
          <port start='1024' end='65535'/>
        </nat>
      </forward>
      <bridge name='virbr0' stp='on' delay='0'/>
      <mac address='52:54:00:9d:aa:d8'/>
      <ip address='192.168.124.1' netmask='255.255.255.0'>
        <dhcp>
          <range start='192.168.124.10' end='192.168.124.200'/>
        </dhcp>
      </ip>
    
      <!-- HERE IS WHERE WE ADD THE ROUTE -->
      <dnsmasq:options>
        <dnsmasq:option value='dhcp-option=option:classless-static-route,10.95.212.0/24,192.168.124.10'/>
      </dnsmasq:options>
    </network>
    

    完成此操作后,使用 DHCP 进行接口配置的主机将通过 DHCP 选项接收路由。我已经测试了上述配置,它适用于使用 NetworkManager 的主机和使用 systemd-networkd 的主机。

    • 1

相关问题

  • Xen 与 KVM 的性能对比

  • 什么是bridge_fd?

  • 如何在 kvm-linux 中登录除 ssh、vnc 之外的控制台

  • Linux 内核虚拟机

  • Vista 上的 VNC

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve