LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 912|回复: 5

如何实现两种或以上的上网方式共用?

[复制链接]
发表于 2005-5-31 20:19:33 | 显示全部楼层 |阅读模式
我们公司有一条ADSL 是固定IP  不需要拨号 网卡口为eth0
172.31.13.100
255.255.255.0
网关 172.31.13.1
只要以上信息配置正确就能直接连接网络

另外一个是视信宽带,其以DHCP上网方式  网卡接中为 eth1
只需获取到一个类似10.10.10.10 的IP地址就能上网

现在我们公司的IP为 192.168.1.1~254

连接内部网络的IP为 eth2



我们单用一种上网方是是可以的,(用iptables 做转发 单用adsl客记机能上网,DHCP的也一样)

请问,我想用 用iptables实现

设定 192.168.100~130 用 DHCP方式的视信宽带上网

192.168.131~150 这段IP用 ADSL 固态IP上网

其它的不允许上网

请问应该如何去做?
发表于 2005-5-31 21:31:33 | 显示全部楼层
你需要策略路由,实现起来不难:
1、安装ip route工具,为每个出口分别建立路由表;
echo 100 adsl > /etc/iproute2/rt_tables
echo 120 video > /etc/iproute2/rt_tables
ip route add default via 172.31.13.1 table adsl
ip route add default via 10.10.10.1 table video
假设10.10.10.1是网关

2、使用iptables为不同客户机数据包打标记(mark);
iptables -t mangle -A PREROUTING -m iprange --src-range 192.168.100-192.168.100.130 -j MARK --set-mark 0x120
iptables -t mangle -A PREROUTING -m iprange --src-range 192.168.131-192.168.100.150 -j MARK --set-mark 0x100


3、用这些标记建立路由规则;
ip rule add fwmark 0x100 lookup adsl
ip rule add fwmark 0x120 lookup video

4、使用Iptables为两个出口做nat;
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 172.31.13.100
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 10.10.10.10

5、去除缺省网关,防止其他客户机上网。
route del default
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-31 23:51:13 | 显示全部楼层
谢谢 memory  的解答.. 我试试,很感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-1 20:40:15 | 显示全部楼层
memory的方法不错,但是我听我老师说还有一种不需要安装iproute2的方法, 但过程跟memory是一样的,也是用标记的方法实现!
看来还需要再找找
回复 支持 反对

使用道具 举报

发表于 2005-6-2 11:44:41 | 显示全部楼层
呵呵,你可以考虑负载平衡。策略路由没有多大意义吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-2 12:23:06 | 显示全部楼层
楼上的, 你有更好的解决方法吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表