pillow 发表于 2010-11-10 14:00:09

ADSL+能上internet的 LAN, 双线web分流失败,求解~

本帖最后由 pillow 于 2010-11-11 13:14 编辑

现有条件:
有两个Internet出口,一个是ADSL,一个是DHCP得到的LAN IP(受到一定程度限制,但网页访问正常).
ROS有三口,一口取名ADSL, 一口起名Restricted(192.168.0.5/24), 一口起名LAN(192.168.1.0/24), 想必各位看官也都知道是怎么接的了.


确定OK的是:
1.        仅对ADSL做Masquerade, LAN上网正常(使用此接口默认路由)
2.        仅对Restricted做Masquerade, LAN上网正常(使用此接口默认路由)

本来想法是将web分流到restricted, 就去ip firewall mangle里先将流量分出来
1.        对ADSL做Masquerade (使用此接口默认路由), 对Restricted做Masquerade(不添加默认路由, 此时Lan 电脑能ping通 restricted网关192.168.0.1)
2.        mangle destination port 80 connection再mangle packet, 用web做记号
3.        ip route add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=web

结果发现网页打不开, 为排查,干脆将自己电脑的任何connection及packet, 都mangle 为web, 结果发现这时自己电脑连192.168.0.1都ping不通了,高手指教一下原因?
先行谢过.

寒风落叶 发表于 2010-11-10 14:09:50

贴配置

pillow 发表于 2010-11-10 21:22:04

本帖最后由 pillow 于 2010-11-11 08:24 编辑

ip address print
Flags: X - disabled, I - invalid, D - dynamic
#   ADDRESS            NETWORK         BROADCAST       INTERFACE
0 X 192.168.6.1/24   192.168.6.0   192.168.6.255   ether3
1   192.168.1.1/24   192.168.1.0   192.168.1.255   lan
2 D 192.168.0.5/24   192.168.0.1   192.168.1.255   restricted
3 D 112.64.73.124/32   112.64.72.1   0.0.0.0         ADSL


ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS      PREF-SRC      GATEWAY-STATE GATEWAY                DISTANCE INTERFACE
0 ADS0.0.0.0/0                        reachable   112.64.72.1            1      ADSL
1 X S0.0.0.0/0                                        restricted             1
2 A S192.168.0.0/24                      reachable   restricted             1      restricted
3 ADC192.168.0.0/24   192.168.0.5                                       0      restricted
4 ADC112.64.72.1/32   112.64.73.124                                        0      ADSL
5 ADC192.168.1.0/24   192.168.1.1                                          0      LAN



ip firewall mangle print

1   ;;; Web Connections
   chain=prerouting action=mark-connection new-connection-mark=http-con passthrough=yes
   src-address-list=WebClients

2   ;;; Web Packets
   chain=prerouting action=mark-routing new-routing-mark=web passthrough=no connection-mark=http-con



ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0   ;;; Internet Access
   chain=srcnat action=masquerade out-interface=restricted

1   chain=srcnat action=masquerade out-interface=ADSL

TheHorizon 发表于 2010-11-11 01:24:48

劝您下次帖配置的时候用 export 不要用print 了。看起来好晕。而且还不确定能显示完整。

你标记了80口,标记连接为http-con,然后把http-con 标记路由为web
那你上面帖出来的路由表里,没有用上web呀?路由表里不是应该有两条AS么?一条ADSL的,一条专为80的。

pillow 发表于 2010-11-11 08:26:08

劝您下次帖配置的时候用 export 不要用print 了。看起来好晕。而且还不确定能显示完整。

你标记了80口, ...
TheHorizon 发表于 2010-11-11 01:24 http://bbs.routerclub.com/images/common/back.gif


收到, 下次用export.

1. 如果启用web, 网页打不开, 所以那整条route当前是禁用的.
2. 为了确认没有mark且没有ADSL时能上网, 临时取消mark, 随后禁用, print时忘了加回来了.
3. ADSL那条是DAS吧? 因为默认是用ADSL路由.

下面这条一旦启用, 我的PC就立刻连restricted网关(192.168.0.1)都ping不通了.
ip route add comment="" disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\
   ether1 routing-mark=web scope=30 target-scope=10

寒风落叶 发表于 2010-11-11 08:57:47

ip route add comment="" disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\
   ether1 routing-mark=web scope=30 target-scope=10


ether1是一张物理网卡,不能在这里这么用的,只有当PPP的时候才能直接选网卡,固定IP的要使用网关地址

pillow 发表于 2010-11-11 10:01:44

本帖最后由 pillow 于 2010-11-11 10:12 编辑

ip route add comment="" disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\
   ether1 routing ...
寒风落叶 发表于 2010-11-11 08:57 http://bbs.routerclub.com/images/common/back.gif


    那个不是固定IP, 是DHCP,也是必须不能用interface吗?
我也有试过用restricted网关IP 192.168.0.1, 结果也是一样的.

