我正在尝试构建一个虚拟实验室来测试 Cisco ISR 路由器的一些 NAS64 功能。
目标是让仅支持 IPv4 和仅支持 IPv6 的访客通过 Cisco ISR 4321 相互通信。基本思路如下:
我在 Linux 机器上使用 KVM/QEMU 来托管环境。我不想使用 NATed 网络,因为这会使进一步的测试更加复杂。
我无论如何也无法在路由器和客户机之间建立连接(我正在用简单的 PING 进行测试),此时,我只能见树木不见森林。
我苦苦挣扎的基本实现如下所示:
我有一个客户机、一个网桥、主机的接口和路由器。
router 192.0.2.3/24
eth0 192.0.2.2/24
br0 192.0.2.1/24
vm 192.0.2.4/24
主持人,br0和虚拟机可以互相交谈,但是路由器只能与主持人(主持人可以和每个人交谈)。
我想将所有内容放在具有相同网络掩码(192.0.2.0/24)的同一网络中,但 libvirt 抛出了错误,即 192.0.2.0/24 已被 eth0 使用(用于与路由器的连接)
所以我尝试将网络分为主机+路由器和br0 + 客人 例如:
router 192.0.2.250/25
eth0 192.0.2.240/25
br0 192.0.2.1/25
vm 192.0.2.2/25
并设置如下路线:
# ip r add 192.0.2.250 via 192.0.2.240 dev br0
Error: Nexthop has invalid gateway.
但它会引发给定的错误。
我的路由表如下所示:
192.0.2.0/25 dev virb0 proto kernel scope link src 192.0.2.1
192.0.2.128/25 dev eth0 proto kernel scope link src 192.0.2.240 metric 101
我还尝试了其他一些方法(其中很多方法可能不建议采用),比如用重叠网络分割网络,但这只会导致与路由器的连接中断,因为eth0路由至br0(这很有道理)。
我不知所措。我尝试过的所有方法,我所想到的所有失败原因,都没有奏效。我真的不明白为什么每个节点之间都有连接,但从路由器到虚拟机。(我也不明白为什么主持人使用 192.0.2.240/25 可以 ping 通虚拟机与 192.0.2.2/25)。
我希望有人能给我一些指点:)