Giter VIP home page Giter VIP logo

acctl's Introduction

简介

Openwrt ac 控制器(acctl), 包含服务端和客户端两大块。支持以下特性:

  • 同一网段,二层发现,自动配置ip
  • 自动二层/三层发送控制信息
  • 二层主动探测网络中ap,可接管其他ac控制ap
  • 客户端主动链接,并保持长链接

目录

ac: 服务器代码 ap: 客户端代码 lib: 共用代码 include: 共用头文件 scripts: 编译等辅助脚本

ac

ac 为多线程,包含以下线程:

  • net_recv: 接收二层或者三层数据包
  • net_netlisten: 监听tcp链接
  • net_dllbrd: 二层广播
  • message_travel: 定时处理收到的报文
  • 主线程: 用于命令行查看系统状态
  • net_dllbrd 线程广播探测报文, 报文中携带ac的地址和监听端口
  • ap接收到探测报文后,发起tcp链接
  • ac 将ap信息插入aphash
  • ap 定时汇报状态
  • ac 从数据库中提出配置,与状态比较,并发出命令
  • 当tcp链接断开时,认为ap掉线
  • 删除aphash记录

启动过程:

  • 初始化ac控制器uuid
  • 初始化epoll
  • 初始化二层socket, 加入epoll
  • 启动net_recv线程,收包(此时只接收二层数据包)
  • 初始化三层tcp listen线程, 等待tcp 链接
  • 初始化二层广播,汇报服务器地址,端口,ac uuid

ap

ap 为多线程,包含以下线程:

  • net_recv: 接收二层或者三层数据包
  • message_travel: 定时处理收到的报文
  • 主线程: 状态查询

chap 二层保护

编译时makefile会要求输入password, 客户端和服务端必须密码一致,用于报文确认。random 用于防止重放攻击。

1、发送broadcast报文, 生成broadcast random0 2、ap接收到broadcast报文, 生成random1, 对数据+ random0 + password计算md5sum1, 发送ap reg 报文。 3、ac收到ap reg报文,提取md5sum1并置原报文位置为0, 对报文 + random0 + password计算md5sum2, 如果md5sum1 与 md5sum2 不一致,则丢弃。ac 生成reg response 报文,生成random2, 对数据 + random1 + password计算md5sum3 4、ap 收到reg response 报文,提取md5sum3并置原报文位置为0, 对报文 + random1 + password计算md5sum3, 如果md5sum3 与 md5sum4 不一致,则丢弃

acctl's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

acctl's Issues

数据库报错

在openwrt上运行acser时报错:

Mysql version:10.1.37-MariaDB
sql.c +137 sql_init(): ERR: Error 1049: Unknown database 'ac'

具体代码为:

135     ret = mysql_select_db(sql, DBNAME);
136     if(ret) {
137         pr_sqlerr();
138         exit(-1);
139     }

应该是数据库中没有ac这个表,但是程序没有自动创建

可以给出使用教程吗,本人现在已经可以通过openwrt sdk编译通过,打算在d525主机上运行ac,在ar9341上运行ap

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.