不过看到你另外一句, 是指只有在PPPoe interface才能做gateway吗?

寒风落叶 发表于 2010-11-11 11:31:03

那个不是固定IP, 是DHCP,也是必须不能用interface吗?
我也有试过用restricted网关IP 192.168.0. ...
pillow 发表于 2010-11-11 10:01 http://bbs.routerclub.com/images/common/back.gif


    PPP拨号的可以直接选网卡包括PPOE L2TP PPTP等

固定IP和DHCP的填网关地址,并且要确保这个网关地址是通的

pillow 发表于 2010-11-11 12:47:11

PPP拨号的可以直接选网卡包括PPOE L2TP PPTP等

固定IP和DHCP的填网关地址,并且要确保这个网 ...
寒风落叶 发表于 2010-11-11 11:31 http://bbs.routerclub.com/images/common/back.gif

将interface换成IP,还是不行;刚才又实际试过了一次。

若之前描述,Restricted网关地址(192.168.0.1)从ROS去ping是通的,但若从LAN PC去ping,就不通了。tracert只有LAN网关192.168.1.1的这第一跳,后面全是*
若删掉ADSL添加的路由,就能通了;感觉问题还是在路由上面。

TheHorizon 发表于 2010-11-11 17:04:22

本帖最后由 TheHorizon 于 2010-11-11 17:08 编辑

呵呵。刚睡醒。整理一下思路先。

你的大意是把80标记出来,然后走RESTRICTED,那么,路由表里,两条规则,1、ADSL的,做默认。2、REST的专走80。 如果两条规则都生效了。在你的PC节点上,PING REST的是不会通的。因为只有标记过(WEB)的才会经过REST这条路由规则。其佘的包走默认路由,就是你的ADSL规则。

还有啊。你的ADSL是默认的话,不要在mangle里标记连接,也不要标记路由。直接在路由表里填上ADSL的网关就好了。再在NAT这里添加个网络地址转换,出口为ADSL的网卡。这样它就是默认的了。不需要在mangle里做太多动作。

在mangle里,只要标记80连接,把80连接标记为路由。然后在路由里添加REST的网关,MASK为标记好的路由,检测那里可以勾上PING(也可以不勾了)。而NAT里也是与上面一样写个地址转换,出口为REST的网卡。就好了。

你可以测试一下。至于你的ADSL是否动态,是否需要拨号。其实原理大致相似。如果动态,就如肌肉兄平时所写的路由表一样,ADSL的网关不填,直接填网卡进去。(注意2.x 的版本没这个功能来的,反正我用的时候,就算能填上,也不能通)

最后,还讲一下。我这里,真正生效的路由表,全是AS,没有哪个是DAS开头的噢,DAS开头的,是你在添加IP给网卡时,路由表自动生成的,并不能起到指定路由的作用。只有AS才是完整的噢。(因为你上面回复我的那里讲到默认是DAS什么的。所以最后这里我特别强调一下,有错误的话,望指证)

WGHBOY 发表于 2010-11-11 18:18:34

:lol

pillow 发表于 2010-11-11 23:10:39

本帖最后由 pillow 于 2010-11-11 23:31 编辑

首先羡慕一下,能睡到下午5点,生活好自由啊!
我现在还是没搞清楚要怎么改我的配置呢。我把对TheHorizon兄的回复的个人理解用红字描述了一下

你的大意是把80标记出来,然后走RESTRICTED,那么,路由表里,两条规则,1、ADSL的,做默认。2、REST的专走80。 对,我就是这个意思!
如果两条规则都生效了。在你的PC节点上,PING REST的是不会通的。是当然的,你下面一句就是解释原因,这个我也知道。
因为只有标记过(WEB)的才会经过REST这条路由规则。其佘的包走默认路由,就是你的ADSL规则。为此,我将source地址是LAN PC的connection标记为web(注意,tcp 80 port的结束条件已经不在了), 认为在前述前提下,就应该能ping通restricted了,但结果却是不行;接着,将ADSL默认路由删除,我认为这时ip route add comment="" disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=ether1 routing-mark=web scope=30 target-scope=10这笔路不再仅对web标记packets有效,而是对任何LAN PC封包生效,这时就能ping能restricted gw了。这时我跑了ip route print,这时路由器的状态就引起了你在4楼里问的“那你上面帖出来的路由表里,没有用上web”的疑问



还有啊。你的ADSL是默认的话,不要在mangle里标记连接,也不要标记路由。直接在路由表里填上ADSL的网关就好了。再在NAT这里添加个网络地址转换,出口为ADSL的网卡。这样它就是默认的了。不需要在mangle里做太多动作。Mangle里我只针对LAN PC要连接80port的connection & packets做标记,并没做其它的。

在mangle里,只要标记80连接,把80连接标记为路由。然后在路由里添加REST的网关,MASK为标记好的路由,检测那里可以勾上PING(也可以不勾了)。而NAT里也是与上面一样写个地址转换,出口为REST的网卡。就好了。是这几步我都做了,但就是打不开网页,又不知如何排查问题在哪儿,所以来向大侠们求助的;希望能找到排查思路或方法

