本文将介绍如何把一个普通的路由器系统转化成带有中继功能的无线路由器的方案。在使用无线路由器的过程中,最常见的是直接把路由器挂载光猫后面拨号,然后分出wifi给其他设备供其上网。但是在一些情况下往往会有特殊的需求,比如有可能我们用这个路由器中继其他的无线信号而且还要确保扩展出来的接入终端仍旧在原来的子网中。
概述
AP:Access Point Mode,允许无线接入(即发出wifi,供别人连接),家里的无线路由器大多都是这个模式。
STA:Station Mode,作为无线终端,连接AP用,手机wifi等,大多都是这个模式。
AP+STA:允许OpenWrt路由器,既能提供无线接入功能的AP,又能连接到其他AP,继续提供上网功能,即作为一个Repeater。
配置:首先需要硬件支持,仔细阅读芯片及驱动手册,确认支持AP+STA,确认支持WDS。
本文将以Qualcomm Atheros QCA4531为例。
内核编译选项
首先在内核里面将relay模块编译进SDK,并重新烧写;此模块可实现二级路由同网段无线桥接功能:
make menuconfig
LuCI---->5.protocols----><*>luci-proto-relay
配置
配置目标
a、路由器使用station模式接受Wifi
b、路由器使用AP模式发射Wifi
c、连入中继路由器的设备也能访问外网且还处于原来的子网
配置环境
路由器的内部系统采用的是openwrt。
配置步骤
配置的方法主要有3种:直接修改配置文件、通过UCI指令进行配置、通过WEB网页配置,此次采用UCI指令的方式进行配置。
配置AP模式:
uci set wireless.@wifi-iface[0].network=lan
uci set wireless.@wifi-iface[0].mode=ap
uci set wireless.@wifi-iface[0].encryption=psk2
//设置加密方式同上级路由
uci set wireless.@wifi-iface[0].key=87654321
//设置密码同上级路由
uci set wireless.@wifi-iface[0].ssid=openwrt_num1
//设置WIFI的名称
uci set wireless.@wifi-iface[0].device=radio0
配置station模式:
uci add wireless wifi-iface
uci set wireless.@wifi-iface[1].network=wwan
uci set wireless.@wifi-iface[1].mode=sta
uci set wireless.@wifi-iface[1].encryption=psk2 (上级路由加密方式)
uci set wireless.@wifi-iface[1].ssid=ali_test (上级路由SSID)
uci set wireless.@wifi-iface[1].key=87654321 (上级路由密码)
uci set wireless.@wifi-iface[1].device=radio0
uci commit wireless
将路由器WWAN口与LAN口进行中继桥接:
uci set network.wwan=interface
uci set network.wwan.proto=dhcp
uci set network.lan.ipaddr=192.168.10.1
uci set network.abcd=interface
uci set network.abcd.proto=relay
uci add_list network.abcd.network=lan
uci add_list network.abcd.network=wwan
uci commit network
设置防火墙:
uci add_list firewall.@zone[0].network='wwan'
uci commit firewall
关闭LAN口的dhcp功能
uci delete dhcp.lan.start
uci delete dhcp.lan.limit
uci delete dhcp.lan.leasetime
uci set dhcp.lan.ignore=1
uci commit dhcp
效果
配置完毕之后重启路由器,路由器将自动连接上级路由器,同时开启一个WiFi;设备连上WiFi之后与上路由处于同一网段。