portal功能实现

portal功能实现方式多样;

今天我介绍一种常用的方式:

要求:路由器在断网的情况下(Pon链路断开的情况)当PC访问外网的时候(可以通过ip 地址或者域名这两种情况访问)会弹出一个Pon链路断开状态的页面,提醒用户检查Pon链路是否正常;

实现方法:

1.分析:怎样将访问外网的数据包转交web服务器

当我们在通过浏览器访问外网(以www.baidu.com为例)时,首先PC先发送dns 数据包给dns 服务器进行域名解析成相应

在将ip地址封装到http 的数据包中发送出去;

思路:我们在访问外网的时候,在断网的情况下,我们需要做的是 路由器  dnsmasq进程收到dns 报文时,将所有的外网的域名映射成本地的IP地址。

然后通过iptables 进程将数据转发到web 服务器的80端口,web 服务器返回浏览器一个网络断开的状态页面!

在这段过程中:

dnsmasq 进程处理:

iptables 处理: 主要作用添加一个iptables规则,使得在断网的情况下,添加将外网的数据包转发到80 端口的进程那儿去

在有网络的情况下,删除该规则,定期执行,保证能够及时的更新规则(该程序在cfg_manager cc.c中循环中执行(间隔一秒));

 

 

web(Boa )处理:判断是否为本地IP,不是则返回断网状态页面(hostname 为域名)

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值