搜索
您的当前位置:首页正文

电信网通双线自切

来源:好走旅游网
电信网通双线自切—速度问题解决全过程

前不久做了个双线策略路由后.又有了这么一个想法

前因:同段ip切换速度会自己向下掉啊掉~保持不住,不稳定

Internet | | | | 电信 网通 | | | 交换机 | eth1 eth2 Server eth0 | _____________

客户机 客户机 客户机 客户机192.168.0.0/24 网关192.168.0.254

其中eth0 ip 192.168.0.0/24

eth1 222.168.1.3/255.255.255.252 eth2 218.62.3.3/255.255.255.252 默认网关为网通的218.62.3.2

加上ip route add的电信网关 222.168.1.2

部分脚本为

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3 *** *** ***

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 218.62.3.3

这样呢就实现了一个网段的电信网通自动切换

前期测试:如果单独切换ip,内网同时并存192.168.0.254/24 192.168.2.254/24两个网关,速度很稳定,可以实现预期效果

现在我有这么一个想法,如下:

加入 eth0:1,ip为192.168.2.254/24

ip rule 192.168.2.254,配合着上边电信的路由~

下边的客户机依然用192.168.0.254做默认网关

当客户机访问电信ip段时,能否自动通过192.168.0.254这个网关转到192.168.2.254这个网关,以实现最佳的预期效果呢?

route add -net 192.168.0.0 netmask 255.255.255.0 dev 192.168.2.254

能否实现我的这个想法呢?

platinum 回复于:2005-04-26 16:23:10

以下是我根据你的情况,自己总结的,你试一下

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table

# ip route add default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1

# ip rule add fwmark 1 table DIANXIN

# ip route flush cache

# iptables -t nat -F

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

参考文档:

http://iptables-tutorial.frozentux.net/cn/iptables-tutorial-cn-1.1.19.html http://www.linuxaid.com.cn/engineer/ideal/article/policy_pouting.htm http://bbs.chinaunix.net/forum/viewtopic.php?t=304033&highlight=platinum

扫净缘客 回复于:2005-04-26 21:12:08

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route add default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # ip rule add fwmark 1 table DIANXIN # ip route flush cache # iptables -t nat -F

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

其中# iptables -t nat -F 這句話是為了什麼? 其他的我都能理解 請指教

双眼皮的猪 回复于:2005-04-26 21:13:07

清掉nat表所有规则... 呵呵.刚看到你的帖子....

扫净缘客 回复于:2005-04-26 21:31:37

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route add default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # ip rule add fwmark 1 table DIANXIN # ip route flush cache # iptables -t nat -F

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

這個我知道,但是如果清除NAT那規則還能起道相應作用嗎?:?

我現在的系統是繁體版的.所以用這不太方便 雙雙~

請再幫忙作解釋

扫净缘客 回复于:2005-04-26 21:39:29

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3 *** *** ***

我這話意思是將被訪問的電信IP分給我電信IP 如果按照

iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1

作嵌套 我有需要修改的地方嗎??

例如--set-mark \"1 \" 是否需要作修改????

platinum 回复于:2005-04-26 21:45:13

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3 这么用是不对的,你没有搞清楚NAT和ROUTE的区别

扫净缘客 回复于:2005-04-26 21:55:56

引用:原帖由 \"platinum\" 发表:

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3

这么用是不对的,你没有搞清楚NAT和ROUTE的区别

確實,我剛按照你寫的簡單的修改了以下

但是感覺好像都差不多.速度也沒變化

者能是那裡出的問題呢???

如果加上

route add -net default gw 222.168.1.3 dev eth1 的話

速度會達到1M左右,現在只能測試到200-300左右

扫净缘客 回复于:2005-04-26 22:07:47 按照

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route add default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # ip rule add fwmark 1 table DIANXIN # ip route flush cache # iptables -t nat -F

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE 的修改

開電信業網通的速度確實快了許多

但是沒有用

route add -net default gw 222.168.1.2 dev eth1

快/請問這到底是為甚麼呢

platinum 回复于:2005-04-26 22:24:16

route add -net default gw 222.168.1.2 dev eth1 这句话是什么意思呢?好像多了一个“-net” 应该是route add default gw 222.168.1.2 dev eth1吧?

我也不太清楚为什么,route -n看到的,和ip route看到的都是两个默认路由 但是到底为什么会快那么多,我也不清楚,还请高人指教 另外,我也晕了,两个默认路由,到底走哪个?

扫净缘客 回复于:2005-04-26 22:40:58

呵呵.不知道怎麼回事

我這麼加了規則

速度就正常了

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route add default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # ip rule add fwmark 1 table DIANXIN # ip route flush cache

iptables -t nat -I POSTROUTING -s $PRIVATE -d 59.0.0.0/11 -j SNAT --to $DIANXIN iptables -t nat -I POSTROUTING -s $PRIVATE -d 60.0.0.0/11 -j SNAT --to $DIANXIN iptables -t nat -I POSTROUTING -s $PRIVATE -d 61.0.0.0/11 -j SNAT --to $DIANXIN

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

縣在的速度非常的理想

奇怪奇怪

扫净缘客 回复于:2005-04-26 22:44:56

1673 82030 MARK all -- eth0 * 192.168.0.0/24 61.155.0.0/16 MARK set 0x1 0 0 MARK all -- eth0 * 192.168.0.0/24 61.154.0.0/16 MARK set 0x1

0 0 MARK all -- eth0 * 192.168.0.0/24 61.153.0.0/16 MARK set 0x1 555 37340 MARK all -- eth0 * 192.168.0.0/24 61.152.0.0/16 MARK set 0x1 18 4416 MARK all -- eth0 * 192.168.0.0/24 61.151.0.0/16 MARK set 0x1 0 0 MARK all -- eth0 * 192.168.0.0/24 61.150.0.0/16 MARK set 0x1 2279 103K MARK all -- eth0 * 192.168.0.0/24 61.147.0.0/16 MARK set 0x1 0 0 MARK all -- eth0 * 192.168.0.0/24 61.146.0.0/16 MARK set 0x1 0 0 MARK all -- eth0 * 192.168.0.0/24 61.145.0.0/16 MARK set 0x1 81 7854 MARK all -- eth0 * 192.168.0.0/24 61.144.0.0/16 MARK set 0x1 0 0 MARK all -- eth0 * 192.168.0.0/24 61.143.0.0/16 MARK set 0x1 0 0 MARK all -- eth0 * 192.168.0.0/24 61.142.0.0/16 MARK set 0x1 209 17120 MARK all -- eth0 * 192.168.0.0/24 61.141.0.0/16 MARK set 0x1

0 0 SNAT all -- * * 192.168.0.0/24 219.240.0.0/15 to:222.168.1.3 10 488 SNAT all -- * * 192.168.0.0/24 219.238.0.0/15 to:222.168.1.3 0 0 SNAT all -- * * 192.168.0.0/24 219.235.0.0/18 to:222.168.1.3 1 56 SNAT all -- * * 192.168.0.0/24 219.234.0.0/16 to:222.168.1.3 1 91 SNAT all -- * * 192.168.0.0/24 219.159.128.0/17 to:222.168.1.3

如果我去掉 SNAT的規則,速度就慢了

這是為甚麼呢

platinum 回复于:2005-04-26 22:46:23

哦,我明白了 你我都犯了一个错误

你只顾伪装源地址,忘记了修改路由

我正好相反,只顾修改路由跳转,忘了正确伪装源地址

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route replace default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # ip rule add fwmark 1 table DIANXIN # ip route flush cache # iptables -t nat -F

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d $电信地址-j SNAT --to $电信网卡的WAN

地址

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $网通网卡的WAN地址

这样试试

扫净缘客 回复于:2005-04-26 22:58:56

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route replace default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # ip rule add fwmark 1 table DIANXIN # ip route flush cache # iptables -t nat -F

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d $电信地址-j SNAT --to $电信网卡的WAN地址

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $网通网卡的WAN地址

哈哈哈哈

一切終於正常了

額且最有意思的就是與順序有關 得先

iptables -t mangle -I PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1 iptables -t mangle -I PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1 再這個

iptables -t nat -I POSTROUTING -s $PRIVATE -d 222.222.5.0/15 -j SNAT --to $DIANXIN iptables -t nat -I POSTROUTING -s $PRIVATE -d 222.240.0.0/13 -j SNAT --to $DIANXIN

然後規則用

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $网通网卡的WAN地址

一切OK

如果點到了SNAT,呵呵.默認的網通就成電信了

有待捉摸

扫净缘客 回复于:2005-04-26 23:09:54

非常感謝

platinum,雙雙,何看帖子的兄弟門

platinum 那 種耐心的精神 雙雙那悠默的回復

知識這東西,學無止境

但是更應該虛心的向

能耐心幫忙分析,解決問題的朋友學習

謝謝個位的幫助

非常感謝

:em03: :em03: :em03: :em03:

platinum 回复于:2005-04-26 23:10:42

呵呵,这也就是我为什么 iptables -t nat -F 的原因了

我没写mangle表,你也可以加一个 iptables -t mangle -F 然后把-I换成-A就可以了

我总结一下,正确的是

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table(这个是添加到文件,执行一次即可)

# ip route replace default via 222.168.1.2 table DIANXIN

# ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查看)

# iptables -t nat -F

# iptables -t mangle -F

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接网通线路网卡的地址

# ip route flush cache

这样的结果,是访问222.222.5.0/15和222.240.0.0/13走电信网卡、电信路由,伪装成电信出口地址,其他默认网通

参考文档:

http://iptables-tutorial.frozentux.net/cn/iptables-tutorial-cn-1.1.19.html http://www.linuxaid.com.cn/engineer/ideal/article/policy_pouting.htm http://bbs.chinaunix.net/forum/viewtopic.php?t=304033&highlight=platinum

扫净缘客 回复于:2005-04-26 23:17:30

一直麻煩你都覺得不好意思了

明天寫感謝到論壇 呵呵~~

platinum 謝謝了 雙雙~~ 謝謝了~~ 謝謝個位

扫净缘客 回复于:2005-04-26 23:21:07

為甚麼規則不用 -I 而改成 -A呢?

如果都是-A的話.不就沒有先後了嗎

platinum 回复于:2005-04-26 23:25:14

-A是append,是追加

-I是insert,是插入,默认插入到第一条

platinum 回复于:2005-04-26 23:26:49

