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

用 Linux 脚本简化无线网络的管理(2)

用 Linux 脚本简化无线网络的管理(2)

管理客户机无线客户机可能会出现一些问题,这一节中讨论的基于 Linux 的管理工具可以帮助您解决这些问题。下面是几个如何解决典型的用户问题的例子:
  • 问题: "Internet 今天是否出过问题?为什么我的浏览器无法找到  呢?"
  • 解决方案: 首先,使用 scanap 脚本检查无线网络的客户机;这可以告诉您有关所有已连接客户机的无线信号的质量,包括出问题的那些客户机。然后使用 pingall 脚本检查这个 IP 是否有问题;这将告诉您有关到达 ISP 网关、DNS 和所有客户机的延时时间,其中包括那些有问题的客户机。如果这两个脚本都说您的网络没问题,那么不妨试一下  是否有问题。
  • 问题: "昨天我从  下载东西时的速度是 X。为什么现在我的速度只有 Y 呢?"
  • 解决方案:要判断您的网络是否被其他人利用了,请运行 countlog 脚本。该脚本可以按照客户机和时间列出今天的传输历史记录。
为了改进简单性和安全性,您可能希望试验一下我为用户提供的一种方法。我获得了每台客户机的 MAC 地址,因此只有那些已知的 MAC 地址才允许连接到这个无线网络上。我为每台客户机都分配了一个固定的 IP 地址,这样只有那些已知的 IP 地址才能通过路由器。将这些客户机的信息保存在某个地方要比同步并复制配置文件容易得多。我在 /etc/hosts 中为每台客户机的 IP 地址都分配了一个容易记忆的名字,并在同一行中写下了该客户机的 MAC 地址。例如:
清单 2. 分配一个主机名和 MAC 地址
1
192.168.168.198 wet11two 00:0C:41:BE:BF:B0




请参阅中 /etc/hosts 的一个示例实现。
networkingrestart:networkingrestart 脚本负责启动网络,并对所有有效的客户机进行身份验证。它将读取 /etc/hosts 文件,然后将这个 MAC 地址添加到无线访问控制列表中。
gethost:在向 gethost 脚本传递一个 IP 地址、主机名或 MAC 地址时,它就会从 /etc/hosts 文件中返回所有这三种内容。countlog、pingscan 和 scanap 脚本都会使用 gethost 脚本,也可以在命令行中直接使用此脚本。
scanap:scanap 脚本的作用是显示 IP 地址、MAC 地址、主机名,以及客户机与 AP 之间的连接的质量。它会对 Wireless Tools 的 iwlist 的输出结果重新进行格式化,并添加 MAC 地址的信息,这样就可以在每一行中对每台客户机的状态进行总结。它的输出结果如下所示:
清单 3. scanap 脚本的输出
1
2
3
4
--------------------------------------------------------------
MAC Address...... Quality Signal Noise. IP Address....... Name
00:0C:41:BE:BF:B0 238/92 -29 -35 192.168.168.198 wet11two
------------------------------------------------




管理带宽WISP 要负责处理有线网络中的所有复杂问题,以及特定于无线环境的一些问题。下面这些脚本可以确保您所提供的带宽既稳又快。
errors:errors 脚本会对 Linux 的 /proc/net/ 中的信息进行统计,并给出这个访问点的所有传输错误率的快照。它还将输出结果写入一个表格文件,供以后处理使用。它的输出结果如下:
清单 4. errors 脚本的输出结果
1
2
3
4
------------------------------------------------------
13 22:20 TX Octets: 294080 TX errors: 1665 TX error ratio: 176
13 22:20 RX Octets: 893539 RX errors: 3225913 RX error ratio: 0   
------------------------------------------------------




