让双网卡一台电脑拥有两个网关

时间:2024-03-11 09:19:56

http://nt04.blog.163.com/blog/static/3297804920097510212881/

首先要声明一点,双网卡一台电脑拥有两个网关是不可能的,因为默认网关(default gateway)只能是一个。

给服务器安装两块网卡,分别设置不同的ip和网关(内网和外网),外网的通过外网网卡来访问,内网的通过内网网卡来访问,似乎实现起来很简单,但事实上很难啊,因为默认网关(default gateway)只能是一个!

解决的办法就是:

1、将其中一块网卡(如外网)设置默认网关;

2、手工加上一条静态路由,让另一个网段(内网)的数据经过第二个网卡。使用route命令,命令的范例如下,希望能帮某些同志一点小忙。

参考命令:

范例1、route add -p 10.0.0.0 mask 255.255.255.0 10.40.4.200(让对10.0.0.1的访问走10.40.4.200的网卡,mask 后面是子网掩码)

范例2、route add -p 10.0.0.0 mask 255.0.0.0 10.40.4.200

范例3、route add -p 0.0.0.0 mask 0.0.0.0 10.40.4.200(不用说了吧,让所有的访问走10.40.4.200)

说明:

1、加上-p参数,加入的路由为永久路由,不会因为电脑重新启动而被初始化。10.40.4.200是我的电脑网卡IP。 输入route 可以得到更多的帮助。

2、如果你的电脑已经有两个网关(如使用了SoftEther),用route print可以看到两条0.0.0.0的路由,可以先删除0.0.0.0的路由,然后重新添加。

route delete 0.0.0.0         “删除所有0.0.0.0的路由”

附:在网络上找资料时,常常看到有人在问类似的问题,可以看出大家对路由方面的知识很陌生。于是提供以下资料,供大家参考:

1、《解读route命令》http://www.kpcn.org/news/Read.asp?NewsID=8527
2、《学习Windows网络命令之route命令小档案》http://www.kpcn.org/news/Read.asp?NewsID=8528

========= 以下是另一篇文章的内容 ============

经常遇到一台计算机要同时访问两个网络(一个是互联网,一个是企业内部网)的要求。以本单位为例:地址是虚构的^_^
机器有两块网卡,接到两台交换机上
internet地址:218.22.123.123,子网掩码:255.255.255.0,网关:218.22.123.254
企业内部网地址:10.128.123.123,子网掩码:255.255.255.0,网关:10.128.123.254
如果按正常的设置方法设置每块网卡的ip地址和网关,再cmd下使用route print查看时会看到
Network Destination Netmask Gateway Interface Metric
0.0.0.0  0.0.0.0  218.22.123.254  218.22.123.123  20
0.0.0.0  0.0.0.0  10.128.123.254  10.128.123.123  1
即指向0.0.0.0的有两个网关,这样就会出现路由冲突,两个网络都不能访问。要实现同时访问两个网络就要用到route命令
第一步:route delete 0.0.0.0          ”删除所有 0.0.0.0 的路由"
第二步:route add 0.0.0.0 mask 0.0.0.0  218.22.123.254          "添加 0.0.0.0 网络路由"
第三步:route add 10.0.0.0 mask 255.0.0.0  10.128.123.254    "添加 10.0.0.0 网络路由"
这时就可以同时访问两个网络了,但碰到一个问题,使用上述命令添加的路由在系统重新启动后会自动丢失,怎样保存现有的路由表呢?
在win2000 下可以使用route add -p 添加静态路由,即重启后,路由不会丢失。注意使用前要在tcp/ip设置里去掉接在企业内部网的网卡的网关。

============= Linux下双网卡双网关配置路由表 =============

http://hi.baidu.com/xibeihuohu/blog/item/a54d27fd18b8bf1f08244d1a.html

由于电信和网通之间互联互通的问题,很多人选择双线路机房, 所谓双线路机房就是拥有两条出口,一条电信一条网通。最近在一个双线路机房测试一台服务器,打算作为论坛的数据库服务器使用,服务器操作系统为 Linux。计划配置为双IP,双域名,使得浏览者通过电信和网通两条线路都能正常访问服务器,而且各走各的,互不影响。在配置网络的时候遇到了问题,由 于Linux默认只有一个网关,在网络上查询了很久,找到一个解决方案,因此整理了一下。感谢原文作者jac003ke。

服务器操作系统RedHat linux 9,设置两张路由表
1. vi /etc/iproute2/rt_tables,增加网通和电信两个路由表
251 tel   电信路由表
252 cnc 网通路由表

2. 给网卡绑定两个地址用于电信和网通两个线路
ip addr add 192.168.0.2/24 dev eth0
ip addr add 10.0.0.2/24 dev eth1

3、分别设置电信和网通的路由表

电信路由表:
#确保找到本地子网
ip route add 192.168.0..0/24 via 192.168.0.2 dev eth0 table tel
#内部回环网络
ip route add 127.0.0.0/8 dev lo table tel
#192.168.0.1为电信网络默认网关地址
ip route add default via 192.168.0.1 dev eth0 table tel

网通线路路由表:
#确保找到本地子网
ip route add 10.0.0.0/24 via 10.0.0.2 dev eth1 table cnc
#内部回环网络
ip route add 127.0.0.0/8 dev lo table cnc
#10.0.0.1是网通的默认网关
ip route add default via 10.0.0.1 dev eth1 table cnc

4、电信和网通各有自己的路由表,制定策略,让192.168.0.2的回应数据包走电信的路由表路由,10.0.0.2的回应数据包走网通的路由表路由
ip rule add from 192.168.0.1 table tel
ip rule add from 10.0.0.1 table cnc