引用:原帖由 \"扫净缘客\" 发表:

一直麻煩你都覺得不好意思了

明天寫感謝到論壇

呵呵~~

platinum 謝謝了

雙雙~~ 謝謝了~~ 謝謝個位

我已经写好了^_^

http://blog.platinum.net.cn/index.php?op=ViewArticle&articleId=59&blogId=1

急不通 回复于:2005-04-27 10:55:12

我搞linux路由比较菜,来谈谈我的看法:我理解在iptables里面加mark的作用好像就是给去向电信的数据打上标后在route里面根据mark将其路由到相应的电信网卡出去。

如果是我做的话,1、直接在route表里面加上电信地址段的路由,默认路由(网通);2、在iptables里面顺序加 “-d 电信网段 -j SNAT 电信地址 ”,和“-j SNAT 网通地址”(其余的nat成网通地址)

应该就可以了吧?

sxwccna 回复于:2005-04-27 10:57:37

能否说一下。内核用不用打上补丁什么的?

我看了一个文档上说需要给内核打补丁才行。版主是否对此方法作了真正的测试。另外电信的IP地址段只指这两个222开头的就可以了吗?其它的不用 指定吗?另外是用SNAT还是用IP伪装更好呢?现是说两个都是一样的。因为是两个ISP出口不比一个ISP出口。版主回复帖子的速度让人佩服。谢谢你。 我在线等。我只是觉得P2P的速度更快一些。找人方便一点。另外是否需要对两个默认出口的电信或者网通线路指定优先级。有一个linux多重上连的 LINUX高级路由的文档版主应该看过。那里有指定两个出口的优先级的啊?

platinum 回复于:2005-04-27 10:59:29

急不通的想法和我之前的想法一样

ip route add $要访问电信网段 via $电信网卡下一跳 然后将 $要访问电信网段 SNAT成 $电信网卡WAN地址

不过我没法试验,不知道是否可行,我认为应该可以,希望扫净缘客利用现有环境再测一下

扫净缘客 回复于:2005-04-27 11:27:32

剛才還看到有朋友問是否需要給LINUX打甚麼補丁,不用的

我打的補丁只是給iptables 升級

因為我要限制內網的各種P2P

扫净缘客 回复于:2005-04-27 11:34:55

59.0.0.0/11 59.32.152.0/16 59.34.3.0/16 59.35.240.0/20 59.36.0.0/16 59.37.88.0/24 59.37.90.0/12 59.48.64.0/13 59.56.0.0/16 59.104.0.0/15 59.112.0.0/16 59.148.0.0/15 59.154.0.0/16 60.13.138.0/23 60.24.11.0/24 60.48.0.0/13 60.154.152.0/24 60.160.0.0/15 60.162.0.0/16 60.163.0.0/16 60.164.0.0/15 60.166.0.0/12 61.51.125.0/23 61.55.24.7/24 61.128.0.0/17 61.128.128.0/19 61.128.168.0/24 61.128.171.0/24 61.128.207.236/32 61.128.219.0/24

61.128.250.0/23 61.128.252.43/25 61.129.45.0/24 61.129.66.0/24

platinum 回复于:2005-04-27 11:35:11

引用:原帖由 \"platinum\" 发表:

急不通的想法和我之前的想法一样

ip route add $要访问电信网段 via $电信网卡下一跳

然后将 $要访问电信网段 SNAT成 $电信网卡WAN地址

不过我没法试验,不知道是否可行,我认为应该可以,希望扫净缘客利用现有..........

扫净缘客这样再试一下,注意顺序,我认为主要还是由于SNAT顺序问题造成的

先iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d $要访问电信网段 -j SNAT --to $电信网卡WAN地址

再iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $网通网卡WAN地址

扫净缘客 回复于:2005-04-27 11:40:49

先iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d $要访问电信网段 -j SNAT --to $电信网卡WAN地址

再iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $网通网卡WAN地址

這樣做,再加上策略路由的電信網關,速度是不穩定的,會自己掉啊掉.而其最奇怪的就是電信沒有網通快

昨天我們一起完成的那腳本.速度就特別的爽,簡直了

在浩方上打CS的速度保持到5ms.下載的速度電信900k保持,網通1.1m保持

急不通 回复于:2005-04-27 11:41:12

还有就是route表里面添加明确的 到电信网段的 项目,而不是第二个默认路由

platinum 回复于:2005-04-27 11:43:48

引用:原帖由 \"急不通\"]还有就是route表里面添加明确的 到电信网段的 项目,而不是第二个默认路由

发表:

他就是那么做的,我也是那么写的

sxwccna 回复于:2005-04-27 11:44:50

你这些IP地址段是不是都要

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN 这种格式的一个一个的添加进入。是不是一个一个的添加进去呢?

P2P的补丁你测试对P2P软件的禁用效果如何啊?给个P2P补丁的下载地址好吗?

扫净缘客 回复于:2005-04-27 11:46:20

:em03: :em03: :em02:

昨天的那個過程很完美

還有就是最重要的就是順序

如果順序錯了.呵呵.那就是那個默認網關在前邊那個快

試了一個晚上到現在.一直穩定

更有其限制了網內的P2P,呵呵,速度爽呆了

platinum 回复于:2005-04-27 11:47:05

引用:原帖由 \"sxwccna\" 发表:

你这些IP地址段是不是都要

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240..........

是的,都要

如果你的shell功底好,可以写一个配置文件,然后用巧妙的方法导入为变量,做个循环依次添加策略和规则

ipp2p去http://ftp.netfilter.org,下载一个patch-o-matic-ng,给netfilter打补丁

扫净缘客 回复于:2005-04-27 11:51:05

platinum 說的對

還有就是利用一些特殊的內網段口,還可以限制poco,擺度下巴,BT甚麼拖拉機

只要是打上了补丁,就一切ok了

platinum 回复于:2005-04-27 11:52:44

关于给netfilter添加模块,给iptables添加功能,可以参考

http://bbs.chinaunix.net/forum/viewtopic.php?t=505370&highlight=platinum

扫净缘客 回复于:2005-04-27 11:58:02

引用:原帖由 \"sxwccna\" 发表:

可惜我的SHELL功底不好啊。版主老大能不能给出一个完整的SHELL脚本啊。 另外我看了P2P的补丁有好多的啊。楼主用的是哪个版本啊。 我也好着急。希望可以弄好这个事情。希望楼主和版主多帮忙啊。 还有就是我也好羡?.........

可別這麼說,其實要沒有platinum何雙雙他們的幫助

我也不會有那麼大膽的想法.即使有.按照我的功力也做不到的

所以,我們應該一起向platinum 鞠躬~~

platinum 回复于:2005-04-27 11:58:53

我的shell也不好,正在学,不过我知道用shell可以实现…… :oops:

扫净缘客 回复于:2005-04-27 12:06:15

587 34741 SNAT all -- * * 192.168.0.0/24 60.194.0.0/15 to:222.168.1.3 131 7017 SNAT all -- * * 192.168.0.0/24 60.184.0.0/13 to:222.168.1.3 187 10386 SNAT all -- * * 192.168.0.0/24 60.180.0.0/14 to:222.168.1.3 37 2092 SNAT all -- * * 192.168.0.0/24 60.178.0.0/15 to:222.168.1.3 10 674 SNAT all -- * * 192.168.0.0/24 60.177.0.0/16 to:222.168.1.3 121 6256 SNAT all -- * * 192.168.0.0/24 60.176.0.0/16 to:222.168.1.3 175 9630 SNAT all -- * * 192.168.0.0/24 60.160.0.0/12 to:222.168.1.3

4186 493K MARK all -- eth0 * 192.168.0.0/24 60.176.0.0/16 MARK set 0x1 13527 5878K MARK all -- eth0 * 192.168.0.0/24 60.160.0.0/12 MARK set 0x1 5354 1194K MARK all -- eth0 * 192.168.0.0/24 60.164.0.0/15 MARK set 0x1 2068 287K MARK all -- eth0 * 192.168.0.0/24 60.163.0.0/16 MARK set 0x1 1975 1572K MARK all -- eth0 * 192.168.0.0/24 60.162.0.0/16 MARK set 0x1

96 5549 MARK all -- eth0 * 192.168.0.0/24 60.160.0.0/15 MARK set 0x1 0 0 MARK all -- eth0 * 192.168.0.0/24 60.154.152.0/24 MARK set 0x1

156K 7844K SNAT all -- * * 192.168.0.0/24 0.0.0.0/0 to:xxx.xxx.xxx.xxx

platinum 回复于:2005-04-27 12:08:13

121 6256 SNAT all -- * * 192.168.0.0/24 60.176.0.0/16 to:222.168.16.194 175 9630 SNAT all -- * * 192.168.0.0/24 60.160.0.0/12 to:222.168.1.3

4186 493K MARK all -- eth0 * 192.168.0.0/24 60.176.0.0/16 MARK set 0x1 13527 5878K MARK all -- eth0 * 192.168.0.0/24 60.160.0.0/12 MARK set 0x1

你这样写什么意思?

扫净缘客 回复于:2005-04-27 12:13:26

#iptables -t mangle -L -v -n

#iptables -t nat -L -v -n

抓下的一小部分 呵呵

說明 分開了速度爽

不過我還真有個問題想再問問

我機器上有SSH,開放端口22 我 用

iptables -A INPUT -p tcp -s $ip -d $ip --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport -j DROP

怎麼還能發現有人在掃描我呢

platinum 回复于:2005-04-27 12:14:44

121 6256 SNAT all -- * * 192.168.0.0/24 60.176.0.0/16 to:222.168.16.194 175 9630 SNAT all -- * * 192.168.0.0/24 60.160.0.0/12 to:222.168.1.3

4186 493K MARK all -- eth0 * 192.168.0.0/24 60.176.0.0/16 MARK set 0x1 13527 5878K MARK all -- eth0 * 192.168.0.0/24 60.160.0.0/12 MARK set 0x1

我是想问你,两个目标网段走相同的路由,但是伪装成不同的IP地址 你是不是写错了?

扫净缘客 回复于:2005-04-27 12:18:50

156K 7844K SNAT all -- * * 192.168.0.0/24 0.0.0.0/0 to:xxx.xxx.xxx.xxx 呵呵

platinum 回复于:2005-04-27 12:19:59

啥意思?我说对了还是说错了还是你为了保密?

