让我们按照步骤建立以下拓扑:
VM-tap0(192.168.6.6)-------------(192.168.6.8)eth0-UML1-eth1(192.168.20.1)----------------eth1-(192.168.20.2)UML2
这里,UML1 和 UML2 是作为主机运行在 VM 上的两个 UML 实例。所有uml_console
命令都假设在 VM 主机上运行。
Tun/Tap config:
VM <----->UML1(我们首先建立VM主机和UML1之间的连接)
@host 作为根:
chmod 777 /dev/net/tun
tunctl -u vm -t tap0 (这里vm
是虚拟机用户名)
回声 1 > /proc/sys/net/ipv4/ip_forward
回声 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
ifconfig tap0 192.168.6.6 向上
./linux ubda=CentOS6.x-x86-root_fs umid=debian1 [单独终端]
uml_mconsole debian1 配置 eth0=tuntap,tap0
route add -host 192.168.6.8 dev tap0
route add -net 192.168.20.0 网络掩码 255.255.255.0 gw 192.168.6.8 dev tap0
@uml1
eth0=tuntap,tap0
ifconfig eth0 192.168.6.8 向上
回声 1 > /proc/sys/net/ipv4/ip_forward
回声 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
现在 UML1<------------->UML2
./linux ubda=CentOS6.x-x86-root_fs2 umid=debian2 [单独终端]
uml_mconsole debian1 config eth1=mcast (如果这些命令失败,这意味着你没有编译 UML 内核并在 中启用了多播接口)
uml_mconsole debian2 配置 eth1=mcast
再次@uml1
ifconfig eth1 192.168.20.1 向上
@uml2
ifconfig eth1 192.168.20.2 向上
路由添加 -net 192.168.6.0 网络掩码 255.255.255.0 gw 192.168.20.1 dev eth1
回声 1 > /proc/sys/net/ipv4/ip_forward
回声 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
尝试从 VM ping UML2,反之亦然。您应该能够在两个方向上 ping 通。