我有一个连接到 WAN 的 OpenWRT VM,如何使用它作为网关将客户端 VM 连接到 OpenWRT LAN?

我有一个连接到 WAN 的 OpenWRT VM,如何使用它作为网关将客户端 VM 连接到 OpenWRT LAN?

我的 MacPro 的示意图,其中装有 OpenWRT 和客户端虚拟机,使用主机上的 br0 桥接器

我正在尝试在 Ubuntu Linux 机器上的 KVM 中设置一个实验室。我的目标是创建一个测试实验室,在其中我可以测试我的家庭网络的物理路由器的配置,然后再将其投入生产。当然,物理网络上的配置会略有不同,但大部分配置可以先在实验室环境中进行测试。

我看了一系列关于在 Debian 中创建桥梁的视频适用于您的 KVM VM。通过这些,我能够通过其 WAN 卡为我的 OpenWRT Barrier Breaker VM 获取互联网连接。

auto lo
iface lo inet loopback
auto eth1
iface eth1 inet manual

auto br0
iface br0 inet static
   address 192.168.1.85
   network 192.168.1.0
   netmask 255.255.255.0
   broadcast 192.168.0.255
   gateway 192.168.1.1
   bridge_ports eth1
   bridge_stp off
   bridge_fd 0
   bridge_maxwait 0
   dns-nameservers 192.168.1.1

iface br0 inet6 static
address fe80:21f:5bff:fe3b:73b1
netmask64
    pre-up echo 0 > /proc/sys/net/ipv6/conf/br0/autoconf
    post-down echo 1 > /proc/sys/net/ipv6/conf/br0/autoconf

/etc/网络- 主机接口配置

由此我最终在虚拟机管理器中得到了以下配置:

虚拟机管理器中的主机接口配置 虚拟机管理器中的主机接口配置

我还配置了 OpenWRT VM wan 接口,配置如下:

config `switch` `eth0`
  option `enable` `1`

config `switch_vlan` `eth1`
   option `vlan` `0`
   option `device` `eth1`
   option `ports` `4 5` #wan

config `switch_vlan` `eth0_1`
   option `vlan` `1`
   option `device` `eth0`
   option `ports` `0` #lan 1

config `interface` `lan`
   option `ifname` `eth0.1`
   option `proto` `static`
   option `ipaddr` `192.168.100.1`
   option `netmask` `255.255.255.0`
   option `defaultroute` `0`
   option `peerdns` `0`
   option `nat` `1`

config `interface` `loopback`
   option ifname `log`
   option proto `static`
   option ipaddr `127.0.0.1`
   option netmask `255.0.0.0`

config interface `wan`
   option ifname `eth1`
   option type `bridge`
   option proto `static`
   option ipaddr `192.168.1.85`
   option gateway `192.168.1.1`
   option netmask `255.255.255.0`
   option dns `192.168.1.1`

/etc/config/网络- OpenWRT虚拟机网络配置

多亏了这一点,我现在可以用来opkg下载 OpenWRT VM 可能需要的任何软件包。


但是,我只完成了一半;我想将一些客户端虚拟机放置在 OpenWRT VM 后面的一系列私有网络上。我尽力设置了 LAN 端口,但我不知道如何连接 OpenWRT VM 和客户端计算机的虚拟接口。


我还使用虚拟机管理器设置了一个虚拟网络:

虚拟机管理器中的隔离虚拟网络配置 虚拟机管理器中的隔离虚拟网络 intnet 配置

我认为在 OpenWRT VM 上如果我将 WAN 接口以外的接口连接到 inet 网络:

连接到 inet 虚拟网络的 OpenWRT VM LAN 接口 配置 OpenWRT VM LAN 接口以连接到 inet 虚拟网络

....并且如果我还将客户端的单个网络接口连接到 inet 网络(当然在 VM 内部配置它们),那么就能够模拟我的物理网络的条件。

配置为连接到 inet 虚拟网络的客户端机器接口 配置为连接到 inet 虚拟网络的客户端机器接口

我不太确定如何进行,libvirt 文档让我感到困惑,因为我不太了解虚拟交换机;在我看来,如果隔离的 inet 网络上的虚拟交换机同时插入了网关和客户端机器,它至少应该允许 OpenWRT VM 和客户端机器互相 ping 通,但事实并非如此。

我想首先验证 libvert 管道是否正确,然后再继续微调两个虚拟机上 inet 隔离虚拟网络上的 LAN 接口的配置。

答案1

您需要两个主机桥。

  • br0 连接到互联网,并且

  • br1 是所有 openwrt 客户端连接的虚拟桥。

dhcp wan 接口的完整说明如下:http://wiki.openwrt.org/toh/qemu/qemu

我还没有弄清楚如何使用一个静态地址,主机连接到 br1 网桥并让 openwrt 完全控制 br0......这是另一个问题。

答案2

我自己也做了同样的设置,四天来一直在尝试解决这个问题。最后我找到了一个有效的解决方案。我也在这里发布了同样的内容

事实证明,我对整个解决方案想得太多了。只需要一个接口。我还将主机的物理接口分配给了虚拟机。因此,我没有为虚拟机的内部网络创建一个桥接器,而是对所有东西都使用了相同的接口。现在,所有虚拟机和物理机都共享连接到 OpenWRT 的同一 LAN,分配 IP 并充当 DNS 转发器。

相关内容