扫净缘客 回复于:2005-04-27 12:25:02

-j SNAT 和 -t mangle PREROUTING

的組合,完全正確

platinum 回复于:2005-04-27 12:27:56

引用:原帖由 \"扫净缘客\" 发表: -j SNAT 和 -t mangle PREROUTING

的組合,完全正確

晕,你在所问非所答

你看看自己贴的那个iptables -vnL的结果,里面有个电信地址,SNAT to了一个和其他不一样的IP

是不是你写错了,还是有什么特殊意义

扫净缘客 回复于:2005-04-27 12:28:14

# echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table(这个是添加到文件,执行一次即可) # ip route replace default via 222.168.1.2 table DIANXIN(replace用来替换默认路由,而不是添加) # ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查看) # iptables -t nat -F # iptables -t mangle -F

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK

--set-mark 1

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接网通线路网卡的地址 # ip route flush cache

就是這個過程寫下來的 剛才用

#iptables -t mangle -L -v -n #iptables -t nat -L -v -n

看了一眼~~

cx6445 回复于:2005-04-27 16:11:34

写个脚本进行log采样,取超过阀值的IP,再用脚本动态更新到INPUT规则

扫净缘客 回复于:2005-04-27 20:04:46

我shell不会啊

请问要如何写这个脚本呢?

sxwccna 回复于:2005-04-27 20:15:36

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN 你现在脚本是这样执行的还是

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN 像上面的顺序执行的啊?请问版本主两者有没有区别。如果是IP地址段。 59.0.0.0/11 59.32.152.0/16 59.34.3.0/16

59.35.240.0/20 59.36.0.0/16 59.37.88.0/24 59.37.90.0/12 59.48.64.0/13

这全是你那样的执行顺序吗?还是我说的后者。或者这两种都是可以的呢? 希望楼主能试验一下告诉我好吗?非常感谢。

扫净缘客 回复于:2005-04-27 20:16:47

引用:原帖由 \"sxwccna\" 发表:

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark ..........

是这个,ip的顺序无所谓的

但是一定要注意规则本身的顺序.否则会有问题

扫净缘客 回复于:2005-04-27 20:20:10

sxwccna~~

你说的后者是不行的.如果那样运行.

如果你采用的默认路由是电信,那它就会自动切到网通的路由上

其他则反之~

platinum 回复于:2005-04-27 20:24:53

引用:原帖由 \"sxwccna\" 发表:

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN

你现在脚本是这样执行的还是

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN

像上面的顺序执行的啊?请问版本主两者有没有区别。如果是IP地址段。

二者没区别,因为他们出于不同的表里面

platinum 回复于:2005-04-27 20:25:33

引用:原帖由 \"扫净缘客\" 发表: sxwccna~~

你说的后者是不行的.如果那样运行.

如果你采用的默认路由是电信,那它就会自动切到网通的路由上

其他则反之~

错,如果默认路由是电信,其他不变,那么所有路由都走电信了,只不过有部分通过SNAT出去的数据包回来的时候走网通

扫净缘客 回复于:2005-04-27 21:49:04

嘿嘿.那天我把iptables -t mangle 和iptables -t nat -I的规则写反了.就先了电信,而我的默认路由是网通~~

把他们反过来就O了~

platinum 回复于:2005-04-27 22:01:22

引用:原帖由 \"扫净缘客\" 发表:

嘿嘿.那天我把iptables -t mangle 和iptables -t nat -I的规则写反了.就先了电信,而我的默认路由是网通~~

把他们反过来就O了~

你只知其然,还没知其所以然

去研究一下NAT的路由的区别,以及iptables的-A、-I、-F参数,还有ip rule的用法以及iptables中MARK的用法

你的言语当中不经意总能流露出一些对概念的不理解,做学问这样不好

扫净缘客 回复于:2005-04-27 23:24:41

嘿嘿,虚心学习~~()

ttvast 回复于:2005-04-28 03:33:52

我有一些不知道大家是怎么想问题的,向这种问题根本不需要使用到iproute2的任何特性啊. 根据目标网络来路由是路由的基本功能. 实现你们说的功能我觉得只需要这样写 n句如下语句

route add -net 电信网段 gw 电信网关 route add default gw 网通网关

当然上面也可以反过来,取决与你希望用电信还是网通做缺省的路由. NAT配置如下

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-destination 电信IP iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-destination 网通IP 这里假设你的eth0连电信,eth1连网通. 就这样啊,很简单啊,根本不需要复杂的设置.

除非当你需要对源地址匹配,或者TCP/UDP端口匹配等进行路由选择才需要用到MARK或者iproute2的功能

platinum 回复于:2005-04-28 07:38:51

引用:原帖由 \"platinum\" 发表:

急不通的想法和我之前的想法一样

ip route add $要访问电信网段 via $电信网卡下一跳

然后将 $要访问电信网段 SNAT成 $电信网卡WAN地址

不过我没法试验,不知道是否可行,我认为应该可以,希望扫净缘客利用现有环境再测一下

我提出过这样的测试方式(因为我没做过),但扫净缘客告诉我的结论是这样做过,但是不行,不明白了 :em17:

sxwccna 回复于:2005-04-28 07:52:10

请版主发脚本让楼主再好好测试一下看看如何? 我们大家是作学问吗?就像版主说的要弄通才好啊?

最主要是在实际应用中找出最好的解决方法。楼主可能就要辛苦些了。

但是我觉得这种作东西成功的喜悦还是非常好的。请版主和楼主辛苦再试一下。看看。到底用不用IPROUTE2和MARK这需要实际的测试才能知道。大家伙辛苦啊。再看看。

扫净缘客 回复于:2005-04-28 09:09:41

引用:原帖由 \"ttvast\" 发表:

我有一些不知道大家是怎么想问题的,向这种问题根本不需要使用到iproute2的任何特性啊. 根据目标网络来路由是路由的基本功能. 实现你们说的功能我觉得只需要这样写 n句如下语句

route add -net 电信网段 gw 电信?.........

不好意思.我按照你的意思,又做了下测试~结果很明显

默认网关归了电信,电信下载速度够快,打网通网页都打不开~~

呵呵,只能又改回来了

扫净缘客 回复于:2005-04-28 09:22:02

[root@vpnsrvtwo root]# route -n Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface 222.168.1.1 0.0.0.0 255.255.255.252 U 0 0 0 eth1 218.62.3.1 0.0.0.0 255.255.255.248 U 0 0 0 eth2 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2 0.0.0.0 218.62.3.2 0.0.0.0 UG 0 0 0 eth2 [root@vpnsrvtwo root]#

现在我默认的路由是网通

如果执行了\"route add default gw 电信网关\" 这句话

就会成这样的显示

[root@vpnsrvtwo root]# route -n Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface 222.168.1.1 0.0.0.0 255.255.255.252 U 0 0 0 eth1 218.62.3.1 0.0.0.0 255.255.255.248 U 0 0 0 eth2 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2 0.0.0.0 222.168.1.2 0.0.0.0 UG 0 0 0 eth1 0.0.0.0 218.62.3.2 0.0.0.0 UG 0 0 0 eth2 [root@vpnsrvtwo root]#

然后执行iptables规则后就会发现

网通的网页根本就打不开

得到的结果也就是说,默认的路由走的是电信,即使你打开的网页是网通的~~

zxz0220 回复于:2005-04-28 09:25:53

引用:原帖由 \"ttvast\" 发表:

我有一些不知道大家是怎么想问题的,向这种问题根本不需要使用到iproute2的任何特性啊. 根据目标网络来路由是路由的基本功能. 实现你们说的功能我觉得只需要这样写 n句如下语句

route add -net 电信网段 gw 电信?.........

感觉很奇怪,楼主肯定这样做是把默认网关归了电信了吗?按照路由的意义来说这样做应该可以实现需要的功能啊

扫净缘客 回复于:2005-04-28 09:33:00

是的啊.给你两个地址,一个是电信的测试下载,一个是网通的测试下载

www.cc163.net/down (网通) http://cesu.cn60.com/ ( 电信)

如果你也是双线. 如果再加入route add default gw 电信网关

保证你打不开这个www.cc163.net/down测试页~

扫净缘客 回复于:2005-04-28 09:51:02

做完双切后.我上www.linkwan.com上去测速,发现走的是我电信的ip地址

然后我上我们自己的web页.发现ip走的是网通的ip地址

电信测速最高打扰1.5M,网通测速达到1.1m

说明platinum斑说的没有错~~思路很正确明晰~

扫净缘客 回复于:2005-04-28 11:39:50

默认的网关无所谓是那个,但是运行了route add default gw 电信网关或网通网关时,就会将路由改变到最后所加的这个路由上了

急不通 回复于:2005-04-28 11:42:22

引用:原帖由 \"扫净缘客\" 发表:

是的啊.给你两个地址,一个是电信的测试下载,一个是网通的测试下载

www.cc163.net/down (网通) http://cesu.cn60.com/ ( 电信)

如果你也是双线. 如果再加入route add default gw 电信网关

保证你打不开这?.........

改成

route add {电信地址段} gw 电信网关 route add default gw 网通网关

也就是说去往电信的地址走电信网关,去往其它地址段的走默认的网通网关,再试试!

扫净缘客 回复于:2005-04-28 11:43:41

说到网通和电信之间的相互限制,是全国性的,可不是只有长春限制呦~

例如www.bliao.com,是电信的,如果你用网通打,呵呵。速度就不爽

还有能在这里见到长春的朋友很开心.说明技术无界限,无国际

至于说到环境,我到是还比较方便的.我有个环境,有128个单ip可以提供给我.呵呵

电信现在的流量非常的大.估计日后的电信要提速了~~

sxwccna 回复于:2005-04-28 11:56:23

请问楼主在哪工作啊?我也在长春。方便的话交个朋友。 我QQ:26267778

sxwccna 回复于:2005-04-28 11:59:06

请问楼主在哪上班啊?很不错吗? 我在长春工作。你的QQ多少说一下?

你的环境正应该好好测试一下这个方案。太多人都没有这样的环境了。

有些东西只有网通或者电信的内部能才好弄到。 你的电信IP地址段都是全的吧?在哪弄的这么多啊?

急不通 回复于:2005-04-28 12:04:12

讲讲我的一个经历,看看能否对大家分析问题有所借鉴

Internet

