萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 作為路由器實作指南:雙網卡設定、Proxy ARP 與子網路劃分

作者:C.W. Huang | 歡迎非商業轉載,商業用途請先知會

核心需求

  1. 編譯核心時啟用 IP Forwarding。
  2. 開機確認兩張網路卡皆被偵測(/proc/net/dev 出現 eth0、eth1)。若未偵測到,在 /etc/lilo.conf 加入:
    append="ether=irq,io-port,eth0 ether=irq,io-port,eth1"
    重跑 lilo;或用 loadlin 時加入相同參數。

網路拓撲範例

外部網路 (140.122.52.0/24)
      |
   +-------+       eth0 (140.122.52.254)      +-------+       eth1 (140.122.52.235)      +-------+
   | Router| --------------------------------- | Linux | --------------------------------- | Subnet|
   +-------+                                   +-------+                                   +-------+
                                                                                              | 140.122.52.232/29
                                                                                          +-------+
                                                                                          | Sun   | 140.122.52.234
                                                                                          +-------+

設定步驟

1. 設定外部介面 (eth0)

用 netconfig 或手動設定 eth0 為 140.122.52.254,連接上層路由器。

2. 規劃子網路並設定內部介面 (eth1)

預估子網 5-6 台機器,從原網段切割 8 個 IP(140.122.52.232/29,netmask 255.255.255.248,broadcast 140.122.52.239)。設定 eth1:

ifconfig eth1 140.122.52.235 netmask 255.255.255.248 broadcast 140.122.52.239
route add -net 140.122.52.232 netmask 255.255.255.248 gw 140.122.52.235 eth1

測試:從子網 telnet 到 Linux 內網 IP,成功即完成一半。

3. 關鍵技巧:eth0 與 eth1 可設定相同 IP

常見迷思以為雙網卡需不同 IP,實則可設為相同(此例皆為 140.122.52.235/254 視情況)。但此時直接對外 telnet 會失敗,因缺少 ARP 代理。

4. 設定 Proxy ARP 讓子網機器直通外部

在 Linux 上為外部機器(如 DOS 140.122.52.236)建立公開 ARP 記錄:

arp -s 140.122.52.236 08:00:77:14:00:00 pub

08:00:77:14:00:00 為 eth0 的 MAC 位址(ifconfig eth0 查詢)。此後子網機器可直接 telnet 到外部,外部也能連入子網。traceroute 會顯示 Linux 路由器在路徑中。

5. 擴充更多主機

對每台子網主機重複 arp -s,或尋找一次性路由整個子網的方法(歡迎補充)。將上述指令放入 /etc/rc.d/rc.inet1 實現開機自動配置。

社群經驗補充

  • 網卡選擇:做路由器避免用兩張相同型號卡(如雙 NE2000 易衝突導致大量傳輸死機),IRQ/I/O/MAC 皆不衝突仍可能不穩。
  • 開機磁片製作:RAWRITE 參數必須用 .gz 壓縮檔,勿自行解壓(核心自解壓需 gzip header)。
  • NFS 安裝:有條件首選 NFS 安裝,從鄰近主機掛載套件源。
  • 套件來源:北大 FTP A 系列不全,推薦西安交大 FTP Slackware 3.0。
  • 核心編譯:必須開啟 IP FORWARDING 並選擇正確網卡驅動,參考精華區文章。
  • 除錯建議:用 PC 做測試機,避免 UNIX 主機 ARP 更新麻煩。
  • 效能:Linux 路由器吞吐量約為無路由器時 70%,但能隔離外部故障影響。
copyright © 萬盛學電腦網 all rights reserved