OpenWrt实现多SSID wifi连接功能并抓包分析

来源:互联网 发布:网络交友的好处和弊端: 编辑:程序博客网 时间:2024/06/03 09:35

目标:openflow交换机实现两个SSID,客户端通过wifi连接其中一个只能进行内部通信,不能连接外网;连接另一个能连接外网

1,进入OpenWrt界面,创建端口wlan0,内部使用:
见文章OpenWrt: Create and configure a new wireless controller :
http://blog.csdn.net/qq_15437629/article/details/51250979

2,创建端口wlan0-1:
同上,但不需要另外创建interface(不配置DHCP服务器,通过控制器启动相应的NAT、DHCP模块可用于连接外网)

3,ssh进入交换机检查网桥配置,添加wlan端口

ovs-vsctl add-port br0 wlan0 tag=8ovs-vsctl add-port br0 wlan0-1 tag=7

初始配置文件在目录:/etc/init.d/ovs-set 下。

4,控制器端:

./pox.py  misc.nat --outside_port=eth0.1 --dpid=7 openflow.discovery forwarding.l2_pairs samples.pretty_log#指定连接外网的交换机dpid与端口号,用于实现nat转换与ip分配功能# 

源码下载:https://github.com/pkpk8/NATDHCP

OpenWrt安装tcpdump抓包分析

tcpdump是一个运行在命令行下的嗅探工具,它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。OpenWrt + tcpdump = 抓包神器。

tcpdump(命令) + wireshark(图形化)
操作过程: 
1,交换机端通过进行tcpdump -w /tmp/tcp.cap 指定输出外部文件
2,scp /tmp/tcp.cap 拷贝文件到本地
3,wireshark &  启动wireshark,
4,通过 File -> Open  打开拷贝下来的文件,这样就可以利用进行数据包分析了
剩下来的事就非常方便了

详细步骤:
openwrt 官方已经有tcpdump软件的安装包,安装过程很简单:
opkg update
opkg install tcpdump

无联网时也可通过传入事先下载的tcpdump ipk进行安装。
12.09 ipk下载地址:https://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/

抓包,例如某个接入的客户端分配ip=192.168.1.100:

tcpdump src 192.168.1.100 or dst 192.168.1.100  -w test.cap抓包得到的 log 文件 test.cap 可以用 wireshark 打开进行过滤分析

tcpdump命令行格式:
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [ -s snaplen ][ -T 类型 ] [ -w 文件名 ] [表达式 ]

常用的参数:
-l    使标准输出变为缓冲行形式;
-n    不把网络地址转换成名字;
-c    在收到指定的包的数目后,tcpdump就会停止;
-i    指定监听的网络接口;(如果没有指定可能在默认网卡上监听,需要指定绑定了特定IP的网卡)
-w    直接将包写入文件中,并不分析和打印出来;
-s 指定记录package的大小,常见 -s 0 ,代表最大值65535,一半linux传输最小单元MTU为1500,足够了
-X 直接输出package data数据,默认不设置,只能通过-w指定文件进行输出

常用表达式:
关于类型的关键字,主要包括host,net,port
传输方向的关键字,主要包括src , dst ,dst or src, dst and src
协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型
逻辑运算,取非运算是 ‘not ’ ‘! ‘, 与运算是’and’,’&&’;或运算 是’or’ ,’||’
其他重要的关键字如下:gateway, broadcast,less,greater

控制器端传入文件,之后用Wireshark分析,妥妥的:
scp root@192.168.1.7:/tmp/test.cap /home/zlk/

0 0