| | | | X通 Y通 | | | | | (Y通IP) L3交换机---(X通IP)server | | _____________

客户机 客户机 客户机 客户机(X通IP)

我做过一个这样的路由优化,在L3上面把走X通效果不好的目标地址用策略指向server,再在server上把X通的IP nat成Y通的IP 后从Y通的线路走。曾经因为没有在server上明确声明直连的X通的地址段,结果从Y通线路返回的数据又都从Y通向X通发出去了(也就是没有从 nat Server内部路由),结果看流量图上Y通的口子上只有发,没有收!

platinum 回复于:2005-04-28 19:33:24

引用:原帖由 \"扫净缘客\" 发表:

现在我默认的路由是网通

如果执行了\"route add default gw 电信网关\" 这句话

就会成这样的显示

[root@vpnsrvtwo root]# route -n Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface 222.168.1.1 0.0.0.0 255.255.255.252 U 0 0 0 eth1 218.62.3.1 0.0.0.0 255.255.255.248 U 0 0 0 eth2 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2 0.0.0.0 222.168.1.2 0.0.0.0 UG 0 0 0 eth1 0.0.0.0 218.62.3.2 0.0.0.0 UG 0 0 0 eth2 [root@vpnsrvtwo root]#

你这样做就不对!

不是让你添加2条默认路由!

前面已经写的很清楚了!添加通往电信网段的路由走电信网关!!!

扫净缘客 回复于:2005-04-28 20:19:42 :em03:

platinum 回复于:2005-04-28 20:50:39

引用:原帖由 \"扫净缘客\" 发表:

还有platinum 兄弟~~

我回的那route add default gw那条.是回别人的帖子~~可不是我要写成

那你就用我和者急不通的方法试试?

woflyin 回复于:2005-04-29 22:42:25

有两种方法:一种是上述所讲的fwmark标志,另外一种是使用ip rule to destip/netmask lookup talbe DIANXIN的方法也是可以的

sxwccna 回复于:2005-04-30 08:48:12

难道论坛也是可以看用户的IP的吗?楼上的说的最好是测试过的啊? 请问楼上你的这个是经过测试的吗?

sxwccna 回复于:2005-04-30 09:06:42

echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table

上面的\"200 DIANXIN\"怎么理解的?难道不能用echo \"DIANXIN\">;>;/etc/iproute2/rt_table。这样吗?

为什么要用200还要加上空格呢?

platinum 回复于:2005-04-30 09:20:21

其实不用iproute也可以,iproute只不过是一种高级路由策略,可以细化到端口

jincin 回复于:2005-04-30 09:24:20

一直到现在还不是很明白

sxwccna 回复于:2005-04-30 09:38:38

两种方法。一种是路由加给数据包打标记。另外一种就是路由。 ip route replace default via 222.168.1.2 table DIANXIN

这句中用不用指定那的出口网卡。比如:ip route replace default via 222.168.1.2 dev eth0 table DIANXIN

这样呢?之前没有指定出口的网卡。不知道两者是不是一样的效果啊? 望版主和楼主再来看一下啊?

platinum 回复于:2005-04-30 09:46:16

不是不是,你的方法是更改了默认路由,而没有达到“专网专用”效果

sxwccna 回复于:2005-04-30 09:54:17

终于清晰了不少。

看来这里面的说法挺多的。 打标记还是一个不错的方法。

现在来说这里的人通过实践是通过的。 另外的方法不知道有没有实验通过了。

查了资料发现echo 200 dianxin这句不知道用不用加双引号还是为什么要用200这个数字?请版主告之。谢谢。

platinum 回复于:2005-04-30 09:58:32

引用:原帖由 \"sxwccna\" 发表:

终于清晰了不少。

看来这里面的说法挺多的。 打标记还是一个不错的方法。

现在来说这里的人通过实践是通过的。 另外的方法不知道有没有实验通过了。

查了资料发现echo 200 dianxin这句不知道用不用加双引号还是..........

只是一个序号而已,没什么特殊意思 不加双引号会报错

sxwccna 回复于:2005-04-30 10:06:05

反应之迅速。敬业精神值得大家敬礼啊。谢谢。非常感谢。

nozxb 回复于:2005-05-03 11:24:04

谢谢..不过我想请问下.......电信或者网通走另一通道... 楼主的示例只有二个..多了会不会影响效果?

麻烦楼主能不能把你正使用的脚本完全贴出来?可以把你的IP后二位去掉... 感谢大家了...

peng 回复于:2005-05-03 12:10:02

不知道楼主想实现什么东西,最好能说自己想实现什么目的。。

如果紧紧是链路备份,为什么必须申请一个网通,一个电信的?

不同的isp,接两个网通或者两个电信的也可以啊?

如果是解决互连互通问题,好像这样作,还不够吧。。

扫净缘客 回复于:2005-05-03 15:41:49

在某种特殊的环境中,电信与网通之间做了限制

更可以说是网通不希望电信线路来访问,电信也是如此

商业竞争吗,很正常

最简单的例子,如果你用的是网通的线路,可以上www.bliao.com去看看

保证没有电信线路进的快。而且前边我也给出了两个测试速度的网站

你可以到上边去测试下你下载的速度

如果你是电信,你根本是打不开网通的www.cc163.net/down这个页的

网通好象能打开电信的测试页,但是保证你下载不超过10kb左右

这就是我要做双线自切的初衷

更由于现在的游戏。电信服务器和网通服务器都很多

南方普遍都是电信线路,而北方又都是网通,铁通等等

我这么做,也无非是方便下边的使用

如果你也是玩游戏的,而你的环境是网通线路,你却要登陆电信的服务器

不卡死你才怪呢~~

呵呵,不多说了。技术这个东西也没什么好保留的,我也只不过是

方便了一批人的使用而已

昨天做好了l7,发现效果并不是那么的理想,还能被poco和百度下吧下载

没有我用ipp2p禁止的好。

更可以说是现在的p2p软件层出不穷,端口也有动态与静态的区分

真是觉得够罗嗦的了

努力~向所有人学习优点

jk0wg 回复于:2005-05-06 16:46:31

现在有的ISP为了满足客户访问不同ISP的服务器速度.就自己拉了一条其它ISP的网线到自己机房了...

比如电信的就拉一条网通的光纤到他们自己的机房.这样就提供了电信访问网通的服务器的速度了..

glider126 回复于:2005-05-10 17:14:32

为什么不是直接写1条走电信的静态路由,然后设置默认路由就是走网通的。然后给2块接电信和网通线路的网卡masquerade一下就好了,不用这么复杂吧~~~

platinum 回复于:2005-05-10 17:54:20

引用:原帖由 \"glider126\"]为什么不是直接写1条走电信的静态路由,然后设置默认路由就是走网通的。然后给2块接电信和网通线路的网卡masquerade一下就好了,不用这么复杂吧~~~

发表:

对,你说的这样也可以,但是楼主说测试不通过,所以只能让他这样做了,具体原因不明 这种方法是一种特殊应用,可以细化到端口(服务),属于一种高级应用

我在这里,第三次建议楼主再次试试大家说的方法!

peng 回复于:2005-05-10 18:43:38

引用:原帖由 \"扫净缘客\" 发表:

在某种特殊的环境中,电信与网通之间做了限制

更可以说是网通不希望电信线路来访问,电信也是如此

商业竞争吗,很正常

最简单的例子,如果你用的是网通的线路,可以上www.bliao.com去看看

保证没有电信?.........

我就是要你这个想法。。

我的意思说,如果你想实现你的这个想法,以上你们做的那些,是不行的,根本不能实现互连互通!

当然了,这是我看到你们写的东西,认为的。

你的测试结果,能达到吗?

platinum 回复于:2005-05-10 18:53:46

不是互通,是一个网吧,用双线解决上网慢的问题,因为有的client要访问网通服务器,而有的要访问电信服务器

其实不用这么复杂,但楼主说加静态路由的方式解决不了,奇怪! 我第四次强烈要求楼主对自己负责,再试一遍!

peng 回复于:2005-05-10 18:56:50

我知道的,是在router上做。。

还有,就是大家说的那种,写默认路由,但是需要nds做 match list吧。。这样,才能有进有出。因为进和出根据tcp/ip的协议,是一条的。

所以,大家说的不行,就是没有考虑另一方卖弄。。

platinum 回复于:2005-05-10 19:01:10

没有明白peng说的不行的道理

首先,让特殊目的走特殊路由,其次,让特殊目的使用特殊封包源地址 为何不行?

扫净缘客 回复于:2005-05-10 20:38:07

默认环境

eth0 192.168.0.0/22 eth1 电信ip eth2 网通ip

默认路由 route add default gw 网通网关 dev eth2

如果再加上一条route add default gw 电信网管 dev eth1

死定了,无论你网通多宽.都不行

platinum 回复于:2005-05-10 20:52:00

引用:原帖由 \"扫净缘客\" 发表:

默认环境

eth0 192.168.0.0/22 eth1 电信ip eth2 网通ip

默认路由 route add default gw 网通网关 dev eth2

如果再加上一条route add default gw 电信网管 dev eth1

死定了,无论你网通多宽.都不行

之前不是说了无数遍,还有一个POSTROUTING的iptables,要利用SNAT改变源地址嘛? 你始终没有领会这句话的意思,加上我已经3个人告诉过你了,你始终没自己看 唉~!

扫净缘客 回复于:2005-05-10 21:11:36

引用:原帖由 \"platinum\" 发表:

不是互通,是一个网吧,用双线解决上网慢的问题,因为有的client要访问网通服务器,而有的要访问电信服务器

其实不用这么复杂,但楼主说加静态路由的方式解决不了,奇怪! 我第四次强烈要求楼主对自己负责,再试..........

guliny 回复于:2005-05-12 18:43:55

不过确实是,用两条ADSL用IPROUTE做策略路由上网,也是经常掉线的问题.

platinum 回复于:2005-05-12 18:56:17

引用:原帖由 \"guliny\"]不过确实是,用两条ADSL用IPROUTE做策略路由上网,也是经常掉线的问题.

发表:

可以写个shell来解决这个问题

gouya 回复于:2005-05-12 23:01:02

引用:原帖由 \"ttvast\" 发表:

我有一些不知道大家是怎么想问题的,向这种问题根本不需要使用到iproute2的任何特性啊. 根据目标网络来路由是路由的基本功能. 实现你们说的功能我觉得只需要这样写 n句如下语句

