使用Linux做无线AP -- 2

本文详细介绍如何通过brctl工具配置无线接入点(AP)作为网桥,实现家庭环境中无线设备与有线网络间的无缝连接。文章包括AP网络接口配置、网桥搭建步骤及测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先察看一下现在AP网络接口情况:

[root@Jack ~]#ifconfig | more

ath0      Link encap:Ethernet  HWaddr 00:14:78:74:48:37 

          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::214:78ff:fe74:4837/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2926 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3698 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:394293 (385.0 KiB)  TX bytes:4125650 (3.9 MiB)

 

eth0      Link encap:Ethernet  HWaddr 00:0F:3D:82:BF:7F 

          inet addr:221.137.213.78  Bcast:255.255.255.255  Mask:255.255.252.0

          inet6 addr: fe80::20f:3dff:fe82:bf7f/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:34968 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2773 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:6001857 (5.7 MiB)  TX bytes:379155 (370.2 KiB)

          Interrupt:11 Base address:0x2000

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

 

wifi0     Link encap:Ethernet  HWaddr 00:14:78:74:48:37 

          inet6 addr: fe80::214:78ff:fe74:4837/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2949 errors:0 dropped:0 overruns:0 frame:1283

          TX packets:3743 errors:4 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:199

          RX bytes:483384 (472.0 KiB)  TX bytes:4239927 (4.0 MiB)

          Interrupt:7 Memory:d8980000-d8990000

 

 

再从 AP  ping 本本ibookG4

[root@Jack ~]# ping 192.168.0.90

PING 192.168.0.90 (192.168.0.90) 56(84) bytes of data.

64 bytes from 192.168.0.90: icmp_seq=0 ttl=64 time=0.434 ms

64 bytes from 192.168.0.90: icmp_seq=1 ttl=64 time=0.397 ms

64 bytes from 192.168.0.90: icmp_seq=2 ttl=64 time=0.393 ms

64 bytes from 192.168.0.90: icmp_seq=3 ttl=64 time=0.445 ms

64 bytes from 192.168.0.90: icmp_seq=4 ttl=64 time=0.629 ms

 

--- 192.168.0.90 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 3999ms

rtt min/avg/max/mdev = 0.393/0.459/0.629/0.090 ms, pipe 2

 

 

测试成功,无线局域网建立了。

 

 

二.数据转发部分: 使用  brctl  做网桥

                                        或者  netfiltet/iptables转发及过滤

                                       

 

 

1. 对于家庭环境,AP (接入点),我们真正需要的是一个简单的网桥;来自一个网络的数据包出现在另一个网络上,没有什么特别用途---只要简单和实用。这个机器不是路由器,也不是 DHCP 服务器或者任何别的东西,它只是一个网桥。 网桥仅仅在有线网和无线网之间传递数据包。这样,无线设备可以查找任何自己想要找的内容,就好像自己完全连接在物理网络上。

 

配制过程:首先到  http://linux-net.osdl.org/index.php/Bridge 下载brctl-utils-1.1.tar.gz, 解压缩 tar -zvxf brctl-utils-1.1,然后  ./configure , make , make install.

安装完毕后,在命令行里输入 brtcl, 系统会以下出现 brctld  的帮助提示,说明可以使用它做网桥了。

[root@Jack ~]# brctl

Usage: brctl [commands]

commands:

        addbr           <bridge>                add bridge

        delbr           <bridge>                delete bridge

        addif           <bridge> <device>       add interface to bridge

        delif           <bridge> <device>       delete interface from bridge

        setageing       <bridge> <time>         set ageing time

        setbridgeprio   <bridge> <prio>         set bridge priority

        setfd           <bridge> <time>         set bridge forward delay

        sethello        <bridge> <time>         set hello time

        setmaxage       <bridge> <time>         set max message age

        setpathcost     <bridge> <port> <cost>  set path cost

        setportprio     <bridge> <port> <prio>  set port priority

        show                                    show a list of bridges

        showmacs        <bridge>                show a list of mac addrs

        showstp         <bridge>                show bridge stp info

        stp             <bridge> {on|off}       turn stp on/off

 

使用它以前,必须将无线AP的物理参数设置好(参看无线网络部分),并且关闭 eth0接口.

[root@Jack ~]#  ifdown  eth0   //网桥的启动前,必须关闭 eth0

 [root@Jack ~]#  wlanconfig ath0 create wlandev wifi0 wlanmode ap  //AP设置为AP模式

 

开始创建网桥

[root@Jack ~]#  brctl addbr br0        //建立名为br0的网桥

[root@Jack ~]#  brctl addif br0 ath0   //添加ath0接口

[root@Jack ~]#  brctl addif br0 eth0   //添加eth0接口

[root@Jack ~]#  ifconfig ath0 0.0.0.0  //因为网桥是在数据链路层转发数据包,网络接口不可能有IP地址,所以ath0IP必须初始化为0.0.0.0

[root@Jack ~]#  ifconfig eth0 0.0.0.0  //eth0IP初始化为0.0.0.0,原因同上

[root@Jack ~]#  ifconfig br0 up  //启动网桥

[root@Jack ~]#  dhclient br0   //为网桥br0分配一个公网地址,便于远程控制(可选)

 

现在网桥应该可以工作了,此时发现我的ibookG4得到了一个公网ip,ISPDHCP服务器分配的。

此时查看 ibookG4的网络接口

发现得到公网IP  221.137.208.102 / 255.255.252.0

 

( 屏幕截图:显示airport的当前状态)

 

 

 

再从 ibookG4 ping 上海热线站点 的测试以及 traceroute 测试

(本本的 MAC OS X 10.4也叫 Jack)

 

Last login: Sun Apr  9 09:41:53 on ttyp1

Welcome to Darwin!

Jack:~ lingchen$ ping www.online.sh.cn

PING www.online.sh.cn (218.1.64.33): 56 data bytes

64 bytes from 218.1.64.33: icmp_seq=1 ttl=245 time=122.179 ms

64 bytes from 218.1.64.33: icmp_seq=2 ttl=245 time=121.600 ms

64 bytes from 218.1.64.33: icmp_seq=3 ttl=245 time=117.919 ms

64 bytes from 218.1.64.33: icmp_seq=4 ttl=245 time=154.359 ms

64 bytes from 218.1.64.33: icmp_seq=5 ttl=245 time=115.736 ms

64 bytes from 218.1.64.33: icmp_seq=6 ttl=245 time=115.345 ms

^C

--- www.online.sh.cn ping statistics ---

7 packets transmitted, 6 packets received, 14% packet loss

round-trip min/avg/max/stddev = 115.345/124.523/154.359/13.597 ms

 

测试成功 !!!

 

网桥模式非常适合家庭用户,对于他们来说,无线AP 是透明,看不见的,客户机几乎就是直接在接入原有的网络上,根本没有差别。另外,网桥模式设置极为简单,无须与无线网络的网络层打交道(如 无线的 IP/netmask, router, gateway, DNS),普通用户就可以自行完成设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值