2012年06月07日

说好的写博客,不能扔,今天玩了一个有意思的东西。


---------------1.linux下的实现---------------

情况和环境:

操作系统:Ubuntu (linux)

两块网卡,上连两个不同的交换机。

网卡0(外网):

IP地址:10.175.31.8 
子网掩码:255.255.255.224 
网关10.175.31.18

网卡1(内网):

IP地址:10.175.89.133 
子网掩码:255.255.255.240 
网关10.175.89.129

因为一台电脑只能有一个默认网关,

所以如果在/etc/network/interfaces文件里配置两个网关的话,只能访问一个网络。

另一个网卡会无法访问网络。

解决办法:一个网卡设置默认网关,另一个网卡通过设置静态路由的方式访问网络。

-

具体步骤:

  1. sudo -s 切换到root用户

  2. 编辑网络设置文件:vim /etc/network/interfaces,

    将一个网卡的默认网关删除或者注释掉,例如:

    #网卡0
    auto eth0
    iface eth0 inet static
    address 10.175.31.8 netmask 255.255.255.224
    gateway 10.175.31.18
    
    #网卡1
    auto eth1 
    iface eth1 inet static 
    address 10.175.89.133 
    netmask 255.255.255.240 
    #gateway 10.175.89.129
    

    然后wq!保存,退出vim

  3. 重启网卡:

    sudo /etc/init.d/networking restart
    
  4. 用route命令查看,应该只有一个default路由,然后:

        sudo route add -net 10.175.89.0 netmask 255.255.255.0 gw 10.175.89.129 dev eth1
    

    这条命令让从IP10.175.89.0开始子网掩码为 255.255.255.0 的网段的数据从网卡1走,网关是 10.175.89.129 。

    这个可以根据实际情况相应的修改子网掩码。

  5. 因为上面这条设置静态路由的命令会在系统重启后丢失,所以可以在/etc/rc.local这个文件的 exit 0之前添加:

    route add -net 10.175.89.0 netmask 255.255.255.0 gw 10.175.89.129 dev eth1
    

OK,大功告成!

---------------2.windows下实现的方法---------------

网卡一(内网)

IP地址: 10.69.4.X

子网掩码:255.255.255.0

默认网关:10.69.4.1

DNS:自动获取

网卡2(外网):


IP地址: 192.168.2.X

子网掩码:255.255.255.0

默认网关:192.168.2.1

DNS:自动获取

开始设置:

  1. 查看本机的路由表:

    开始->运行->CMD,使用命令:route print
    
  2. 更新本机的默认网关:

    route add 0.0.0.0 mask 0.0.0.0 192.168.2.1
    

    这条命令的作用是让本机的所有网络连接都使用外网网卡,也就是网关为192.168.2.1的网卡。

  3. 让所有内网的网络连接都是用内网网卡:

    route add 10.0.0.0 mask 255.0.0.0 10.69.4.1
    

    这句话的作用是,让所有访问10.x.x.xIP地址的连接都是用内网网卡,也就是网关为10.69.4.1的网卡。

OK!大功告成!