在偶然的情况下,网管员会遇到一台服务器要求跨两个完全不同的网,并同时使用的情况,具体如下图所示。我最近就遇到了这个事情。但是我按照平常的网络配置进行配置后,总是不太对。最后在网上搜了一下,终于解决问题。现在将我的配置过程和经验分享如下。
如图所示,这是我的原始配置。网卡2的网关不能配置。假如你配置了网卡2的网关,操作系统就不知道该走哪个网卡出去了。而且你配置的时候,操作系统会报错,你也配置不起。
配置好以后,我进行了测试。PC1用10.10.10.3的地址访问服务器是没有问题的。PC2用192.168.0.3访问服务器也没有问题。貌似一切正常。可是PC3是192.168.1.*网段,是无论如何也访问不了服务器的。WHY?如果你的路由器下像我那样挂了两个网段,或者你做了Vlan,你都是访问不了的。
后来问题终于解决,原来要添加一条静态路由。
具体命令如下:
route add 192.168.0.0 mask 255.255.0.0 192.168.0.1
这条命令的作用就是将192.168.0.0段的数据包,强制从192.168.0.1端口转发出去,而不是走默认的10.10.10.1网关出去。这样PC2和PC3都可以访问服务器了。
这个命令还可以做的更详细一些。
route -p add 192.168.0.0 mask 255.255.0.0 192.168.0.1 metric 2
加-p参数是将该条路由永久写入路由表,这样服务器重启以后,该条路由不会丢失。
参数 metric 2的意思是强制指定192.168.0.0的数据包从网卡2出去。但是一般不用指定的如此详细。否则你换网卡的话,就有可能出问题。
现在,我试着回答一下上边我提出的那个WHY。即,为什么在同一个网段的PC2可以访问服务器,而不在同一网段的PC3却不能访问?我认为,服务器出来的192.168.0.0的数据包,路由器认为是广播包,因此只会在192.168.0.*的网段内给广播,所以PC2可以访问,路由器并不会给你转发到192.168.1.*网段去。所以,PC3是无法访问服务器的。
同理,PC3主动访问服务器,到了路由器以后,由于路由器没有服务器网卡2的路由表,路由器也就不知道该怎么给你转发,所以PC3也无法主动访问到服务器。