Wifidog流程网关协议v2

线路协议
回复形式

在线路协议中有以下说明:

  • 紧凑表示(当浏览分散式网络时,宽带也不便宜)
  • 用户可读
  • 能够为C语言和PHP提供快速的解析器,并且比较理想的是能够多语言化
  • 适用于与配置文件分享解析器和格式
  • 适用于清晰的显示树结构(例如认证服务器列表)

请求格式

必须遵循请求格式:

  • 每个http请求都有多个操作(例如为多个用户更新统计数据)
  • 保持http传送,因为这能允许完整的NAT和透明代理阻力

以上的一些需求没有适用于RESTFull ROA。然而,保持现有格式事实上把我们限制在了tag-value对列表。理论上即使可以将action=whatever放在列表中间并在协议中申明以下每个参数都是那个action的参数,这将使大多数网络服务器与框架完全混淆。

  Acv:另一个可能性是从PHP进行URL-parsing的方式借用一个页面。将get请求设置到一个数组表示,这将允许公平的逻辑请求捆绑。也就是:

 /page?req[0][action]=Action1&req[0][Param1]=param&req[0][Param...]=param...&req[0][Paramn]=paramn&\


req[...][action]=Action...&req[...][Param1]=param&req[...][Param...]=param...&req[...][Paramn]=paramn&\


req[n][action]=Actionn&req[n][Param1]=param&req[n][Param...]=param...&req[n][Paramn]=paramn

  Acv:当比较容易进行解析的时候,这个格式会保持用户可读

功能性需求

  • 允许认证服务器发送一些主要的配置变更
  • 允许基于MAC认证的非连接关系
  • 允许per-connection防火墙政策
  • 允许per-connection宽带管理,不只限于设置数量
  • 允许全球宽带管理
  • 指定围墙花园
  • 指定最初连接用户列表

指令
NOOP
基本上只为网关心跳。可能会指定操作间很短的延迟,并且如果在实际操作之间延迟的话,就会发送NOOP。
AUTH_VERIFY
STATS_UPDATE

提议方案
  Philippe:

 I think we could have a Hash kind of structure like this:

 * protocol_version: 1 (start with this to identify protocol)

 * wifidog_version: ...

 * status:

   * uptime, etc.

 * connected_clients:

   * stats, etc.

  简单回复:

 {

    "protocol_version": 1,

    "config": {

        "login_url": "https://auth.server/login.php",

        "portal_url": "http://portal.server/",

        ... },

    "clients": [

        { "mac": "00aabbccdd22", "ip": "10.0.0.1", ... },

        { "mac": "00aabbccdd22", "ip": "10.0.0.1", ... },

        ... ]

}

网关和认证服务器通信
2.png

配置

  • 醒目页面,如果auth-server=down(URL)
  • 醒目页面,如果internet=down(内容)
  • 围墙花园(考虑一下DNS超时)
  • 静态MAC黑/白名单
  • 全球防火墙/QOS配置

本文章由 http://www.wifidog.pro/2015/03/31/wifidog%E6%B5%81%E7%A8%8Bwifidog%E5%8D%8F%E8%AE%AE.html 整理编辑,转载请注明出处

标签: wifidog认证 wifidog安装 wifidog原理 wifidog分析 wifidog配置 wifidog流程 wifidog服务器 wifidog-ddwrt wifidog openwrt