首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于嵌入式Linux系统的3G/4G路由器设计——iptables nat 模式更新

基于嵌入式Linux系统的3G/4G路由器设计——iptables nat 模式更新

3.2 无线局域网的组建  该无线路由器利用无线网卡在嵌入式Linux系统中组建一个小型的无线局域网,一方面提供给智能终端等设备接入,另一方面将无线局域网接入至3G/4G 网络。其基本流程如图4所示。

  


  图4 无线局域网组建流程图


  3.2.1 无线网卡驱动加载
  TL-WN821N 型无线网卡采用的WLAN芯片组为Realtek公司的提供的RTI 8192cu芯片,Realtek公司提供了基于Linux系统的该芯片组驱动源码,根据 编译环境及Linux内核对驱动源码进行编译,即可生成该无线USB网卡的驱动。具体步骤如下:
  ① 下载驱动源码rtl8188c 8192c usb linux - v3.4.4- 4749.2.121105.tar.gz,并解压。
  ② 进入到驱动源码包中,修改Makefile文件,指定编译环境及Linux内核:
  CONFIG_PLATFORM_NEW = y
  ifeq($(CONFIG_PLATFORM_NEW ),y)
  EXTRA_CFLAGS + = - DCONFIG_LLTTLE_ENDIAN
  ARCH :arm
  CROSS_COM PILE := arm-none-linux-gnueabi-
  KSRC=/home/linux-2.6.32-devkit8500
  endif
  ③ make,生成该无线网卡的驱动8192cu.ko。
  然后加载该驱动,再通过命令ifconfig wlan0 up,将无线网卡的网口wlan0挂载至Linux系统中,可通过ifconfig命令查看该网口的基本配置信息。
  3.2.2 AP模式转换
  将无线网卡驱动加载成功之后,该无线网卡的默认工作模式为工作站模式,即作为客户端搜索周围的无线接人点,以接人到其他的无线局域网中,而 3G/4G路由器需要利用无线网卡的模式转换工具hostapd将该网卡的工作模式由工作站模式切换为AP模式,也称接入点模式,并利用该模式建立一个无线局域网。hostapd在Linux系统中的移植过程如下:
  ① 下载并解压hostapd_0.8_rtw_20120803.zip。
  ② 进入主目录,修改Makefile,指定交叉编译器:
  CC = arm-none-linux-gnueabi-gcc
  ③ make。
  生成hostapd、hostapd_cli,将这两个二进制文件和rtl_hostapd.conf复制到嵌入式Linux系统中。在 rtl_hostapd.conf配置文件中,可以设置该无线网卡的服务集标识(SSID)、支持的802.11协议版本、工作频率、无线信道以及加密的方式等一系列该无线局域网的配置信息。通过执行命令hostapd rtl_hostapd.conf-B,完成该无线网卡的工作模式的切换。
  3.2.3 DHCP配置
  在无线网卡的AP模式切换完成之后,需要通过DH-CP协议配置该无线局域网的动态地址池及其网关,该无线局域网会根据DHCP协议从配置的地址池中,自动给接入到该无线局域网的智能终端等设备分配一个IP地址。其DHCP协议的配置文件dhcp.conf具体如下:
  start 192.168.0.20
  end 192.168.0.254
  interface wlan0
  opt dns 8.8.4.4
  opt subnet 255.255.255.0
  opt router 192.168.0.1
  opt lease 864000
  然后在Linux系统中执行udhcp-fS dhcp.conf,启动DHCP协议。之后该无线网卡会建立一个无线局域网,并给接入到此无线局域网中的智能终端等设备自动分配一3.3 iptables连通
  在实现3G/4G 网络的接人和无线局域网的组建之后,该路由器采用Linux系统中的IP信息报过滤系统,即iptables,将3G/4G网络和组建好的无线局域网连通。iptables系统需要Linux系统内核中的网络数据包过滤框架的支持,需要重新配置内核,选中内核中Networking Support → Networking options → Network packet filtering framework,将其框架编译进Linux内核,然后需要对iptables进行移植,其移植过程如下:
  ① 下载并解压iptablesj.4.3.1.tar.gz。
  ② 进入主目录,配置编译选项:
  。 /configure-prefix=/usr/local/iptables--host = arm-none-linux-gnueabi--with-curnel=/home/SD_tools/linux-2.6.32-devkit85O0
  ③ make并make install。
  将生成的iptahles二进制执行文件复制到Linux系统中,并编写iptables系统的运行脚本文件net-share,该运行脚本文件配置了IP数据包的流向、进入网络的接口等一系列规则,该路由器进入3G/4G 网络的接口为无线上网卡进行拨号后产生的pppO网络接口,其内容如下:
  echo‘1’》 /pr0c/sys/net/ipv4/ip- forward
  iptables -F
  iptables -P INPUT ACCEPT
  iptables -P OUTPUT ACCEPT
  iptables -P FORW ARD ACCEPT
  iptables -t nat-A POSTROUTING -o ppp0-j MASQUERADE
  在Linux系统中执行脚本文件./net-share,即完成了无线局域网至3G/4G网络的连通,从而实现了3G/4G路由器的设计。
返回列表