你可以测试一下。至于你的ADSL是否动态,是否需要拨号。其实原理大致相似。如果动态,就如肌肉兄平时所写的路由表一样,ADSL的网关不填,直接填网卡进去。(注意2.x 的版本没这个功能来的,反正我用的时候,就算能填上,也不能通)我的ADSL很一般,没做过什么特殊申请,应该就是动态的吧,另一判断依据是IP也是会变的。

最后,还讲一下。我这里,真正生效的路由表,全是AS,当只启用ADSL时,PPPoe interface设置添加默认路由时,ip route里显示的0.0.0.0/0那一笔是DAS的,也如你所讲,是自动生成,而不是手动添加,我猜所以才是Dymanic
没有哪个是DAS开头的噢,DAS开头的,是你在添加IP给网卡时,路由表自动生成的,并不能起到指定路由的作用。只有AS才是完整的噢。(因为你上面回复我的那里讲到默认是DAS什么的。所以最后这里我特别强调一下,有错误的话,望指证)A即为Active,应该就是活动,生效的, 好像不适合用“完整”这个词吧

TheHorizon 发表于 2010-11-12 03:41:22

本帖最后由 TheHorizon 于 2010-11-12 03:47 编辑

呵呵。我只是工作时间不同罢了。不是生活自由。:lol
我最后回一次,如果还不行,你就把你所做的推掉,然后重新设置。这样思路可能不会那么乱了。
你上面所说的:“ip route add comment="" disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=ether1 routing-mark=web scope=30 target-scope=10这笔路不再仅对web标记packets有效,而是对任何LAN PC封包生效” 由于你当时处理过,所以我们看到你帖出来的时候,已经一团糟了。呵呵。

ADSL这里,看来我有点自以为同样的思考方式了,莫见怪。(因为,我所认识的大部份人,都不会在添加PPPOE时选中“生成默认路由”,不生成默认路由后面自己手动添加,这样便于我们自己后期控制。你可以尝试下。

最后那行关于AS的解释,呵呵。我只是想表达得通俗一些。所以没有想到要用“活动”、“激活”这么官面的解释词。

那么,按你的现有环境,如果是我做。也就是那样的顺序(细节不讲得太清楚了你大概都知道操作过程了):
修改好各个网卡名
添加ROS本机IP,添加静态地址那条线的IP。添加PPPOE,不勾选生成默认路由。
手动在ROUTES表里添加PPPOE的路由表。
在IP-FIREWALL-NAT 里添加网络地址转换(只添加PPPOE的)。然后在PC节点测试是否正常。
在IP-FIREWALL-MANGLE 里,标记TCP 80 连接。再把标记好连接标记路由WEB。
再回到ROUTES表里,添加静态地址那条线的路由表,ROUTING-MARK选上WEB。
在IP-NAT里,添加静态地址的网络地址转换。再去PC上测试WEB访问。ROS里查看静态地址的线路有没有流量过。

我在机房随意装了台ROS测试了你所说的环境。以上设置测试都OK了。(可能文字表达有缺失,要是有漏写的地方见谅了)

pillow 发表于 2010-11-12 09:21:47

To TheHorizon,

看来工作时间真的是不同啊~

我一直就没找到自己错在哪一步了, 查了很多遍,简直要开始怀疑人生了:) 现在看来整个推掉重做最彻底.


其实以前我用ADSL也是不加默认路由的. 我有段时间用ECMP,后来第二条ADSL没的用了. ECMP脚本就放在那儿没动. 再后来就听说了ECMP因为Linux Kernel的关系会每10分钟flush routing table,也就没打算再用ECMP.

加默认路由的原因是3.20里的DDNS脚本在3.30不能用了. 查来查去是在脚本列出pppoe-interface时结果中有两个IP. 改来改去的,居然把ECMP脚本禁用就行了. 所以就让ADSL添加默认路由了. 自己懒了, 不求甚解, 果然被大家发现了, 有点jiong呢~

pillow 发表于 2010-11-12 09:25:32

呵呵。我只是工作时间不同罢了。不是生活自由。
我最后回一次,如果还不行,你就把你所做的推掉,然后 ...
TheHorizon 发表于 2010-11-12 03:41 http://bbs.routerclub.com/images/common/back.gif

能得到你这么详细的步骤说明,已经很感谢了.
不过关键点我还是得问细些.

    在IP-NAT里,添加静态地址的网络地址转换。请问这个是指masquerade方式吧?是不是只要指定gatewaye interface, 不需要指定source IP address?

再去PC上测试WEB访问。ROS里查看静态地址的线路有没有流量过。我以前就是这么确认的,死活没流量,就来向大家求教了.
页: [1] 2
查看完整版本: ADSL+能上internet的 LAN, 双线web分流失败,求解~