歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 用一個modem帶動整個局域網上internet

用一個modem帶動整個局域網上internet

日期:2017/2/27 14:19:37   编辑:更多Linux
  現在我針對一個具體的情況給出解決的參考方法: 現在有一個小局域網,其中有一個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 <==首先禁止所有轉發 ipfwadm -F -a m -S 192.168.10.0/24 -D 0.0.0.0/0 <==允許子網192.168.10.0到任何地方 查看計帳信息: ipfwadm -A -a -b -S 192.168.10.x ipfwadm -Aln 提醒一下,設定策略順序很重要。自己用man ipfwadm讀詳細信息吧,或去讀HOWTO,理解所以然。 6 設置proxy服務 可以做proxy的軟件很多,主要有squid,socks,FWTK(TIS Firewall Toolkit)以及apach(也可以做 proxy喲).我覺得socks,FWTK更偏重於防火牆的運用,我一般用支持cache的squid,Redhat5.1就帶 它,無須修改配置,缺省的就可以了(看看/etc/squid.conf, http proxy 缺省端口是3128)。客 戶端程序要把proxy指向Linux Box(eth0),各種具體的應用對應到squid的端口上。 7 測試 首先網內的其他機器應可以ping到linux box eth0上。然後撥號上網,在Linux Box上ping到外面去 應該沒有問題,否則去檢查ppp設置。如果設置了FORWARD_IPV4=yes則在其他計算機上也可以ping到 外面去,裝入ftp模塊就可以ftp到外面去(insmod ip_masq_ftp),在/lib/modules/2.x.xx/ipv4下看 看都有那些模塊,http是缺省的;如果你打開了Loadable module support/Kernel module loader,則 內核會自動裝入那些模塊。否則使用支持proxy的軟件如netscape來試試,應該沒有問題。 測試通過後,你可能要考慮把某些配置寫到啟動配置文件中,如把有關ipfwadm的配置寫到 /etc/rc.d/rc.local裡。 8 舉一反三 如果是ISDN終端,配置過程沒什麼兩樣;如果是DDN專線,可以變換如下: 有效IP地址 IP偽裝地址 a.b.c.d ---+ eth0 +---------+ eth1 +------+Linux Box+-----+ +---------+ +------+ +--------+ 192.168.10.2--+ +---+Router+--+同步設備+---DDN +------+ +--------+ ?/tt> ..... ...... 用eth1替換上面的ppp0,道理是一樣的,配置也差不多。如果Linux Box上只有一個網卡,可以用 ip alias的方法來做。 9 關於新內核,如2.1.xxx,有很大的變化:如果你不選上IP Firewall就不能選IP Masquerading, 而且內核firewall的代碼有很大的變化,ipfwadm已經不能工作,要換成ipchains,在freesoft裡 也可以查找得到。 ipchains的用法大致如下: ipchains -F <==清空轉發規則 ipchains -A forward -j MASQ -s 192.168.10.0/24 <==允許192.168.10.0子網去任何地方 ipchains -L <==列出所有規則 ipchains -M <==查看當前的偽裝連接 另外pppd也要升級到2.3.5以上。 10 如果你想要Linux Box按需撥號上網的話,去下載Diald軟件,我沒用過,無法給出提示信息。 可以考慮用webppp讓用戶自己去撥號。 還可以考慮在Linux Box上做個DHCP服務,自己去看man dhcpd吧。 11 其他的工具: connect C Masqdialer Server Windows 95/NT Masqdialer 順便推薦一個工具軟件iptraf,可以來監視/查看很多網絡信息! 架設sniffer/K-Arp-Ski嘛,可以清楚地看到port映射。 還有一個traffic-vis,也用到了libpcap庫。 12 相關文檔: Network Administrator's Guide (現在有人正在翻譯它) FIREWALL-HOWTO (在你的機器上可能已經有了 /usr/doc/HOWTO) Setting Up Ip-Masquerading(最新更新!) 針對2.1.xxx內核在kernel21.Html IP Network Address Translation(NAT) 另外在配置內核的時候多看看它自帶的help!!! 哈哈,看起來一大堆,其實如果對Linux和網絡比較熟悉的話,三下五除二就搞定了!




Copyright © Linux教程網 All Rights Reserved