route add -net 电信网段 gw 电信?.........

这要不行,那路由的理论恐怕要重写了,没有机会测试,自己理解。

lxy1220 回复于:2005-05-16 17:30:54

引用:原帖由 \"扫净缘客\" 发表: 59.0.0.0/11 59.32.152.0/16 59.34.3.0/16 59.35.240.0/20 59.36.0.0/16 59.37.88.0/24 59.37.90.0/12 59.48.64.0/13 59.56.0.0/16 59.104.0.0/15 59.112.0.0/16 59.148.0.0/15 59.154.0.0/16 60.13.13..........

仅仅这些ip是不是不够?

lxy1220 回复于:2005-05-16 23:28:59

请问搂主:用不用打开转发功能? echo \"1\" >; /proc/sys/net/ipv4/ip_forward

扫净缘客 回复于:2005-05-17 09:47:34

引用:原帖由 \"lxy1220\" 发表:

仅仅这些ip是不是不够?

自然不是了.还需要好多相应的ip呢

不过我这里到是还没遇到自己掉线之说

不过好象有人脱机挂有掉线的情况.一星期能有几次吧

其他人没出现过

lxy1220 回复于:2005-05-19 10:28:42

续双线路在开奇想!请各位高手发表高见!

http://bbs.chinaunix.net/forum/viewtopic.php?show_type=&p=3622904#3622904 可惜小弟没有实验环境!

glider126 回复于:2005-05-19 12:51:49

引用:原帖由 \"gouya\" 发表:

这要不行,那路由的理论恐怕要重写了,没有机会测试,自己理解。

怎么不行?

应该是这么写的,路由本来就是根据目的地址决定下一跳的地址的,

策略路由才是先根据源地址来选择要用的路由表,然后按照路由表确定下一跳的地址.

普通的路由过程就是根据数据包目的地址选路由的,不会去看数据包的源地址的.

geel 回复于:2005-05-19 12:56:28

去年做了一个,不过不是用iptables。电信网通两个网段,上千条路由,流量大了之后机器负载很高,速度开始变慢,基本没有实用价值了 目前长春的双线路网吧,基本都是非精确匹配

扫净缘客 回复于:2005-05-21 16:17:50

我也发现这个问题

我的服务器是宏基的5700,5块网卡做的路由+iptables双网自动切换。在没做这些之前cpu的利用律也就只有0.2%,现在差不多用了20%左右

尤其前几天我利用端口重定向的方法将web页也加进了服务器中。居然cpu只剩20-30%左右的资源。后来我去掉了这个规则以后。速度平均在85-90%空闲 尤其做了路由以后。下载速度不再掉啊掉的了~~稳定了许多

hew 回复于:2005-06-02 16:37:02

我搜索到的:

#CNCGROUP IP ADDRESS

#INFORMATION FROM HTTP://WWW.APNIC.NET NEATEHED BY LONG

#60.0.0.0 - 60.10.255.255 CNCGROUP Hebei Province Network #60.12.0.0 - 60.12.255.255 CNCGroup Zhejiang province network #60.13.0.0 - 60.13.63.255 CNCGroup Gansu province network #60.13.128.0 - 60.13.255.255 CNCGROUP XinJiang Province Network #60.16.0.0 - 60.23.255.255 CNCGROUP Liaoning province network #60.24.0.0 - 60.30.255.255 CNCGROUP Tianjin province network #60.31.0.0 - 60.31.255.255 CNCGROUP Neimeng Province Network #60.208.0.0 - 60.217.255.255 CNCGROUP Shandong province network #60.220.0.0 - 60.223.255.255 CNCGROUP Shanxi Province Network

#61.48.0.0 - 61.51.255.255 CNCGROUP Beijing province network #61.52.0.0 - 61.54.255.255 CNCGROUP Henan province network #61.55.0.0 - 61.55.255.255 CNCGROUP Hebei province network #61.133.0.0 - 61.133.127.255 CNCGROUP Shandong province network #61.134.96.0 - 61.134.127.255 CNCGROUP Neimenggu province network #61.135.0.0 - 61.135.255.255 CNCGROUP Beijing province network #61.136.64.0 - 61.136.127.255 CNCGROUP Henan province network #61.137.128.0 - 61.137.255.255 CNCGROUP Liaoning province network #61.138.0.0 - 61.138.63.255 CNCGROUP Heilongjiang province network #61.138.64.0 - 61.138.127.255 CNCGROUP Neimenggu province network #61.138.128.0 - 61.138.191.255 CNCGROUP Jilin province network #61.139.128.0 - 61.139.191.255 CNCGROUP Jilin province network #61.148.0.0 - 61.149.255.255 CNCGROUP Beijing province network #61.156.0.0 - 61.156.255.255 CNCGROUP Shandong province network #61.158.128.0 - 61.158.255.255 CNCGROUP Henan province network #61.159.0.0 - 61.159.63.255 CNCGROUP Hebei province network #61.161.0.0 - 61.161.63.255 CNCGROUP Jilin province network #61.161.128.0 - 61.161.255.255 CNCGROUP Liaoning province network #61.162.0.0 - 61.162.255.255 CNCGROUP Shandong province network

#61.163.0.0 - 61.163.255.255 CNCGROUP Henan province network #61.167.0.0 - 61.167.255.255 CNCGROUP Heilongjiang province network #61.168.0.0 - 61.168.255.255 CNCGROUP Henan province network #61.176.0.0 - 61.176.255.255 CNCGROUP Liaoning province network #61.179.0.0 - 61.179.255.255 CNCGROUP Shandong province network #61.180.128.0 - 61.180.255.255 CNCGROUP Heilongjiang province network #61.181.0.0 - 61.181.255.255 CNCGROUP Tianjin province network #61.182.0.0 - 61.182.255.255 CNCGROUP Hebei province network #61.189.0.0 - 61.189.127.255 CNCGROUP Liaoning province network

#202.96.0.0 - 202.96.63.255 CNCGROUP Beijing province network #202.96.64.0 - 202.96.95.255 CNCGROUP Liaoning province network #202.97.128.0 - 202.97.159.255 CNCGROUP Shanxi province network #202.97.160.0 - 202.97.191.255 CNCGROUP Liaoning province network #202.97.192.0 - 202.97.255.255 CNCGROUP Heilongjiang province network #202.98.0.0 - 202.98.31.255 CNCGROUP Jilin province network #202.99.0.0 - 202.99.63.255 CNCGROUP Beijing province network #202.99.64.0 - 202.99.127.255 CNCGROUP Tianjin province network #202.99.128.0 - 202.99.191.255 CNCGROUP Hebei province network #202.99.192.0 - 202.99.223.255 CNCGROUP Shanxi province network #202.99.224.0 - 202.99.255.255 CNCGROUP Neimenggu province network #202.102.128.0 - 202.102.191.255 CNCGROUP Shandong province network #202.102.224.0 - 202.102.255.255 CNCGROUP Henan province network #202.106.0.0 - 202.106.255.255 CNCGROUP Beijing province network #202.107.0.0 - 202.107.127.255 CNCGROUP Liaoning province network #202.108.0.0 - 202.108.255.255 CNCGROUP Beijing province network #202.110.0.0 - 202.110.63.255 CNCGROUP Liaoning province network #202.110.64.0 - 202.110.127.255 CNCGROUP Henan province network #202.110.192.0 - 202.110.255.255 CNCGROUP Shandong Province Network #202.111.128.0 - 202.111.159.255 CNCGROUP Henan province network #202.111.160.0 - 202.111.191.255 CNCGROUP Jilin province network

#218.7.0.0 - 218.10.255.255 CNCGROUP Heilongjiang province network #218.11.0.0 - 218.12.255.255 CNCGROUP Hebei province network #218.24.0.0 - 218.25.255.255 CNCGROUP Liaoning province network #218.26.0.0 - 218.26.255.255 CNCGROUP Shanxi province network #218.27.0.0 - 218.27.255.255 CNCGROUP Jilin province network #218.28.0.0 - 218.29.255.255 CNCGROUP Henan province network #218.56.0.0 - 218.59.255.255 CNCGROUP Shandong province network #218.60.0.0 - 218.61.255.255 CNCGROUP Liaoning province network #218.67.128.0 - 218.69.255.255 CNCGROUP Tianjin province network

#221.0.0.0 - 221.3.127.255 CNCGROUP Shandong province network #221.3.128.0 - 221.3.255.255 CNCGroup Yunnan province network

#221.4.0.0 - 221.5.127.255 CNCGroup Guangdong province network #221.5.128.0 - 221.5.255.255 CNCGroup Chongqing province network #221.6.0.0 - 221.6.255.255 CNCGroup Jiangsu province network #221.7.0.0 - 221.7.31.255 CNCGroup Xinjiang province network #221.7.32.0 - 221.7.63.255 CNCGroup Gansu province network #221.7.64.0 - 221.7.95.255 CNCGroup Chongqing province network #221.7.128.0 - 221.7.255.255 CNCGroup Guangxi province network #221.8.0.0 - 221.9.255.255 CNCGroup JILIN province network #221.10.0.0 - 221.10.255.255 CNCGroup SiChuan province network #221.11.0.0 - 221.11.127.255 CNCGroup Shannxi province network #221.11.128.0 - 221.11.223.255 CNCGroup Hainan province network #221.12.0.0 - 221.12.191.255 CNC Group Zhejiang province network #221.13.0.0 - 221.13.63.255 CNC Group Guizhou province network #221.13.64.0 - 221.13.95.255 CNC Group Xizang province network #221.13.128.0 - 221.15.255.255 CNCGROUP Henan Province Network #221.192.0.0 - 221.195.255.255 CNCGROUP Hebei Province Network #221.196.0.0 - 221.198.255.255 CNCGROUP Tianjin Province Network #221.199.0.0 - 221.199.47.255 CNC Group Ningxia province network #221.199.128.0 - 221.199.207.255 CNCGROUP Neimeng Province Network #221.200.0.0 - 221.203.255.255 CNCGROUP Liaoning Province Network #221.204.0.0 - 221.205.255.255 CNCGROUP Shanxi Province Network #221.207.0.0 - 221.207.63.255 CNC Group QingHai province network #221.208.0.0 - 221.212.255.255 CNCGROUP Heilongjiang Province Network #221.213.0.0 - 221.213.255.255 CNC Group Yunnan province network #221.216.0.0 - 221.223.255.255 CNCGROUP Beijing province network

