kyer2012 发表于 2011-2-22 11:10:34

ROS如何做到以下功能

第一次打开网页,就只指自己内网的电影服务器!

tangdong 发表于 2011-2-22 12:25:36

/ip firewall mangle
add action=add-src-to-address-list address-list=new address-list-timeout=5s \
    chain=prerouting comment="" disabled=no dst-port=80 protocol=tcp \
    src-address-list=!old
add action=add-src-to-address-list address-list=old address-list-timeout=1h \
    chain=prerouting comment="" disabled=no dst-port=80 protocol=tcp

/ip firewall nat
add action=dst-nat chain=dstnat comment="" disabled=no dst-port=80 protocol=\
    tcp src-address-list=new to-addresses=电影服务器地址 to-ports=80

第一条:把所有内网IP对目标80端口的访问添加到地址列表new里面,并且排除源地址列表old,new地址列表的超时设置为5秒,初次匹配,源地址都会被添加到new地址池了
第二条:把所有内网IP对目标80的访问添加到地址列表old里,超时1小时,也就是说,一个地址初次访问,首先匹配第一条规则,那么它就会在new地址列表里存在5秒,5秒后消失的同时第二条就会匹配到第二条,就添加到old地址列表里面,这个超时可以根据情况设置,old地址列表的地址在一定时间内是不会被第一条匹配的
第三条:对new地址列表的主机访问80转发到电影服务器,new地址列表只存在5秒,所以你一台主机首次访问80的时候,5秒内都是访问的电影服务器

缺点:有时候浏览器会记住那个网页的缓存,一般刷新几次就能恢复,有时候不行就要清空浏览器缓存,还有一点,这种做法只能是标准的url生效,如果是跟了后缀的域名,比如http://xx.xx.xx/xx.aspx?123就会提示404错误,这种情况解决的办法就是
在你的电影服务器的web里面,把http的错误页重定向到你的主页就行了!

kyer2012 发表于 2011-2-22 15:05:01

本帖最后由 kyer2012 于 2011-2-22 15:16 编辑

拜读先,非常感谢!

如果我的ROS已经借用了那个错误页面,做到期提醒通知呢?

那两个不是矛盾了吗?

janlovewen 发表于 2011-2-22 15:57:18

本帖最后由 janlovewen 于 2011-2-22 15:59 编辑

WEB PROXY 能解决你问题``或者
/ip firewall mangle
add src=内网地址 action=add-src-to-address-list address-list=new address-list-timeout=5s \
    chain=prerouting comment="" disabled=no dst-port=80 protocol=tcp \
    src-address-list=!old
add src=内网地址action=add-src-to-address-list address-list=old address-list-timeout=1h \
    chain=prerouting comment="" disabled=no dst-port=80 protocol=tcp

kyer2012 发表于 2011-2-23 10:36:40

tangdong 发表于 2011-2-22 12:25 static/image/common/back.gif
/ip firewall mangle
add action=add-src-to-address-list address-list=new address-list-timeout=5s \
...

在你的电影服务器的web里面,把http的错误页重定向到你的主页就行了


不知道这个如何操作呢?

tangdong 发表于 2011-2-23 11:33:23

kyer2012 发表于 2011-2-23 10:36 static/image/common/back.gif
在你的电影服务器的web里面,把http的错误页重定向到你的主页就行了




不知道你的web服务器是谁家的。IIS的可以这样做

kyer2012 发表于 2011-2-23 11:43:03

tangdong 发表于 2011-2-23 11:33 static/image/common/back.gif
不知道你的web服务器是谁家的。IIS的可以这样做

非常感谢斑竹!

我以为是在ROS设置 web proxy

kyer2012 发表于 2011-2-23 11:59:53

本帖最后由 kyer2012 于 2011-2-23 12:05 编辑

tangdong 发表于 2011-2-22 12:25 static/image/common/back.gif
/ip firewall mangle
add action=add-src-to-address-list address-list=new address-list-timeout=5s \
...

斑竹你好,你这个功能虽好!

但是你跳转到那个页面的时候,5秒过期了。那个外网的域名是跟你的内网的IP对应!

如果那个IP是电影服务器,你打开http://www.baidu.com 是那个内网网站,5秒过期后,你点内网电影里面的网页,百度会显示没有此页面



tangdong 发表于 2011-2-23 12:46:57

本帖最后由 tangdong 于 2011-2-23 12:48 编辑

缺点:有时候浏览器会记住那个网页的缓存,一般刷新几次就能恢复,有时候不行就要清空浏览器缓,有时要关了浏览器再开,一直刷新不行的

kyer2012 发表于 2011-2-23 14:55:09

tangdong 发表于 2011-2-23 12:46 static/image/common/back.gif
缺点:有时候浏览器会记住那个网页的缓存,一般刷新几次就能恢复,有时候不行就要清空浏览器缓,有时要关了浏 ...

斑竹我的意思

例如你内网 192.168.10.254 是电影服务器

如果做了以上策略,打开百度会前5秒是 192.168.10.254 这个内网电影网站

如果5秒过后,你的域名是www.baidu.com,但里面的内容是内网电影网站的内容,你打开 www.baidu.com/vod.html 网站,百度会显示没有此页面!


这个如何解决呢?

tangdong 发表于 2011-2-23 15:08:31

kyer2012 发表于 2011-2-23 14:55 static/image/common/back.gif
斑竹我的意思

例如你内网 192.168.10.254 是电影服务器


直接重定向,这样浏览器就是直接192.168.1.254了,不会是网址

kyer2012 发表于 2011-2-23 16:47:59

thanks         

wanken 发表于 2011-2-24 21:07:20

太好的范例,感谢版主,收起来了!顶一个

samueltang1 发表于 2011-2-25 11:11:03

顶一个,收藏了
页: [1]
查看完整版本: ROS如何做到以下功能