实现:ROS下客户第一次打开网页时重定向到自定义页面,可用于推送广告、PPPOE用户到期提醒等服务。
1.在postrouting链添加规则:
1 2 | add action=add-src-to-address-list address-list=LAN address-list-timeout=5m chain=postrouting dst-port=80 protocol=tcp #经过postrouting链时添加IP至地址列表 |
2.在NAT表prerouting链添加DNAT,判断条件为源地址不在LAN列表,DNAT后经过postrouting链会添加IP至LAN列表,再次访问网络正常。
1 2 3 4 | add action=dst-nat chain=dstnat dst-port=80 in -interface=bridge- local protocol=tcp src-address-list=!LAN to-addresses=192.168.1.4 to-ports=80 #DNAT至192.168.1.4:80 ip firewall nat add chain=srcnat action=masquerade dst-address=192.168.1.4 #添加相应SNAT |
如果客户端使用PPPOE拨号可用以下脚本判断客户端是否在线,如不在线从LAN列表中将IP移除。
1 2 3 4 5 6 7 8 9 | {: local ip /ip firewall address-list :foreach i in =[ find list=LAN] do ={ #遍历LAN列表内IP赋值ip : set ip [get $i address] : if ([:len [ /ip address find dynamic= yes network=$ip]]=0) do ={remove $i}} #查找相应IP是否在线,不在线则IP位数为0,删除相应IP。 } |