#222.128.0.0 - 222.131.255.255 CNCGROUP Beijing province network #222.132.0.0 - 222.135.255.255 CNCGROUP Shandong province network #222.136.0.0 - 222.143.255.255 CNCGROUP Henan province network #222.160.0.0 - 222.163.31.255 CNCGROUP Jilin province network

#YOU CAN ADD THESE IP TO YOUR ROUTING-TABLES TO OPTIMIZE YOUR NETWORK,BUT BE SURE THAT YOU ARE USING TWO IP ADDRESS,ONE

#BELONGS TO CNCGROUP AND THE OTHER BELONGS TO CHINA TELECOM.USE CHINA TELECOM'S GATEWAY IP ADDRESS BE YOUR DEFULT GATEWAY.

#IF YOU ARE USING MSWINDOWS,IN DOS-MODE,USE THESE COMMANDS,OR YOU CAN COPY THE COMMANDS TO A NEW *.TXT FILE THEN SAVE IT AS A # *.BAT FILE AND RUN IT

#!ATTENTION!BEFORE USING,YOU SHOUD FOUND THE STRING:'yourgateway' AND CHANGE IT TO YOUR CNCGROUP'S GATEWAY IP ADDRESS AT ALL!

cd route -p add 60.0.0.0 mask 255.248.0.0 'yourgateway' metric 1

route -p add 60.8.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 60.10.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 60.12.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 60.13.0.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 60.13.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 60.16.0.0 mask 255.240.0.0 'yourgateway' metric 1 route -p add 60.208.0.0 mask 255.248.0.0 'yourgateway' metric 1 route -p add 60.216.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 60.220.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 61.48.0.0 mask 255.248.0.0 'yourgateway' metric 1 route -p add 61.133.0.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 61.135.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.136.64.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 61.137.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 61.138.0.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 61.138.128.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 61.139.128.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 61.148.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 61.156.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.158.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 61.159.0.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 61.161.0.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 61.161.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 61.167.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.168.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.176.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.179.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.180.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 61.181.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.182.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 61.189.0.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 202.96.0.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 202.96.64.0 mask 255.255.224.0 'yourgateway' metric 1 route -p add 202.97.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 202.98.0.0 mask 255.255.224.0 'yourgateway' metric 1 route -p add 202.99.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 202.102.128.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 202.102.224.0 mask 255.255.224.0 'yourgateway' metric 1 route -p add 202.106.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 202.107.0.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 202.108.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 202.110.0.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 202.110.192.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 202.111.128.0 mask 255.255.192.0 'yourgateway' metric 1

route -p add 218.7.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 218.8.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 218.12.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 218.24.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 218.28.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 218.56.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 218.60.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 218.67.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 218.68.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 221.0.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 221.4.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 221.6.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 221.7.0.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 221.7.64.0 mask 255.255.224.0 'yourgateway' metric 1 route -p add 221.7.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 221.8.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 221.10.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 221.11.0.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 221.11.128.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 221.11.192.0 mask 255.255.224.0 'yourgateway' metric 1 route -p add 221.12.0.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 221.12.128 mask 255.255.192.0 'yourgateway' metric 1 route -p add 221.13.0.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 221.13.64.0 mask 255.255.224.0 'yourgateway' metric 1 route -p add 221.13.128.0 mask 255.255.128.0 'yourgateway' metric 1 route -p add 221.14.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 221.192.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 221.196.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 221.198.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 221.199.0.0 mask 255.255.224.0 'yourgateway' metric 1 route -p add 221.199.32.0 mask 255.255.240.0 'yourgateway' metric 1 route -p add 221.199.128.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 221.199.192.0 mask 255.255.240.0 'yourgateway' metric 1 route -p add 221.200.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 221.204.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 221.207.0.0 mask 255.255.192.0 'yourgateway' metric 1 route -p add 221.208.0.0 mask 255.252.0.0 'yourgateway' metric 1 route -p add 221.212.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 221.216.0.0 mask 255.248.0.0 'yourgateway' metric 1 route -p add 222.128.0.0 mask 255.240.0.0 'yourgateway' metric 1 route -p add 222.160.0.0 mask 255.254.0.0 'yourgateway' metric 1 route -p add 222.162.0.0 mask 255.255.0.0 'yourgateway' metric 1 route -p add 222.163.0.0 mask 255.255.224.0 'yourgateway' metric 1 exit

#IF YOU ARE USING LINUX,YOU CAN Dvi /etc/rc.d/rc.local AND ADD THE IP ADDRESS IN IT,OR YOU CAN ALSO COPY THE COMMADNS BELOW # AND PASTE IT IN YOUR FILE /etc/rc.d/rc.local

route add -net 60.0.0.0 netmask 255.248.0.0 gw 'yourgateway' metric 1 route add -net 60.8.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 60.10.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 60.12.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 60.13.0.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 60.13.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 60.16.0.0 netmask 255.240.0.0 gw 'yourgateway' metric 1 route add -net 60.208.0.0 netmask 255.248.0.0 gw 'yourgateway' metric 1 route add -net 60.216.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 60.220.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 61.48.0.0 netmask 255.248.0.0 gw 'yourgateway' metric 1 route add -net 61.133.0.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 61.135.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.136.64.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 61.137.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 61.138.0.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 61.138.128.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 61.139.128.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 61.148.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 61.156.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.158.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 61.159.0.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 61.161.0.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 61.161.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 61.167.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.168.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.176.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.179.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.180.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 61.181.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.182.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 61.189.0.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 202.96.0.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 202.96.64.0 netmask 255.255.224.0 gw 'yourgateway' metric 1 route add -net 202.97.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 202.98.0.0 netmask 255.255.224.0 gw 'yourgateway' metric 1 route add -net 202.99.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 202.102.128.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 202.102.224.0 netmask 255.255.224.0 gw 'yourgateway' metric 1

route add -net 202.106.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 202.107.0.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 202.108.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 202.110.0.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 202.110.192.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 202.111.128.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 218.7.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 218.8.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 218.12.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 218.24.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 218.28.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 218.56.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 218.60.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 218.67.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 218.68.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.0.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 221.4.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.6.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 221.7.0.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 221.7.64.0 netmask 255.255.224.0 gw 'yourgateway' metric 1 route add -net 221.7.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 221.8.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.10.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 221.11.0.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 221.11.128.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 221.11.192.0 netmask 255.255.224.0 gw 'yourgateway' metric 1 route add -net 221.12.0.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 221.12.128 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 221.13.0.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 221.13.64.0 netmask 255.255.224.0 gw 'yourgateway' metric 1 route add -net 221.13.128.0 netmask 255.255.128.0 gw 'yourgateway' metric 1 route add -net 221.14.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.192.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 221.196.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.198.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 221.199.0.0 netmask 255.255.224.0 gw 'yourgateway' metric 1 route add -net 221.199.32.0 netmask 255.255.240.0 gw 'yourgateway' metric 1 route add -net 221.199.128.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 221.199.192.0 netmask 255.255.240.0 gw 'yourgateway' metric 1 route add -net 221.200.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 221.204.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.207.0.0 netmask 255.255.192.0 gw 'yourgateway' metric 1 route add -net 221.208.0.0 netmask 255.252.0.0 gw 'yourgateway' metric 1 route add -net 221.212.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1

route add -net 221.216.0.0 netmask 255.248.0.0 gw 'yourgateway' metric 1 route add -net 222.128.0.0 netmask 255.240.0.0 gw 'yourgateway' metric 1 route add -net 222.160.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 222.162.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 222.163.0.0 netmask 255.255.224.0 gw 'yourgateway' metric 1

#OK!THAT'S ALL!AND IF YOU HAVE FOUND THERE ANY IP ADDRESS I DIDN'T ADD,PLEASE ADD IT!THANK YOU!HOLP YOU HAVA A PERFECT # NETWORK!SEE YOU~~!^_^

lysyfengye 回复于:2005-06-10 19:26:31

楼主的方法复杂了

并且几位高人屡次提出的方法不知道楼主测试没,说不能实现 我经过测试,相当稳定,以下是我实现的思路: 1.添加特定路由,如上上上楼所写,我指定了cnc的路由 2.添加默认路由,我设定china teletcom为默认 3.在两个eth上开启nat,当然ip转发要打开 以下是rc.local的部分 sh /root/cnc #添加cnc的路由

ip route add default via $电信网关 dev eth0

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to $电信IP iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j SNAT --to $网通IP modprobe ip_nat_ftp

当然,以上只是实现了最简单的自动切换,更复杂的功能我也不会太多,但效果已经相当好,redhat as4系统,1.0G CPU 128 M RAM 160台的网吧已经用了一周

扫净缘客 回复于:2005-06-12 22:27:13

引用:原帖由 \"lysyfengye\" 发表:

楼主的方法复杂了

并且几位高人屡次提出的方法不知道楼主测试没,说不能实现 我经过测试,相当稳定,以下是我实现的思路:

1.添加特定路由,如上上上楼所写,我指定了cnc的路由 2.添加默认路由,我设定china teletcom为默认 3.在两个eth上开启nat,当然ip转发要打开 以下是rc.local的部分

sh /root/cnc #添加cnc的路由

ip route add default via $电信网关 dev eth0

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to $电信IP iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j SNAT --to $网通IP modprobe ip_nat_ftp

当然,以上只是实现了最简单的自动切换,更复杂的功能我也不会太多,但效果已经相当好,redhat as4系统,1.0G CPU 128 M RAM 160台的网吧已经用了一周

这位朋友,我想问下。你的路由表是按照

引用:原帖由 \"hew\" 发表:

route add -net 221.212.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.216.0.0 netmask 255.248.0.0 gw 'yourgateway' metric 1 route add -net 222.128.0.0 netmask 255.240.0.0 gw 'yourgateway' metric 1 route add -net 222.160.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 222.162.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 222.163.0.0 netmask 255.255.224.0 gw 'yourgateway' metric 1

这位朋友的格式写的吗?

donetx 回复于:2005-06-13 00:22:05 是

我把这些存为文件/root/cnc 然后chmod 700 /root/cnc

然后echo \"sh /root/cnc\" >;>; /etc/rc.local

扫净缘客 回复于:2005-06-14 02:29:35

呵呵.我有几个问题想问你

