《[计算机]ROS热点.doc》由会员分享,可在线阅读,更多相关《[计算机]ROS热点.doc(7页珍藏版)》请在三一办公上搜索。
1、ROS应用实例:用户首次上网打开上网提示页面(Hotspot)一、用户首次上网打开上网提示页面 本功能由ROS的hotspot实现。启用hotspot的命令是:IP-Hotspot,打开Hotspot配置窗口后点“Hotspot Setup”来安装它。下面是几个安装截图:在LAN接口启用Hotspot 指定内部地址段Masquerade Network选项表示:是否对此网络做NAT,由于我是在不需要NAT的网络中使用,因此我不勾选。 如果内部PC使用DHCP的话,要指定其使用的IP POOL,如果内部PC使用静态IP地址,则此处可省略。 指定使用的DNS服务器地址,如果内部PC配置了DNS,此
2、处可省略。 安装完Hotspot之后,系统会自动产生相应的文件。我们是要让用户首次打开网页显示提示页,而不是让用户登录认证,因此在Hotspot的Server Profiles中做如下设置:勾选中“HTTP CHAP”和“Trial”两项为了让用户每天上网时,只打开提示页一次,Trial Uptime Limit 设置为24小时,然后在system-scheduler中添加如下的脚本,让ROS每天在凌晨清除用户信息,这样,用户每天第一次打开网页都会自动重定向到提示页:/ip hotspot active remove /ip hotspot active find server=hotspot
3、1/ip hotspot user remove /ip hotspot user find dynamic/ip hotspot host remove /ip hotspot host find dynamic 至此,Hotspot设置完成,当用户第一次打开网页时,会自动重定向到一个页面。此页面为hotspot/login.html,可以在WINBOX中点击左侧的“Files”来修改。你可以在此页输入你要提醒大家的信息,我制作的提示页如下: 二、网络故障(内部、外部网关设备坏)时自动显示对应的问题页面 本功能的实现主要是用PING 网关MAC(ROS和网关设备在一个网络中)或IP(ROS和
4、网关设备不在一个网络中)的方式来探测网关是否正常。当探测到网关设备不正常时,将内部到外部的访问利用WEB代理的重定向功能转向到内部的某个页面(当然也可以使用DST-NAT重定向到一个IP,但是使用DST-NAT时,只能当用户访问网站首页时可以正常重定向,当用户直接访问二级页面时就不行了)。 正常情况下,内部用户访问互联网,不用ROS的WEB代理功能。当网关出问题时才使用。此时要在ROS上做DST-NAT,将内部到外部的TCP 80出站访问(即标准HTTP访问)重定向到ROS的WEB代理端口。 由于是在网络不通的情况下做DST-NAT劫持网络访问,此时内部用户通过域名访问外部的网站时,域名不能被
5、解析为IP,DST-NAT将不能正常工作,进而也无法做到内部到外部的TCP 80出站访问重定向到ROS的WEB代理端口。如果想让DST-NAT正常工作,则需要在内部有一个DNS服务器,它负责将所有的域名解析为某个IP。将所有域名都解析为某个IP的DNS服务器的设置,请看另外一篇博文:【原创】让DNS服务器解析所有域名到指定IP。要想让内部用户所有的域名解析重定向到内部的DNS服务器,则需要对UDP 53出站通信做DST-NAT,劫持到目的为内部DNS服务器。 当DST-NAT能正常工作时,我们就可以做将内部用户到外部的TCP 80出站访问(即标准HTTP访问)重定向到ROS的WEB代理端口。
6、使用PING探测网关是否正常,需要实时检测,因此需要做到System-Scheduler里,由于网络正常是使用Hotspot,因此当探测网关出问题时,需要停止Hotspot服务,脚本如下(下面的00:0C:29:9B:11:38 是交换机MAC,10.0.105.1是ROS的LAN地址,10.0.105.9是内部的DNS服务器和提问错误页面提示的WEB服务器地址): :if (/ping 00:0C:29:9B:11:38 count=1 = 0) do= :if ( /ip hotspot get hotspot1 disabled = false ) do= /ip hotspot dis
7、able hotspot1 :if ( /ip proxy get enabled = false ) do= /ip proxy set enabled=yes :if (:len /ip firewall nat find comment=local_error=0 ) do= /ip firewall nat add chain=dstnat action=dst-nat to-addresses=10.0.105.1 to-ports=8080 protocol=tcp in-interface=LAN dst-port=80 comment=local_error /ip firew
8、all nat add chain=dstnat action=dst-nat to-addresses=10.0.105.9 to-ports=53 protocol=udp in-interface=LAN dst-port=53 comment=local_error else= :if (:len /ip firewall nat find comment=local_error0 ) do= /ip firewall nat remove /ip firewall nat find comment=local_error :if ( /ip proxy get enabled = true ) do= /ip proxy set enabled=no :if ( /ip hotspot get hotspot1 disabled = true ) do= /ip hotspot enable hotspot1 ROS的web 代理里的设置如下: DNS服务器我使用的是FreeBSD下的BIND,named.root的配置如下:192.168.1.9为任意IP均可错误页面提示的WEB服务器和DNS服务器是在一个系统下,用的是nginx。nginx的配置文件如下: