上图中左边STA客户端模式下的无线网卡作为WAN把192.168.2.0/24划为内网,用NAT方式连接外网的Wifi AP节点(192.168.1.1)。这个很像经典的OpenWrt WAN和LAN网络结构,只不过把WAN的以太网接口换成了Wifi。
OpenWrt设置在OpenWrt下主要是设置/etc/config/network、/etc/config/wireless这两个文件,其他的都与默认的LAN和WAN模式相同。
/etc/config/network下,关闭VLAN(enable_valn=0),lan接口设置成静态并
去掉网桥(默认为'option type bridge',Wifi通常自动桥接到lan接口),wan去掉'option ifname '选项(无线Wifi接口会自动加入wan作为ifname)。
- config switch eth1
- option reset 0
- option enable_vlan 0
- config interface loopback
- option ifname lo
- option proto static
- option ipaddr 127.0.0.1
- option netmask 255.0.0.0
- config interface lan
- option ifname eth1
- option proto static
- option ipaddr 192.168.2.1
- option netmask 255.255.255.0
- config interface wan
- option proto dhcp
复制代码
配置以后所有交换机上的接口都变为内部LAN,而无线Wifi作为WAN连接外网。LAN和WAN之间用NAT方式进行地址转换(具体在 firewall 的WAN设置masq=1,默认已经设置好了),firewall的NAT选项叫Masquerade(伪装),就是WAN接口把内网的数据包源地址伪装成自己的,很形象:)。
我一开始连接失败用Tcpdump查看wlan0,发现数据包还没有NAT伪装,最后发现是firewall没启动,所以确保firewall开机启动:
- /etc/init.d/firewall enable
复制代码
查看firewall是否启动:
- /etc/init.d/firewall enabled && echo on
复制代码
/etc/config/wireless下,设置Wifi参数:
- config wifi-device radio0
- option type mac80211
- option channel 0
- option hwmode 11g
- option txpower 0
- config wifi-iface
- option device radio0
- option network wan
- option mode sta
- option ssid yourAPssid
- option encryption psk2
- option key yourkey
复制代码
主要是设置mode为sta,network选择要自动加入wan,填上要连接Wifi AP的ssid、加密方式encryption和密钥key,全部完成后重启网络,Wifi连接成功后WLAN LED灯会亮起。
- /etc/init.d/network restart
复制代码
把你的台式电脑网线随便插入LAN口,这样你就成为了一台有无线网卡的台式机了,省去了用网线想方设法连接其他房间路由器的烦恼:)。
参考
http://wiki.openwrt.org/doc/howto/clientmode
http://wiki.openwrt.org/doc/recipes/routedclient#using.masquerade