route add -net 221.212.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 221.216.0.0 netmask 255.248.0.0 gw 'yourgateway' metric 1 route add -net 222.128.0.0 netmask 255.240.0.0 gw 'yourgateway' metric 1 route add -net 222.160.0.0 netmask 255.254.0.0 gw 'yourgateway' metric 1 route add -net 222.162.0.0 netmask 255.255.0.0 gw 'yourgateway' metric 1 route add -net 222.163.0.0 netmask 255.255.224.0 gw 'yourgateway' metric 1

这样做以后,确实很方便.不过弊端也有.掉线不?不掉线???

客户机会无辜掉线吧

别说你没掉过呦~ :mrgreen:

cfybyair 回复于:2005-06-23 11:56:26

这种所谓的自动切换,还是要人为的将其中一条断掉以后才会切过去 因为你的链路没有断的话是不会自动切的,除非你可以和运营商之间跑

BGP之类的动态路由咯。否则想真正的作到自动化,还是不行的。当然还是有办法的。。。

ccn 回复于:2005-07-27 14:34:29

引用:原帖由 \"ttvast\" 发表:

我有一些不知道大家是怎么想问题的,向这种问题根本不需要使用到iproute2的任何特性啊. 根据目标网络来路由是路由的基本功能. 实现你们说的功能我觉得只需要这样写 n句如下语句

route add -net 电信网段 gw 电信?.........

这几天在看此帖子测试,我目前是按此方法来实现的,现在稳定运行三天!不过手工添加静态路由好麻烦而且还要时时更新(我的IP数据是用abel的脚本获取的) :cry:

就不知道服务器用Linux怎么实现?其实我内部无需这么好的带宽选择,现在要的是外边访问服务器的自动选择(像F5那样)。

llzqq 回复于:2005-09-12 14:41:18

我初步统计的电信的IP段:

202.98.106.0/24 202.96.174.0/24 202.96.214.0/24 202.102.18.0/24 202.96.0.0/16 202.98.0.0/16 202.100.0.0/16 202.103.0.0/16 61.128.0.0/16 61.129.0.0/16 61.133.0.0/16 61.131.0.0/16 61.132.0.0/16 61.134.0.0/16 61.139.0.0/16 61.138.0.0/16 61.157.0.0/16 61.159.0.0/16

61.151.0.0/16 61.150.0.0/16 61.152.0.0/16 61.165.0.0/16 61.166.0.0/16 61.169.0.0/16 61.154.0.0/16 61.185.0.0/16 61.186.0.0/16 61.153.0.0/16 61.183.0.0/16 61.189.0.0/16 61.130.0.0/16 61.164.0.0/16 61.174.0.0/16 218.0.0.0/16 61.172.0.0/16 218.1.0.0/16 202.96.0.0/16 61.186.0.0/16 218.22.0.0/16 218.13.0.0/16 218.5.0.0/16 218.6.0.0/16 61.136.0.0/16 218.62.0.0/16 218.19.0.0/16 218.62.0.0/16 202.101.0.0/16 218.64.0.0/16 61.180.0.0/16 61.178.0.0/16 218.65.0.0/16 218.21.0.0/16 218.6.128.0/16 61.188.0.0/16 61.186.0.0/16 61.190.0.0/16 61.191.0.0/16 61.137.0.0/16 61.187.0.0/16 61.150.128.0/16 218.66.0.0/16 218.95.224.0/16

218.70.0.0/16 61.161.64.0/16 218.21.48.0/16 218.71.0.0/16 218.75.0.0/16 218.78.0.0/16 218.31.0.0/16 61.138.224.0/16 218.30.0.0/16 218.21.0.0/16 61.133.0.0/16 218.84.0.0/16 218.88.0.0/16 218.95.0.0/16 218.85.0.0/16 218.86.0.0/16 219.128.0.0/16 218.77.0.0/16 218.90.0.0/16 61.155.0.0/16 61.147.0.0/16 218.2.0.0/16 61.177.0.0/16 61.160.0.0/16 218.95.0.0/16 218.87.0.0/16 219.138.0.0/16 219.144.0.0/16 219.141.0.0/16 219.159.0.0/16 219.141.0.0/16 219.151.0.0/16 220.160.0.0/16 219.147.0.0/16 219.148.0.0/16 219.149.0.0/16 219.150.0.0/16 220.163.0.0/16 219.151.0.0/16 220.166.0.0/16 220.184.0.0/16 220.168.0.0/16 220.171.0.0/16 219.151.0.0/16

220.171.0.0/16 220.173.0.0/16 220.174.0.0/16 220.175.0.0/16 218.30.0.0/16 220.178.0.0/16 219.147.0.0/16 219.146.0.0/16 219.147.0.0/16 220.167.0.0/16 218.30.32.0/16 220.181.0.0/16 218.30.76.0/16 218.13.0.0/16 218.21.0.0/16 220.182.0.0/16 221.224.0.0/16 221.225.0.0/16 221.226.0.0/16 221.227.0.0/16 221.228.0.0/16 221.229.0.0/16 221.230.0.0/16 221.231.0.0/16 221.232.0.0/16 221.233.0.0/16 221.234.0.0/16 221.235.0.0/16 221.236.0.0/16 221.237.0.0/16 221.238.0.0/16 221.239.0.0/16 222.0.0.0/8

abel 回复于:2005-09-12 15:15:19

自動產生 電信(CHINANET)/網通(CNCGROUP) IP 列表

http://bbs.chinaunix.net/forum/viewtopic.php?t=577601&highlight=abel

llzqq 回复于:2005-09-12 16:07:21

引用:原帖由 \"abel\" 发表:

自動產生 電信(CHINANET)/網通(CNCGROUP) IP 列表

http://bbs.chinaunix.net/forum/viewtopic.php?t=577601&highlight=abel

这个不错啊,以前没注意到。

asd0613 回复于:2005-09-21 12:12:56

iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information. iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information.

是什么意思呀????谢谢大师们了

扫净缘客 回复于:2005-09-22 14:24:11

前几天抽空又按照白金兄和其他朋友的说法测试了下

如下结果

按照最初白金兄弟的建议

速度很稳定

按照route add -net 222.168.0.0/16 gw $teleGateway

iptables -t nat -A POSTROUTING -o eth0 -s $PRIVATE -j SNAT --to $tele

iptables -t nat -A POSTROUTING -o eth1 -s $PRIVATE -j SNAT --to $wangt

的做法.速度不能保障

所以个人认为还是白金兄弟的提议有可取的地方

前几天去掉前脚本中的

iptables -t nat -A POSTROUTING -s $PRIVATE -d 59.0.0.0/11 -j SNAT --to $DIANXIN iptables -t nat -A POSTROUTING -s $PRIVATE -d 59.32.152.0/16 -j SNAT --to $DIANXIN iptables -t nat -A POSTROUTING -s $PRIVATE -d 59.34.3.0/16 -j SNAT --to $DIANXIN iptables -t nat -A POSTROUTING -s $PRIVATE -d 59.35.240.0/20 -j SNAT --to $DIANXIN iptables -t nat -A POSTROUTING -s $PRIVATE -d 59.36.0.0/16 -j SNAT --to $DIANXIN iptables -t nat -A POSTROUTING -s $PRIVATE -d 59.37.88.0/24 -j SNAT --to $DIANXIN

依然可以达到双线的效果.但是速度不是很好

platinum 回复于:2005-09-22 14:36:14

http://bbs.chinaunix.net/forum/viewtopic.php?t=596645 先把这个看明白再实践 你实践的可能是错的

lxy1220 回复于:2005-09-25 23:01:00

引用:原帖由 \"asd0613\" 发表: iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information. iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information. ..........

我在FC2上也遇到了这个问题,请高人指点如何解决!谢谢

扫净缘客 回复于:2005-09-25 23:17:15

按照这个做法,其中我只对红色部分做过修改 # echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route add default via 222.168.1.2 table DIANXIN

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # ip rule add fwmark 1 table DIANXIN # ip route flush cache # iptables -t nat -F

# [color=red]iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE [/color]

被我修改成为

[color=red]iptables -t nat -A POSTROUTING -s $PRIVATE -j SNAT --to $WANGTONG[/color]

前几天的测试是用

[color=blue]route add -net 222.168.0.0/16 gw $teleGateway route add -net 222.178.0.0/16 gw $teleGateway

iptables -t nat -A POSTROUTING -o eth0 -s $PRIVATE -j SNAT --to $tele

iptables -t nat -A POSTROUTING -o eth1 -s $PRIVATE -j SNAT --to $wangt [/color] 的做法做的.可惜的是由于ip地址划分的不准确,最终放弃.不过当时也有想法.利用

[color=green]route add -net 222.168.0.0/16 gw $teleGateway route add -net 222.178.0.0/16 gw $teleGateway

iptables -t nat -I POSTROUTING -s $PRIVATE -d 222.222.5.0/15 -j SNAT --to $DIANXIN iptables -t nat -I POSTROUTING -s $PRIVATE -d 222.240.0.0/13 -j SNAT --to $DIANXIN iptables -t nat -A POSTROUTING -o eth0 -s $PRIVATE -j SNAT --to $tele

iptables -t nat -A POSTROUTING -o eth1 -s $PRIVATE -j SNAT --to $wangt [/color]

做测试.如此一来.觉得和最初的做法没太大差异.放弃

platinum 回复于:2005-09-26 07:51:02

你还是没有弄懂 SNAT 和 MASQUERADE 的区别 我给你的文章你看了没有?

扫净缘客 回复于:2005-09-26 09:03:58

学习了~ :em02:

iptables -t nat -A POSTROUTING -s $PRIVATE -j MASQUERADE

platinum,这么多次的磨合,我发现你这个人的一个优点,也许是.或应该是

当与你讨论理论与经验时,你很希望每个人都能向一个高度看齐,这点很让我敬佩

日后一定更好好的向你学习.敬礼了先 :em17:

asd0613 回复于:2005-09-26 10:57:02

iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information. iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information

我是那里出了问题了???急等???谢谢!!!!

扫净缘客 回复于:2005-09-26 17:43:12

引用:原帖由 \"asd0613\" 发表: iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information. iptables v1.2.8: Unknown arg `--to'