这个例子说明第一次成功传送的报文的数量比需要重新传送的报文的数量多 176 倍,还说明发送报文时出现的错误远远多于接收报文的错误。这些数字仅仅是我们需要观察的一些指标,因此如果这些数字并不一致,也不用担心。使用情况会对这些比率值造成非常大的影响。如果不使用网络,就不会有成功的报文,因此这个比率就是 0。如果很少使用网络,那么这个比率就会很低。随人们越来越多地使用网络,这个比率可能会极其高。
pingscan:pingscan 脚本负责测量网络的延时,它将说明客户机是否具有最快、最可靠的吞吐量。它向客户机发送 4 个短的 ping 包(每个是 56 个字符)和 4 个长的 ping 包(每个是 1,024 个字符),然后返回以下信息,每行的内容如下:
  • 客户机的主机名和 IP 地址。
  • 时间戳。
  • 接收到短 ping 包的响应的个数。
  • 接收到长 ping 包的响应的个数。
  • 对短 ping 包响应超过 1 秒的个数。
  • 对长 ping 包响应超过 1 秒的个数。
它还要将结果记录到一个电子表格文件中,便于以后进行分析。在如清单 5 所示的结果中,这个主机目前执行得很好。这些响应来自 4 个短的 ping 包和长的 ping 包。没有一个响应超过 1 秒。
清单 5. pingscan 脚本的输出
1
2
3
-------------------------------------------------------
wet11two,2005-03-18,23:59,4,4,0,0
-------------------------------------------------------




下一个示例输出清单是在一天后执行的。在这一天中,同一台主机上丢失了一些响应信息 —— 4 个短 ping 包中只有一个收到了响应,4 个长 ping 包中只有 3 个收到了响应。
清单 6. 示例 pingscan 脚本的输出
1
2
3
-------------------------------------------------------
wet11two,2005-03-19,23:59,1,3,0,0
-------------------------------------------------------




如果其他客户机都运行良好(4,4,0,0),那么就是这台主机目前出现了问题。另一方面,如果多台客户机上都丢失了响应信息,那么问题就可能在于访问点上。
通信的监视了解 AP 上有多少通信是非常有用的。实现这种功能的一种方法是通过 SNMP 来记录路由器的通信信息,然后对这些日志记录进行统计。不同路由器的日志也有所不同,因此您需要以不同的方式对它们进行处理。
我将路由器配置为将其 SNMP 的记录发送到一个搜集器主机(在这里是 AP)的 IP 地址。在 AP 一端,我将运行 snmpd 和 snmptrapd 守护进程,将这些记录保存到一个文件中。这些记录如下所示:
清单 7. 记录搜集
1
2
"@out 192.168.168.192 2983 208.222.234.90 80."
"@in 211.107.232.1 51550 192.168.168.196 21."




外发的记录是一个 Web 请求,从 192.168.168.192 发往 208.222.234.90。传入的记录是一个 FTP 请求,从 211.107.232.1 发往  192.168.168.196。
您可以从这个文件中提取很多有用的信息 —— 例如,可能有一些您希望阻塞的病毒探测。countlog 脚本可以使用两种不同的方法来统计这些传入的记录和外发的记录。它可以统计最后 n 分钟内的请求数量,其中 n 可以是一个自行定义的数字:
清单 8. countlog 脚本统计 n 分钟内的请求数量
1
2
3
Checking 5 minutes before 23:59...
101 requests in 5 minutes
An average of 20 requests per minute




它还可以统计过去 24 小时内请求的个数:
清单 9. countlog 脚本统计过去 24 小时内请求的个数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Start... Total Outbound and Inbound Today
00:00... out: 192 in: 63 out/min: 3
.
.
.
19:00... out: 243 in: 96 out/min: 4
20:00... out: 308 in: 66 out/min: 5
21:00... out: 151 in: 103 out/min: 2
22:00... out: 206 in: 94 out/min: 3
23:00... out: 160 in: 70 out/min: 2
Totals.. 2095 1759
IP Address (Host Name) Total Outbound Today
192.168.168.8 (cheltenham) 659
192.168.168.191 (t30lan) 156
192.168.168.192 (downstairs) 1044
192.168.168.196 (opteron) 236
Total all IP's.... 2095




结束语很多命令行 shell 脚本都可以简化 WISP 的管理。下面是最后几点提示:
  • 不要在客户端使用 USB 无线网桥。它们的功能非常有限,当客户机关机之后,就无法 ping 到它们了。
  • 不要试图通过一个非常便宜的家用路由器来运行一个很大的无线网络。这样会产生不可预知的后果。
使用本文中介绍的工具和技术,您应该可以搭建并运行自己的无线网络。
返回列表