目的:
現在有一個小局域網,其中有一個Linux Box上有modem可以撥號上Internet, 要求局域網上的所有機器可以通過Linux Box上internet.
實施步驟: 1 准備PPP撥號連接,參考撥號上網的問題。
2 網絡的基本配置應該完全正常,保證局域網內網絡的連接沒有問題。
3 准備內核,通常內核沒有編譯進forward/gateway/masquerade等選項,需要重新 配置並編譯。在內核配置裡加上以下幾項:
Code maturity level option Prompt for development/or ... (允許打開內核裡的某些實驗性代碼選項) Networking options: Network firewalls IP: forward/gatewaying IP: firewalling IP: firewall packet logging IP: masquerading IP: ipautofw masquerading (如果你的應用不在已知偽裝支持之列,打開此項) IP: ICMP masquerading IP: transparent proxy support (可選) IP: always defragment (強烈推薦) IP: accounting Network device support Dummy net driver support
4 重新配置網絡。
a, 分配IP偽裝地址。撥號上網頂多只有一個有效IP地址,所以Linux Box上的網卡
以及其他機器上的網卡上都只能分配偽裝IP地址。好在IETF保留了一大堆偽裝
地址可用:
一個A類網絡地址: 10.0.0.0 (網絡掩碼 255.0.0.0)
十六個B類網絡地址: 172.16.0.0 - 172.31.0.0 (網絡掩碼 255.255.0.0)
二百五十六個C類網絡地址:192.168.0.0 - 192.168.255.0 (網絡掩碼 255.255.255.0)
按照VLSM(可變長子網掩碼),你可以不太在意網絡掩碼,比如可自定義一個10.168.1.0/24、
192.168.1.128/25等等,但192.0.0.0/8肯定是不對的。配置後的網絡舉例如下:
192.168.10.0/24 | 192.168.10.2--+ | eth0 +---------+ modem +--192.168.10.1------+linux box+-------ppp to isp | +---------+ 192.168.10.3--+ | ...... 需要注意的是,有很多ISP如263,169,col都用到了IP Masquerade技術,它們給撥號上網的 用戶分配的也是偽裝地址,所以你要避免你的設置與它們的分配重復。
b, 設置網關及DNS。Linux Box上的缺省網關在ppp建立後應該分配在ppp上,參見ppp的配置說明。 局域網上其他機器的缺省網關應指向Linux Box,如為192.168.10.1。這時候Linux Box相當於 一個簡單的靜態路由器,不過融合了IP Masquerade方式。如果你用Proxy代理服務器而且是用 集線器(hub)簡單組網的話,這一步不是必須的,因為這時由Proxy來轉發數據包,Linux Box不 再需要靜態路由轉發的功能。DNS通常設置為指向ISP的DNS服務器,也可以指向任一個DNS服務 器。如果用Proxy的話,在客戶端可以不設DNS。在Linux Box上配置一個Cache Only的DNS也許 會提升一點點性能。
c, 允許Linux的IP轉發功能,編輯/etc/sysconfig/network文件,設置FORWARD_IPV4=yes。
整個文件看起來像這樣:
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=host.your.domain.name
DOMAINNAME=your.domain.name
GATEWAYDEV=
GATEWAY=
如果用proxy的話,沒有必要打開這個選項(當然打開這個選項對proxy沒有大的影響)。
打開這項可以讓局域網上的其他偽裝地址“透明”地訪問Internet,不利之處正如raner
所說,針對具體的應用級協議要有相應的模塊支持,已知的支持有Ping(ICMP),HTTP,ftp,
NNTP,traceroute,telnet,IRC,POP&SMTP,VRML,WAIS,Archie,Real Audio Player,Gopher,
True Speech Player,Internet Wave Player,Inetrnet Phone,Powwow,CU-SeeMe,VDOLive,
PC-anywhere,Socket Watch,Linux net-acct package等。用Proxy的最大好處是可以緩存
以前浏覽過的內容。兩種方式都用上也許是個好注意(如果要計帳收錢可能不太方便)。
另外,這種情況下把GATEWAYDEV/GATEWAY空著好了,千萬別設成eth0,撥號上網後,pppd
的defaulteroute選項會自動通知內核把ppp設成缺省網關的。
5 設置IP包轉發策略/規則
只有打開了FORWARD_IPV4=yes才有效,如果用proxy則設不設沒有關系,原因嘛前面已經講過。 這時候要用到ipfwadm(ip forward administry)工具,用man ipfwadm看看都有什麼參數, 簡單的應用如下:
ipfwadm -F -p deny