转到虚拟networking

我们有两台电脑的设置。 S是可以访问Internet的服务器,C是通过192.168.0.0/24networking连接到服务器的客户端。 这工作得很好,但是第三台计算机C2应该连接到C.

问题是C和C2必须通过192.168.0.0/24连接,而C2不能看到S.因此,我们要在S和C之间添加一个使用192.168.1.0/24的虚拟networking。

即,我们有:

S <-- 192.168.0.0/24 -- C <---- X ---- C2 

我们希望:

 S <-- 192.168.1.0/24 -- C <-- 192.168.0.0/24 -- C2 

我们将以下内容添加到S中的/ etc / network / interfaces(以前通过eth0连接到C),并执行“ifup eth0.1”:

 auto eth0.1 iface eth0.1 inet static address 192.168.1.254 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 

而在C中,在“ifdown eth0”之后,删除旧的if并键入:

 auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 

然后,“ifup eth0”。

它不工作! 平刚说:

 $ ping 192.168.1.2 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. From 192.168.1.254 icmp_seq=1 Destination Host Unreachable From 192.168.1.254 icmp_seq=2 Destination Host Unreachable 

当我们改变所有的工作,我们甚至可以从客户端ping eth0.1。 你如何从客户端更改networking?

问题是你使用了一个VLAN 802.1q接口,它不是一个别名接口,所以你有两个不同的VLAN,你需要一个典型的路由器上的configuration来做到这一点,或者你需要创build一个虚拟接口与虚拟模块(可能更简单)这样:

 #! /bin/bash modprobe dummy ip link set name ethvirt dev dummy0 ifconfig ethvirt hw ether 00:22:22:03:02:74 ifconfig ethvirt 192.168.1.254 netmask 255.255.255.0 up 

希望能帮助到你!