Wireless HOWTO 作者: Roberto Arcomano berto@fatamorgana.com 译者: 陈敏剑 expns@yahoo.com _________________________________________________________________ 无线网路 Wireless 是一项新的技术,它拥有比较高的连接速率(最高11 Mbps), 这份文档描述如何在Linux作业系统上设定无线网路, 解决兼容问题,以及更多的 资讯. _________________________________________________________________ 1. 介绍 * 1.1 版权 * 1.2 Translations * 1.3 Credits 2. 背景知识 * 2.1 Wireless 是什麽? * 2.2 radio cards 的最远传输距离是多少? * 2.3 有线网路和无线网路之间的区别是什麽? * 2.4 设定一个无线网路我需要知道些什麽? * 2.5 我为什麽要设定一个无线网路, 用它来做什麽? * 2.6 在HOWTO里都提到了哪些无线网卡? * 2.7 它们值多少钱? 3. 有关无线连结的资讯. * 3.1 物理层 * 3.2 设定 * 3.3 兼容性 * 3.4 我该使用Adhoc 还是 Infrastructure? * 3.5 Linux主机能不能当成基点(Access Point)来使用? 4. 工具箱 * 4.1 硬体条件 * 4.2 软体条件 5. 无线网路设定 * 5.1 基本步骤 * 5.2 底层核心设定 * 5.3 数据连接层的设定 * 5.4 IP 设定 6. 实例设定 * 6.1 General setup info * 6.2 Proxim Symphony (普罗西米交响曲) * 6.3 Webgear Aviator 2.4 and AviatorPro (网路行者, 网路行者加强版) * 6.4 Lucent Wavelan I, II, Orinoco products and Cabletron(朗讯网波, 奥里诺科 和 卡布勒森) * 6.5 YDI 7. 关於无线网路的更多资讯 * 7.1 Wireless Linux 发行版 8. 线上资讯 * 8.1 Open software link * 8.2 商业连接 9. FAQ - Frequently asked questions 10. Appendix A - Netmask 255.255.255.255, proxy arp and bridging 11. 附录 B - Siemens DECT Radio Modem (西门子--德特无线modem) _________________________________________________________________ 1. 介绍 按作者原意保留英文说明. This document explains something about Wireless networking, how to setup it, problems with it. Unliked wired network, Wireless requires some additional trick to work well. You should know something about antennas, pointing it, roaming info and so on. Feedback are welcome. You can found more interesting help at [1]Jean Tourrilhes Wireless Howto For any suggestion and feedback write to [2]my email address 1.1 版权 Copyright (C) 2000,2001 Roberto Arcomano. This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You can get a copy of the GNU GPL [3]here 1.2 Translations If you want to translate this document you are free, you only have to: * Check that another version of it doesn't already exist at your local LDP * Maintain all 'Introduction' section (including 'Introduction', 'Copyright', 'Translations', 'Credits'). Warning! You don't have to translate TXT or HTML file, you have to modify LYX file, so that it is possible to convert it all other formats (TXT, HTML, RIFF, etc.): to do that you can use "LyX" application you download from [4]http://www.lyx.org No need to ask me to translate! You just have to let me know (if you want) about your translation. Thank you for your translation! 1.3 Credits Thanks to [5]Fatamorgana Computers for hardware equipment and experimental opportunity. Thanks to [6]Linux Documentation Project for publishing and uploading my document in a very quickly fashion. 2. 背景知识 2.1 Wireless 是什麽? Wireless 是一种让你能远距离连接电脑的新技术. 它使用Wireless发射/接 收(2.4 GHz)卡,其软体界面类似於以太网卡. 每一块Wireless卡拥有全球唯一的 硬体地址. 典型的传输功率为 10-20 mW 直到 100mW(参照标准 IEEE 802.11 和 FCC/CEPT 许可). 2.2 radio cards 的最远传输距离是多少? 无线通讯最重要的一点就是 line of sight clear视野: 你必需能看见另一端的 天线, 两端之间允许存在少许树木. 距离是依据天线(功率放大器)和用法:2 到300米使用全方位天线. 1千米使用定向天线, 2到3千米使用全方位信号放大天 线(200mW), 更远一点的使用parabolic弧形天线. 50到60千米使用弧形或定向信 号放大天线(some Watts). 要知道使用功率放大器不是合法的,因此你可能会违反FCC/CEPT的规定(视所在国 家的情况而定). 2.3 有线网路和无线网路之间的区别是什麽? 设定有线网路比较简单(at least at low level), 设定无线网路非常难,管理, 调试...最典型的是硬体的安装, 软体的设定/调试等等对无线网路来说都是非常 关键的: * 你必需选择使用合适的无线网卡:有许多的产商不同型号的网卡及使用它们 的不同条件. 如果你要建立一个小型的无线网路, 你最好选用兼容IEEE 802.11的无线网卡和一个基点(Access Point). * 有些卡是 PCMCIA卡.所以你要先安装支持PCMCIA的Linux核心. * 你可以用两个运行著的系统来进行测试,第一次的距离近一些, 然後就可以 进行远一点的测试. * 在任何气候下进行测试(典型的下雨天). * 高高兴兴地完成测试. 如果你设定一个转发器(有许多无线网路和无线网卡的Linux机器), 在远距离对 它进行设定会有一些麻烦. 2.4 设定一个无线网路我需要知道些什麽? 设定一个无线网路的几个条件: 软体条件: * 一般的网路知识,包括IP地址, 网路遮罩,路由... 涵盖了Linux NET3-4-HOWTO的所有内容. * 地址解析代理,网桥 proc 文件系统.包括 Proxy-ARP-Subnet, Bridge Mini-Howto and in Linux Kernel Source (2.2.x or 2.4.x) under Documentation/networking/ ip-sysctl.txt) * * 无线网路知识, 包括访问模式(ADHOC, INFRASTRUCTURE and ACCESS POINT), 频道的概念, 户外和户内的定义等等,你可以了解有关於无线网路 的文档: IEEE standard 802.11, CEPT, 等等. 另外的: * 一点设定天线的经验,装备,定向. * Pc 硬体设定的经验及排除无线网卡同其它硬体的冲突. 最後, 拥有一个极佳的运气. *所有这提到的文档都可以在 [7]www.linuxdoc.org 找到. 2.5 我为什麽要设定一个无线网路, 用它来做什麽? 为什麽? 因为你对有线网路不满意. 有了无线网卡,你可以穿过公园,停车场,房屋(要看得见另一端才行) 无线网卡使用的高层协议同以太网卡一样:在无线网路上使用TCP/IP, 但要注意 同Window 的共享软体,因为你使用Linux forward转寄, ip forwarder 不会让广 播信息通过(参考NetBIOS协议). 在这种情况下就要使用WINS服务来支持网路流 览.(参照 Samba 文档). 无线能使你建立一个小型的 LAN/WAN 中心(可以提供Internet接入),可以让任何 人从空中对它进行访问! 想像一下,一个完全由无线网路组成的国家! 想像一下,一个可以将不同国家的人们聚在一起,分享音乐,文件,软体,视屏的网 路. 所有的都可以做到(在一些国家己经做到了).使用无线网卡和无线基点(Access Point),充当转发器的无线Linux机器 (at IP level such as router or, if you want, at data-link level, with bridge driver, see more at [8] Bridge Http Link or [9]Bridge Ftp Link ) 2.6 在HOWTO里都提到了哪些无线网卡? 在HOWTO里我从一般的设定出发(介绍无线网路),我直接使用我了解的无线网卡做 例子.我还有一些诀窍可以让它们提高性能. Wireless网卡列印: * Proxim Symphony - [10]http://www.proxim.com * Webgear AviatorPRO 2.4 (pcmcia support needed) - [11] http://www.webgear.com * Lucent Wavelan I, II, Orinoco - [12]www.lucent.com and [13] www.orinocowirelless.com * Cabletron - [14]http://www.cabletron.com * YDI am930_isa - [15]http://www.ydi.com * Siemens Radio Modem (Dect) - [16]http://www.siemens.com * RadioLan (5 GHZ) - [17]http://www.radiolan.com 一个完整的清单: [18]Jean Tourrilhes Wireless Howto Siemens Radio Modem is not a really 802.11 Wireless card, they are modems that you can attach to serial and they act as modem (at 1800 MHz, so DECT technology). Appendix B describe their use. RadioLan cards work at 5.4GHz in a Windows 9x environment and with a RadioLan Access Point that bridges between Wired and Wireless networks (在我的印象当中没有Linux的驱动). 2.7 它们值多少钱? 上面提到的不太贵:从几百美元至上千美元(Lucent的无线网卡,一个基点(Access Point)外加两个无线网卡,可充当网桥使用). 3. 有关无线连结的资讯. 这里我总结一个最基本的无线网路环境. 3.1 物理层 第一层 ISO/OSI 有三种说明: * FHSS, Frequency Hopping Spread Spectrum * DSSS, Direct Sequence Spread Spectrum * Infrared connections, not covered by this howto 3.2 设定 两种设定: * AdHoc模式(也称独立模式(Adhoc mode) ),每个独立的网路拥有一 个BSS(Basic Service Set 基本服务设定)每个基站有相同的BSS. * Infrastructure mode形组模式,几个使用基点(Access Point)相互通讯的网 路(每个网路都有一个 BSS ), 组成一个服务扩展ESS (Extended Service Set).当中也有漫游功能,如借出一个子站加入最近的基点(Access Point). AdHoc是最简单的方法(and the also the less scalable缺少升级的馀地),能使 许多主机直接进行通讯. 限制性的条件是: 每个主机必需以可见的形式直接加入 到网路当中(at least Ideally, because this problem could be solved at IP level! For more see Par 5.4). Adhoc mode A - - - - - C \ / | \ / | /\ | / \ | / \ B - - - - - D 在形组模式下,你使用基点(Access Point)与其它主机分享网路. Infrastructure mode ESS A - - - | - Access Point - - Access Point - | - - - D B - - - | BSS1 BSS2 | - - - E C - - - | | - - - F 对於B和C来说 D,E,F是不可见. 因为它们使用相同的ESS所以能很好地进行通讯. A , B , C 三个之间也是不可见的. 在一个像似户外和户内将短距离□围和长距离□围区分开的情形. 3.3 兼容性 请注意,全世界有很多的无线网卡,并非每个无线网卡之间都能进行良好的通讯. 为了更好地兼容,最好按下例方法使用: * 相同的设定模式:只使用Adhoc或ESS * 相同的物理层:只使用DSSS 或 all FHSS * 相同的协议:(for example Proxim has its particular proprietary protocol OpenAir that cannot talk with other FHSS cards). 3.4 我该使用Adhoc 还是 Infrastructure? 使用基点(Access Point)是消灭问题的最好方法,但是价格昂贵.理想当中,更集 中的网路你需要使用Infrastructure形组模式. 只有少量主机时选用Adhoc. why to spend much money for few hosts? 要知道多花点钱可以省去不少的麻烦. Anyway be aware that if you spend much money probably all works well while spending less you could have some trouble. 3.5 Linux主机能不能当成基点(Access Point)来使用? 问得好! 最近有一种硬体可以做到: Prism2 你可以在这里了解更详尽的情况: [19]people.ssh.com/jkm/Prism2 4. 工具箱 4.1 硬体条件 你需要一台Linux主机(486 或更好 a Pentium 100+ with 16MB+ ram), 无线网 卡,一个天线(看第二部份), 因为要模拟通讯,所以在另一端也需要这些.(with Win9x or WinNT, if you prefer...), 4.2 软体条件 你需要: * 最近的,稳定的核心(2.2.x) * 如果你买pcmcia卡 最新最稳定的 pcmcia 代码 (pcmcia-cs) * 无线网路驱动程式:如果没有, 你可以在产商的Web站台下载,如果你没有找 到, 可以搜索 [20]Jean Tourrilhes Wireless Howto. 如果还是没有,看来你需要等了,或将Windows 驱动转换成 Linux 驱动. (祝 你好运) 在有了这些之後,你还要重新编译核心, 重新编译pcmcia代码(如果你是用 pcmcia无线网卡的话), 最後重新编译无线网路驱动程式,这是一般的过程, 有些特别的无线网卡只要执行第3步或者第 1 步和第 3 步. 5. 无线网路设定 5.1 基本步骤 当你具备了所有的条件之後,你需要按照以下步骤进行设定: * 核心的底层设定,如I/O端口,中断, DMA ...)完成後,你应当在开机的时候看 到这些, 表示无线网卡被Linux正确识别. * 为无线网卡设定连接层,比如用"rl2cfg"设定Proxim Symphony 无线网卡, 你应当为每个无线网卡设定以让它们能进行正常通讯. * 使用 ifconfig 和 route 更改IP设定. * 找到最佳运行的决窍,解决资源冲突. 这样你的无线网路以经基本运行起来: proxy-arp, icmp echo redirect, bridging, channel change 这些方面还 要做一些细节的设定, 优化网路,防止异常. N.B.: step 1, 2 and 3 correspond to level 1, 2 和 3 基於 ISO/OSI, while step 4 is an addendum to solve situation generated by netmask 255.255.255.255. 事实上32bit网路遮罩违反了 ISO/OSI 标准,因为网路强制使 用相同的地址对不存在的机器和地址进行广播. 有些人可能反对这种观点,但是如果你用 ISO/OSI 标准设定无线网路,会失去很 多个子网路的设定. 每个子网通常丢弃2个IP号(Network and broadcast),并失 去IP分配的灵活性(geographically kind). 你可以在附录中找到有关的描述. You could notice that step 2 is not present in Wired cards 因为那里没 有什麽详细的设定要做. 5.2 底层核心设定 管理机器总会有个问题 : 让核心(or in general)识别你的硬体. 无线网卡更复杂, 因为它们通常是Pcmcia plug, 所以首先得让你的核心识别你 的Pcmcia adapter card , 因此,你可以试著为无线网卡安装特别的硬体驱动程 式. 所以在Pcmcia 设定中你必需: * 安装核心源代码 从 [21]http://www.kernel.org 到/usr/src/linux (see tar and gzip utilities) * 安装Pcmcia源代码 [22]ftp://projects.sourceforge.net/pub/pcmcia-cs 到/usr/src/pcmcia (see tar and gzip utilities) * 设定并重新编译核心:read file README in your linux directory (/usr/src/linux) * 设定并重新编译 Pcmcia 源代码: 在 /usr/src/pcmcia 里使用 configure 和 make. 确定你的驱动程式在那里 另外你还要按指示安装它(usually a tar zxvf driver.tgz under pcmcia dir is sufficient). 然後 "make all" 进行编译最後 "make install". * 完成之後你可以在/etc/pcmcia里找到有用的设定程式(文档). 在非Pcmcia 模式中: * 如果无线网卡的驱动程式是以Linux源代码的形式出现(99%不是), 你必需将 它安装到一个目录当中,编译它. 还要知道挂哪个模组: 使用pcmcia设定你 只要运行pcmcia侍服程式(/etc/rc.d/init.d/pcmcia start for RedHat), 其它的使用"modprobe module_name options".在选项中给出无线硬体的I/O 端口,IRQ和 data-link 设定 (see Par 5.3) * 如果出现资源冲突,可以使用以下工具: + "tail /var/log/messages" 列印日志. + 使用"dmesg"得到更多的资讯. + /proc dir: ioports, devices, irq files and driver specific sub-directories 5.3 数据连接层的设定 那是什麽? 无线网路只需要相互连接,而你只要设定网路参数. 对於无线网路你先要进行连接的设定: * 它属於哪一种无线网路(独立或形组模式) * 使用哪一个频道 * 它属於哪一个子网路(BSSID),它的ESS ID是多少. * 它的连接有无加密,加密的程度. 正如上面那样,许多设定需要调整. 因为无线网路的结构:可能在附近的某一个 人,只要对准天线,使用和你一样的协议和一样的TCP/IP设定就可以看到你传输的 数据包. 加之, 每个子网路之间可能相互产生冲突, 所以这里: * 例如在挂模组的时候这样: "modprobe ray_cs essid='LINUX'" 或者 * 在运行的时候使用设定工具: "rl2cfg eth1 master". 5.4 IP 设定 这是你将要面对的第三个问题.出现当你的网路遂渐扩大的时候. Remember Wireless IP Networking doesn't stress you if you don't stress it! 如果你不犯它,它就不会犯你. 一个简单的构建: 所有的主机之间是相互可见的. A - - - - - C \ / | \ / | /\ | / \ | / \ B - - - - - D 这个设定非常简单,不需要特别的设定(IP层),只要给每个主机分配IP地址,设定 网路遮罩相同就可以了. 一个较为复杂的网路: A不能直接访问B A <- - - - NO\ | TALK\ C \ | B <- - - - A和B只有通过C才能相互访问. 如果网路是形组模式,并且C是基点(Access Point),那麽就没有问题. 在独立模 式(Adhoc mode) 里你也可以设定一个host做为master (I know the term is not so formal!), 其它主机都加入以master为中心的无线网路当中. 所有的连接达到了IP层: A 和 B 的界面与 C 相同,它们都与C进行通讯, 这样, 如果你试著用A ping B, 你将收到许多来自C的ICMP重定向数据包, 因为C告诉A, 它所要求的对象早已经连入网路. 解决方法: type a "echo 0 > /proc/sys/net/ipv4/conf/ethx/send_redirects" ( ethx 是 C 同 A 连接的界 面) to null all that. 另一个问题:该给A和C怎麽分配遮罩? 如果你分配一个遮罩包含A和C,它们将不工 作,因为A不使用闸道(C) 但又以未知的MAC地址来发送 ARP 请求. 你可能想过ARP代理,但是没有用.因为代理ARP只在目标与请求的来源使用不同界 面的时候对来源进行回应: this is not the case!! 所以你要设定一个不大相同的庶罩 (Win9x let it be 255.255.255.254, WinNT at least 255.255.255.248) 并保证A和C拥有不相同的网路地址. Examples: IP(A) = x.y.z.2/31, IP(B) = x.y.z.3/31. This doesn't work cause A asks for B in its network (ARP request) and C doesn't answer cause, for it, A and B belong to the same interface (so, no proxy arp). IP(A) = x.y.z.1/31, IP(B)= x.y.z.2/31. This works cause A ask to C (send reques ts to B with C MAC address) for B. In general with a netmask 255.255.255.254 system works with 2 IP changing only for the final bit. 这都是 TCP/IP 的作用,也是唯一获得最高灵活性的方法. 注意:如果你使用基点(Access Point)(网路使用形组模式)就不会有重定向的问 题, 因为问题都在 data-link level 解决了 (几乎所有的基点(Access Point) 都扮演网桥的角色...). 但是基点(Access Point)很昂贵(在 1000 美元或更多) 既便是使用多个无线网卡加上一台 P133 32MB Ram 来代替基点(Access Point) 还是很划得来的. Internet 接入 A - - - - - C - - Internet \ / | \ / | /\ | / \ | / \ B - - - - - D 它有多种情况: * C 是唯一的Public IP 地址. 只要在无线网路设定private IP 地 址(192.168.x.y for example), 在C上执行 forwarding 和 IP伪装 . A, B 和 D 将 C 作为缺省的闸道. * You have a public netmask visible from Internet and C is your default GW to Internet for the network. You only need to enable forwarding on C, setting up default GW on A, B and D to point to C. 你拥有Internet的一部分网段. C 作为无线网路到Internet的默认闸道. 只要在C上执行 forwarding , A, B 和 D 对准 C. * You have a public netmask visible from Internet and C is not the default GW to Internet. You have 2 possible solutions: Modify your default GW to let it point to C for your network. Symmetrically you have to let C point to default GW to go to Internet. You could, instead, enable proxy arp feature to C (echo 1 > /proc/sys/net/ipv4/conf/ethx/proxy_arp where ethx is the interface towards the default GW) and set your default GW on C to point to the default GW. Proxy arp is a TCP/IP forcing but works well. 有线网路与无线网路的混合 Internet \ \ E \ / \ / Wireless A - - - - - C - - F \ / \ | \ / | \ Wired /\ G | / \ | / \ B - - - - - D 现在 C 加入了2个网路: 左边是有线网路 Wire 右边是无线网路 Wiredless . 加上Internet接入,你总共要在C上装三个网卡. 应该如何分配IP地址,你有两个选择: 1.划分成两个子网路:如 192.168.1.0/24 和 192.168.2.0/24. 这种方法很快但如果你使用Internet IP地址就失去了灵活性. 因为你要丢掉很多的IP. 2. Enable Proxy Arp feature to C for all 2 interfaces. 无线网路 和 有线网路的 网路参数(net address and netmask) 相同, 但是使用 proxy-arp,我可以选择哪一个IP分配给有线和哪一个分配给无线. 现在我们来检查一下第2个方案: 例子:现在你有一个 Internet public 子网路 x.y.z.0/24. 它们的界面是: 1. ifconfig eth0 x.y.z.C netmask 255.255.255.255 (Wired) 2. ifconfig eth1 x.y.z.C netmask 255.255.255.255 (Wireless) 3. ifconfig eth2 x.y.z.C netmask 255.255.255.255 (to Internet) 在eth2上使用静态路由 route add IPGW dev eth2 route add default gw IPGW 这个路由使所有访问Internet的请求发往闸道:像你注意到的那样, 第一,告 诉Linux路由器在哪里,然後让请求发往路由器. 在eth0上使用静态路由 Static routes on eth0: route add x.y.z.A dev eth0 route add x.y.z.B dev eth0 route add x.y.z.D dev eth0 在eth0上使用静态路由 Static routes on eth1: route add x.y.z.E dev eth1 route add x.y.z.F dev eth1 route add x.y.z.G dev eth1 主机E,F 和G 连入无线网路. 注意: 灵活性相当好,但是你要手工设定每一个主机. 6. 实例设定 这里我提供一些设定无线网路的实例(希望有用!),并且用一般的无线网卡进行一 些更复杂的设定. 6.1 General setup info 无线网卡界面类似於以太网卡,所以你要在 /etc/conf.modules 里进行模组的挂 接: * "alias ethx module", ethx 是你要分配给无线网卡的界面并设定模组的名 称. * "options module io=0xAAA irq=I ...", 0xAAA 是无线网卡的I/O地址, I 是 IRQ 等等,还有其它的一些参数. 然後,你可以用ifconfig 和 route 在IP层进行设定. 6.2 Proxim Symphony (普罗西米交响曲) 网路类型: FHSS, 独立模式(Adhoc mode), 使用OpenAir私有协议. 你可以下载设定文档和驱动程式(Linux,Win9X), 它的首页是: [23] http://www.proxim.com 编译驱动程式的源代码: 1. untar it in a empty directory 2. type make for help. 3. 编译模组: make modules_install 安装驱动程式 rlmod.o 和 设定工具 rl2cfg. 3. 要运行驱动程式你只要用ifconfig将界面激活(after modified /etc/conf.modules: s ee Par.6.1.). 使用 rl2cfg 设定数据连接层(for help type man rl2cfg once done c step): "rl2cfg dev ethx sta" 设定为station (Slave) "rl2cfg dev ethx msta" 设定为 master station (Master) "rl2cfg dev ethx alt" 设定为自动模式. 所有的设定都在上面了. 6.3 Webgear Aviator 2.4 and AviatorPro (网路行者, 网路行者加强版) 网路类型: FHSS, 2.4使用独立模式(Adhoc mode), AviatorPro 使用形组模式. 它们的设定比上面的复杂,它们使用Pcmcia接口,需要编译Pcmcia源代码. 首页: [24]http://www.webgear.com 设定: 1.下载pcmcia 源代码, 展开至 /usr/src/pcmcia (see Par 5.2) 2.从http://www.webgear.com 下载驱动程式在/usr/src/pcmcia 目录 用 "tar zxvf driv er.tgz" 解开 3.重新设定 pcmcia (see Par 5.2) 4.按指示将"source ./ray_cs.opts"加入至 /etc/pcmcia/config.opts 文档中 . 5.注意在 /etc/pcmcia/ray_cs.opts 文档中有一行像这样: "module "ray_cs" opts "... ". ngs at data-link level present in "opts"後面是 data-link level的设定. opts的参数: pc_debug=x , where x is the log level. net_type=x, x=0 表示使用独立模式(Adhoc mode) , x=1 表示使用形组模式. essid=x, x is the ESSID 最後用pc_debug > 0 检查设定.你将看到 data-link 的资讯: "network started" 新 Wireless network 建立和 "network joined" 加入新的Wireless network. 6.4 Lucent Wavelan I, II, Orinoco products and Cabletron(朗讯网波,奥里诺科 和 卡布勒森) 网路类型: DSSS, 使用独立模式(Adhoc mode) 和形组模式. 朗讯的产品是最专业化的一种. 首页: [25]http://www.lucent.com [26]http://www.orinoco.net 设定有点像 WebGear: 步骤1,2,3相像. 在 /etc/pcmcia/config.opts当中: 添加 module "wavelan_cs" opts " ..." 表示使用 Lucent Wavelan I 模组 "wavelan2_cs" opts " ...", 表示使用 Lucent Wavelan II 或者 Orinoco. opts的参数: port_type=x, 表示使用独立模式Adhoc(3) 或者 形组模式Infrastructure(1) channel=x, x=频道, 只适用於 AdHoc 独立模式(Adhoc mode) . transmit_rate=x, 固定速率: 用来同Cabletron 协调兼容性. 注意: Ideally,有可能在Linux主机上有2个 Lucent Wavelanx 无线网卡, 一个使用 Adhoc独立模式(Adhoc mode),另一个使用 Infrastructure 形组模式. 但其中可能只有一个能正常工作,因为运行 pcmcia service,两个卡都使用相同的 opts 设 定 (so in Adhoc or Infrastructure mode). 所以我们要创建一个模组(or maybe a user mode program)让它在运行的时候可以改变 data_link 参数:比如 access mode 和Adhoc独立模式(Adhoc mode) 中的 channel 设定! channel 参数通常用来避免两个邻近的 Wireless 发射/接收的冲突. Lucent 的驱动程式也可以用在 Cabletron 上 [27]http://www.cabletron.com 6.5 YDI 网路类型: DSSS, Adhoc独立模式(Adhoc mode) 和 Infrastructure形组模式. YDI 出售非常专业的无线网卡和天线,功率放大器等等. 首页: [28]http://www.ydi.com 设定: 1. 将文档解开至空的目录中. 2. make 进行编译. 3. make install 安装 am930_isa 驱动程式和 wlanctl设定程式. 完成以後, 可以使用wlanctl 手动设定, 也可以采用 scripts/wlan 自动设定. 手工设定: "wlanctl scan ..." 查找存在的 BSSs . "wlanctl netlist" 列印"wlanctl scan ..." 的表单. "wlanctl bsscreate ... ssid" 使用ssid参数设定新的网路. "wlanctl bssjoin bssid" 使用bssid 号 加入网路. "wlanctl authen" and "wlanctl assoc" 认证服务. 7. 关於无线网路的更多资讯 7.1 Wireless Linux 发行版 FlyingLinux 始於 1999年10月 在Teleinformatics KTH 的Telecommunication Systems 实验室旦生. 目的是研究移动IPv4和标准DHCP无线接入. 实验结果: FlyingLinux 环境可以为在2000年3月至5月的 2G1303 计划当中为100个学生和 老师提供无线接入服务. FlyingLinux 是第一个专门针对移动服务的发行版. 它具备了Kerberos 和OpenSSH,使通讯更加安全. FlyingLinux 是开放源代码运动的一部份. KTH的程式开发是在 GPL licence 下 进行的. Wireless Linux 的首页: [29]http://www.flyinglinux.net/ 维护者:Mantainer: Alberto Escudero Email:aep@it.kth.se, 首页 [30] http://www.it.kth.se/~aep 8. 线上资讯 8.1 Open software link * [31]Linux-wlan project * [32]Jean Tourrilhes Wireless Howto 8.2 商业连接 * [33]Fatamorgana Computers * [34]Lucent web site * [35]YDI web site * [36]Siemens web site 9. FAQ - Frequently asked questions Q1:BSSID 和 ESSID 之间有什麽区别, 什麽情况下使用 ESSID? A1:BSSID 是 48 bit 数值,用来对较小 BSS 区域进行标识, 每个主机在这个较 小的区域里进行通讯.(eventually with an Access Point) ESSID 可以让不同 的 BSS 扩展至 Extended Service Set (ESS). 每个BSS有一个基点(Access Point),如果ESSID相同就可以相互通讯. 如果你的网路较大,最少拥有两个基 点(Access Point),那麽你真的需要用到ESSID. Q2:我该买什麽样的基点(Access Point)? A2:比较便宜的: 重要的是基点(Access Point)和无线网卡有相同的特性: 兼容 FHSS 或兼容 DSSS . 注意 Proxim RangeLan2 不能同其它基於 FHSS 标准的网 卡通讯, 因为它使用私有的 OpenAir 协议. Q3: 我应当使用什麽样的 channel 设定? A3: 当你有多个不同的BSS网路(不同的无线产品供应商), 当你遇到冲突时: 在 基点(Access Point)或独立模式(Adhoc mode) 下改变 channel 有助於避免这些 冲突. Q4:为什麽我不能在形组模式的主机里设定 channel? A4:因为 channel 取决於基点(Access Point). 10. Appendix A - Netmask 255.255.255.255, proxy arp and bridging 这里我们可以看到Linux在无线Internet接入方面的优势. Linux 使你能给任意一个界面指定 IP/网路遮罩 255.255.255.255 ,example one in eth0, another in eth1 and so on... This has not particularly side-effects. In addition 你可以通过/proc/sys/net/ipv4/conf/ethx/proxy_arp 设定 proxy arp (ethx是网路界面). "echo 1 > proxy_arp" 开启 ethx上的proxy_arp , "echo 0 > proxy_arp" 关 闭 ethx上的proxy_arp. 什麽是proxy_arp? 如果目标地址通过Linux路由器的另外一个界面接入,快 速proxy arp 使路由器回应这样的 ARP 请求. 例子: 192.168.1.1 ---- 192.168.1.2 Linux路由器 192.168.2.2 ----192.168.2.1 要使这个例子运行你将要用以下两种方式: Without proxy-arp In 192.168.1.1 host to set 192.168.1.2 as gateway In 192.168.2.1 host to set 192.168.2.2 as gateway 从任何一端pinging都会成功. With proxy-arp In 192.168.1.1 host to set 192.168.1.2 as gateway 对IP地址为192.168.2.1 的主机不设置闸道,但在路由器相应的界面上设定相应的 proxy_a rp. 从任何一端pinging都会成功. 在第二个方案中当你从192.168.2.1ping 向192.168.1.1时 Proxy-arp 让 linux 路由器做出正确的回应. 然後,当192.168.2.1发送 ICMP 数据包, Linux 路由器知道将它重定向至 host 192.168.1.1 所以如果你的网路当中有Linux主机提供 IP Forwarders, 你就不必为所有的主 机设置静态路由. 你当然可以用无线网路试验Linux网桥: 1.安装最新最稳定的核心. 2.下载网桥设定程式 [37]http://openrock.net/bridge 或者 [38] ftp://openrock.net/bridge 11. 附录 B - Siemens DECT Radio Modem (西门子--德特无线modem) 西门子的首页 [39]http://www.siemens.com 那是什麽? 这两个组成部分不是真的PC卡, 有点像外设的modem. Host1-serial - RadioModem1 - - - - - RadioModem2 - serial-Host2 我怎麽连接它? 如果你把它们抽像化, 你可以得到下面这种模型: Host1-serial - - NULL MODEM CABLE - - serial-Host2 你可以在两个主机的串行口之间进行无线的连接,大体上有两种设定方法: 1. Linux和Windows, Linux 运行一个daemon侍服程式回应Windows的远程PPP拔入. 2. Linux 和 Linux, 在它们之间使用不同的IP地址进行PPP连接. 第1个方法可以在Linux主机上使用这个简单的 script: "/usr/sbin/pppd -detach lock idle 300 crtscts connect "/usr/sbin/chat -v TIMEOUT 5 AT OK AT OK AT OK AT OK" IPLINUX:IPWINDOWS /dev/ttySx 115200 disconnect "/usr/sbin/chat -v AT OK" ms-dns IPDNS" 那儿: /dev/ttySx 是你的串行端口, IPDNS 是DNS主机的IP地址, IPLINUX 是Linux IP地址 , IPWINDOWS 是 Windows IP地址. 上面的script是让Windows认为Linux上有一个modem. 在Windows 你需要使 用crtscts,并创建拨号连接. speed at 115200 and with a stupid number to call (need by Remote Access but absolutely not used). 在第 2 个方法中你只要在每个主机中运行一个简单的 script: "/usr/sbin/pppd passive local crtscts IPLINUX1:IPLINUX2 /dev/ttySx 115200 noauth persist" where you'll invert IPLINUX1 with IPLINUX2 at the other edge. Note that you can do authentication even Linux-Windows than in Linux-Linux if you want. References 1. http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux 2. mailto:berto@fatamorgana.com 3. http://www.gnu.org/copyleft/gpl.html 4. http://www.lyx.org/ 5. http://www.fatamorgana.com/ 6. http://www.linuxdoc.org/ 7. file://localhost/tmp/zh-sgmltools.22349/www.linuxdoc.org 8. http://openrock.net/bridge 9. ftp://openrock.net/bridge 10. http://www.proxim.com/ 11. http://www.webgear.com/ 12. http://www.lucent.com/ 13. http://www.orinocowireless.com/ 14. http://www.cabletron.com/ 15. http://www.ydi.com/ 16. http://www.siemens.com/ 17. http://www.radiolan.com/ 18. http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux 19. http://people.ssh.com/jkm/Prism2/ 20. http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux 21. http://www.kernel.org/ 22. ftp://projects.sourceforge.net/pub/pcmcia-cs 23. http://www.proxim.com/ 24. http://www.webgear.com/ 25. http://www.lucent.com/ 26. http://www.orinoco.net/ 27. http://www.cabletron.com/ 28. http://www.ydi.com/ 29. http://www.flyinglinux.net/ 30. http://www.it.kth.se/~aep 31. http://www.linux-wlan.org/ 32. http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux 33. http://www.fatamorgana.com/ 34. http://www.lucent.com/ 35. http://www.ydi.com/ 36. http://www.siemens.com/ 37. http://openrock.net/bridge 38. ftp://openrock.net/bridge 39. http://www.siemens.com/