Try `iptables -h' or 'iptables --help' for more information ..........

请问你是运行哪句出现这个提示滴?

asd0613 回复于:2005-09-27 09:29:10

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN

谢谢关心!!!!是到这一句时出现的。

扫净缘客 回复于:2005-09-27 09:50:27

引用:原帖由 \"asd0613\" 发表:

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN

谢谢关心!!..........

哦.你是不是没定义 $DIANXIN 的缘故?

如果要写.应该先定义$DIANXIN的值

iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X

modprobe ip_nat_ftp

DIANXIN=\"1.1.1.1\" WANGTONG=\"2.2.2.2\" PRIVATE=\"192.168.0.0/24\"

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN

iptables -t nat -A POSTROUTING -s $PIRVATE -j MASQUERADE 或

iptables -t nat -A POSTROUTING -s $PIRVATE -j SNAT --to $WANGTONG

asd0613 回复于:2005-09-27 10:15:31

谢谢我想是我错了我在试一试将从两个WAN口出去的数据包MASQUERADE /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE /sbin/iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

然后,给系统增加一个标示为100的路由表,增加一个默认网关,这个默认网关是网通提供的网关。呵呵,为什么我的帖子里的多路由表总用100呢,呵呵。 ip route add 0/0 via 218.59.*.* table 100

然后给系统主路由表配置网关,这个网关是电信的网关 ip route add 0/0 via 219.146.*.*

然后添加路由规则,让所有通向网通的数据查询标示为100的路由表: ip rule add to 60.0.0.0/13 table 100 ip rule add to 60.8.0.0/15 table 100 ip rule add to 60.10.0.0/16 table 100

这是一个在别的网站上发的贴子(关于双线的脚本)是否对你有用

还有能不能给我一份完整的关于这方面的脚本我想好好学学这方面的知识,谢谢!!!QQ:78422930

ljbzkl 回复于:2005-10-19 16:48:57

我是菜鸟,我今天看了一下午这个贴子,受益多多啊,我以前只会做单线的路由,一直在想怎么才能实线双线自切,看了这个贴子有了大般的思路了,不过我有个问 题没弄明白,我想请教一下大侠们iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信 ip -j SNAT --to 222.168.1.3中的$电信IP要把电信IP段一个一个添进去么,那么多的IP段每添一句就要写一行是不是这样, 不是这样是不是也可以把电信IP段放在一个文件里,然后定义一下,用$电信ip 来代替一行就搞定啊,我没弄明白,请指教~~~

扫净缘客 回复于:2005-10-19 19:04:26

引用:我 是菜鸟,我今天看了一下午这个贴子,受益多多啊,我以前只会做单线的路由,一直在想怎么才能实线双线自切,看了这个贴子有了大般的思路了,不过我有个问题 没弄明白,我想请教一下大侠们iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3中的$电信IP要把电信IP段一个一个添进去么,那么多的IP段每添一句就要写一行是不是这样,不是这 样是不是也可以把电信IP段放在一个文件里,然后定义一下,用$电信ip 来代替一行就搞定啊,我没弄明白,请指教~~~

我看过很多篇文章中,定义端口是可以用 RPORT=\"1 2 3 4 5 .....\" 来一起定义.然后 $RPORT来使用.但是我不知道 ip是否也能如此一起定义.然后一句iptables -t nat -A PREROUTING -d $电信ip -j SNAT -- to 222.168.1.3来使用.知识吗~需要探索.希望继续讨教这问题

ljbzkl 回复于:2005-10-19 19:53:52

引用:我 看过很多篇文章中,定义端口是可以用 RPORT=\"1 2 3 4 5 .....\" 来一起定义.然后

$RPORT来使用.但是我不知道ip是否也 能如此一起定义.然后一句iptables -t nat -A PREROUTING -d $电信ip -j SNAT -- to 222.168.1.3..........

谢谢扫净缘客,那你在写电信IP是一个一行那么写进去啊,那不是要很多条要打老长时间么?

ljbzkl 回复于:2005-10-20 22:25:46

大家看看http://www.kxin.net这个服务器做的不错哟

ljbzkl 回复于:2005-10-24 11:34:02

弄了几天终于思路有些清淅了,扫净缘客看到的话可以试试这样做应该速度也正常的,这样的话应该也不用再把电信IP一个一个的重新SNAT 一下,你有条件有机会可以帮助测试一下,谢了 # echo \"200 DIANXIN\" >;>; /etc/iproute2/rt_table # ip route add default via $接电信网卡IP table DIANXIN # ip route add default via $接网通网卡IP # ip rule add fwmark 1 table DIANXIN # ip route flush cache

# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1 # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

急不通 回复于:2005-11-16 15:47:45

注意,在iptables -t nat -A POSTROUTING 的时候,可以用-o来指定出口,而这个出口是通过内核选路决定(即我们用 ip route命令写路由表控制的),所以, 根本不用在mangle表里根据目的ip来mark数据包,路由表里面根据目的ip指定网关时就决定了数 据包将从哪里出去。我们要做的仅仅在nat表的postrouting链里面(根据数据包最后将被发出的网卡名称)来指定snat的地址即可

woooo_111 回复于:2005-11-26 00:42:46

这是个老话题了,不知道原来的“老师”高手们是不是还常回来,但我的问题是这个已经解决的问题的延续:

我有个更加复杂的环境:

一条电信的固定IP地址,一条网通的ADSL动态IP地址,一台fc3,三块网卡,作iptables代理上网,同时跑e-mail及web等服务。

想实现双线自由选路上网,同时实现对外服务自动选线。

我现在已经实现的电信链路的上网功能,但网通的ADSL还没调试,想明天就开始干。 1、实现上网双线最佳选路 2、实现服务双线最佳选路

3、由于只有一个电信的固定IP,所以域名就解析在此上了,因此就有了一个更为复杂的问题:

从网通出发的访问首先访问的是电信链路,但应答包能不能从网通ADSL出去。(我没打算用花生壳之类的动态域名)

woooo_111 回复于:2005-11-26 13:27:08

谢谢版主,您大清早就回了帖子,非常感谢。

在此之前,我已经实现了电信一条光纤100M的上网、公司网站、e-mail发布。 1、机器上安装FC3操作系统。

2、使用squild和iptables实现了上网,主要脚本如下:

$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -s 192.168.0.0/24 --dport 80 \\ -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT \\ --to-source 219.146.*.111

我想遵照本帖子所说方法,实现双链路上网,今天正在作。。。。。

1、利用rp-pppoe拔号上网通宽带网,获得一个动态IP地址,ifup ppp0,已经成功,所以在iptables中又加了一句,修改后如下:

$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -s 192.168.0.0/24 --dport 80 \\ -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT \\ --to-source 219.146.*.111

$IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE 修改完之后,默认路由自动改为网通的网关,可正常上网:

Destination Gateway Genmask Flags Metric Ref Use Iface 221.2.*.121 * 255.255.255.255 UH 0 0 0 ppp0 219.146.*.96 * 255.255.255.240 U 0 0 0 eth0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth2 192.168.0.0 * 255.255.255.0 U 0 0 0 eth1 169.254.0.0 * 255.255.0.0 U 0 0 0 eth2 default 221.2.*.121 0.0.0.0 UG 0 0 0 ppp0

2、(还没作)我想将电信的各地址段加入路由,并将相应网关设为电信网关(219.146.*.96),其它就使用默认网关(ppp0),然后就应该完成局域网正常上网了,并可实现自由切换路由。 3、(还没作)我想实现外部网访问公司网站的“南北路由”的自动选路策略,也就是说网通的用户访问网通地址(ppp0),电信用户访问电信地址 (219.146.*.111),翻了翻本论坛的帖子,情况可能不乐观,好象必须在DNS中作,但我没有自己的DNS啊,建立自己的dns会花多大代价? 请问版主,有没有其它解决方案?(我不想使用“花生壳”之类的东西)。

woooo_111 回复于:2005-11-27 10:37:06

我昨天已经完成了“电信”、“网通”双链路策略路由配置。似乎第三个目的(公司网站发布的自动路由)也已经达到。

1、作一个脚本rc.route,其中是“电信”静态路由: route add -net 218.66.0.0/16 gw 219.146.*.121 route add -net 218.67.0.0/17 gw 219.146.*.121

route add -net 218.70.0.0/15 gw 219.146.*.121 route add -net 218.72.0.0/13 gw 219.146.*.121 ............. ............. 放在rd.local中开机运行。

ADSL自动拔号后,默认路由自动改为“网通”网关。

2、在iptables脚本中放入两个snat语句,如楼上帖所说。经测试成功,实现了第二个目的(内部网上因特网自动选路)。

3、在网通宽带网中找一台机器,测试访问本机器中的web及mail服务,非常快。登录进入本服务器中利用tcpdump监控各个端口中的链接, 发现,虽然外来访问从电信端口中进来(由于域名只能解析至电信端口),但回应从网通端口出去了,所以速度得以提高。尽管方式不完全象我楼上文章中所说的那 样实现,不尽善尽美,但对于一个公司网站来说,足够了。

急不通 回复于:2005-12-11 10:19:49

1、想要自动选择最优路由向外访问这个比较好做,在自己的外出网关上做文章,使其可以根据目标地址选择出口线路就可以了;但是反过来想要做服务,并能够具 备这样的„智能‟,实际上是要人家来选择你的一个出口来访问你,这个就不那么容易了,一个思路是使DNS解析时具备这种„智能‟,另一个是在服务会话初始 的时候„智能‟的做出判断,然后发送重定向指令(如:url跳转)给客户。

2、向外访问时自动选择最优出口的做法:

2.1 、构建一张比较细致的路由表,把到不同的目标IP的路由合理的分配到相应的出口上,如: ip route add $电信ip via $电信网关 dev $电信出口网卡 ……(怎么样找到各ISP的IP范围?CU坛子里面有贴子已经讲得很清楚了)

2.2、iptables -t nat -A POSTROUTING -s $内网ip -o $电信出口网卡 -j SNAT --to $电信出口IP

platinum 回复于:2006-03-26 09:32:38

引用:原帖由 woooo_111 于 2005-11-27 10:37 发表

我昨天已经完成了“电信”、“网通”双链路策略路由配置。似乎第三个目的(公司网站发布的自动路由)也已经达到。

1、作一个脚本rc.route,其中是“电信”静态路由:

route add -net 218.66.0.0/16 gw 219 ...

好久没看这个贴子,又被顶起来了

是的,其实策略路由只能从一定程度上得以提高,并不像理论想的那么好 不过,你还是做出来了,恭喜你:)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top