2005年1月11日

[Linux] Debian on My ThinkPad R40 (5) - 無線網路的設定

為了實驗 Zaurus 與 Debian 間透過無線網路同步,所以試著在我的 R40 的 Debian 系統上建立無線網路 ad-hoc 模式的 NAT 環境 (透過 AP 的話,移動性就降低了)。主要有下列三個目標:
  • 建立檔案層級的同步,Zaurus 上的檔案可以備份到 Debian 上。
  • 建立類似 PALM Desktop 的 Install Tool 工具,進行程式的自動安裝。
  • 在沒有 AP 的情形下,Zaurus 可以透過 Debian 無線上網。
前兩項目標打算利用 wireless + rsync + ipkg 完成,第三項則只要有 ad-hoc 的 NAT 環境就行了。實作的方式依預想該沒有問題,但實際的作法還要嘗試。今天只有完成 Debian 上的無線 ad-hoc NAT 環境。

在我的 R40 上使用的是一張二手非 Intel 非 IBM 的 Mini PCI 無線網卡,基本上我也不清楚是什麼廠家製造。但在 Windows 下找到的型號是 "Toshiba Wireless LAN Mini PCI Card",在 Linux 下也會自行載入 orinoco 的模組而正常驅動。
基本下須手動執行的有下列數項:
  1. 系統未預設安裝 wireless-tools,須先安裝:
    sudo apt-get install wireless-tools

  2. 用 iwconfig 指令查出無線網卡的 interface:
    /sbin/iwconfig

    基本上從輸出的結果很容易就可以判定是何者。我的無線網卡的 interface 是 eth2。

  3. 設定網路環境,編輯 /etc/network/interfaces,加入下列的 logical interface (請參考 Debian 參考手冊 - 網路設定):
    iface mfhsieh-r40 inet static
      address 10.1.1.1
      netmask 255.255.255.0
      network 10.1.1.0
      broadcast 10.1.1.255
      wireless_mode ad-hoc
      wireless_essid XXXXX
      wireless_channel A
      wireless_key restricted s:YYYYYYYYYYYYY
      wireless_power on
      up echo "1" > /proc/sys/net/ipv4/ip_forward
      up iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.2 -j MASQUERADE
      down iptables -t nat -D POSTROUTING -o eth0 -s 10.1.1.2 -j MASQUERADE
      down echo "0" > /proc/sys/net/ipv4/ip_forward

    其中各行的意義如下:
    • iface mfhsieh-r40 inet static: 建立 logical interface "mfhsieh-r40",採靜態的配置。

    • 從 address 到 broadcast 行:即一般的網路設定。因我的 lan 是 192.168.0.0 區段,所以此處選用 10.0.0.0 區段。

    • 從 wireless_mode 到 wireless_power 行:指定採用 ad-hoc 的點對點模式,ESS-ID 為 "XXXXX" (自選命名),選用第 A 個頻道 (1 ~ 11 任選其一),其共用金鑰為 "YYYYYYYYYYYYY" (共 13 個字母),並啟動電源管理模式。

    • up 的兩行:當 logical interface 啟動時,啟動最簡單的 MASQUERADE 防火牆。其中 10.1.1.2 是打算設定在 Zaurus 上的 IP。

    • down 的兩行:當 logical interface 關閉時,關閉原建立的 MASQUERADE 防火牆。

  4. 啟動 logical interface:
    sudo ifup eth2=mfhsieh-r40

    並可用下列指令檢查 eth2 是否正常啟動:
    ifconfig eth2

  5. 再來就是設定 Zaurus 端的網路,都是圖形介面,只要 mode/essid/channel/key 四項都匹配,應該就沒什麼問題。設定完就可以測試 Zaurus 是否可透過 ad-hoc 的 NAT 模式上網了。

  6. 最後是關閉 logical interface:
    sudo ifdown eth2
註:在此是假設原先 /etc/network/interfaces 中即無 eth2 的 physical interface;若有,請自行變化。
其實在 Windows 下也可這樣玩啦!不須要額外的軟體,只要會設定也是可以建立 ad-hoc 的 NAT 環境。雖然 Windows 是圖形介面,可是我常按到頭昏,忘記那個選項該在那裏設定。我覺得在 Debian 下還單純一些,所有的東西在一個檔案中,設定檢查都方便。

在 Windows 下還有幾點令我很困擾,每次明明就設定好了 ad-hoc 的 NAT,第一次總是會連不上,要再搜尋好幾次才能連上;另外如果點對點間接續╱斷開數次,常常連原來的對外網路也掛了。Orz!


沒有留言: