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不通了,高手指教一下原因?
先行谢过. 贴配置 本帖最后由 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 劝您下次帖配置的时候用 export 不要用print 了。看起来好晕。而且还不确定能显示完整。
你标记了80口,标记连接为http-con,然后把http-con 标记路由为web
那你上面帖出来的路由表里,没有用上web呀?路由表里不是应该有两条AS么?一条ADSL的,一条专为80的。 劝您下次帖配置的时候用 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 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: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吗? 那个不是固定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的填网关地址,并且要确保这个网关地址是通的 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: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什么的。所以最后这里我特别强调一下,有错误的话,望指证) :lol 本帖最后由 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: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了。(可能文字表达有缺失,要是有漏写的地方见谅了) 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呢~ 呵呵。我只是工作时间不同罢了。不是生活自由。
我最后回一次,如果还不行,你就把你所做的推掉,然后 ...
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