用易-小卢 发表于 2016-11-1 18:32:40

ROS通过DNAT实现推送PUSH广告、通知等服务

实现:ROS下客户第一次打开网页时重定向到自定义页面,可用于推送广告、PPPOE用户到期提醒等服务。
1.在postrouting链添加规则:
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列表,再次访问网络正常。
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移除。
{:local ip/ip firewall address-list
:foreach i in= do={
#遍历LAN列表内IP赋值ip
:set ip
:if ([:len ]=0) do={remove $i}}


#查找相应IP是否在线,不在线则IP位数为0,删除相应IP。
}

whg8208 发表于 2016-11-7 20:21:13

沙发价值千金!!

半导体 发表于 2016-11-14 20:03:12

学习了,谢谢

朱糊糊 发表于 2016-11-14 22:06:37

楼主你这种能做成右下角弹窗的形式吗?
页: [1]
查看完整版本: ROS通过DNAT实现推送PUSH广告、通知等服务