當你具備了所有的條件之後,你需要按照以下步驟進行設定:
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 因為那裡沒有什麼詳細的設定要做.
管理機器總會有個問題 : 讓核心(or in general)識別你的硬體.
無線網卡更複雜, 因為它們通常是Pcmcia plug, 所以首先得讓你的核心識別你的Pcmcia adapter card , 因此,你可以試著為無線網卡安裝特別的硬體驅動程式.
所以在Pcmcia 設定中你必需:
在非Pcmcia 模式中:
那是什麼?
無線網路只需要相互連接,而你只要設定網路參數.
對於無線網路你先要進行連接的設定:
正如上面那樣,許多設定需要調整. 因為無線網路的結構:可能在附近的某一個人,只要對準天線,使用和你一樣的協議和一樣的TCP/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 requests 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)還是很划得來的.
A - - - - - C - - Internet
\ /
| \ / |
/\
| / \ |
/ \
B - - - - - D
它有多種情況:
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分配給有線和哪一個分配給無線.
例子:現在你有一個 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 連入無線網路.
注意: 靈活性相當好,但是你要手工設定每一個主機.