熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

關於LAN通過MODEM上INTERNET的實例

2013-11-13 15:34:16  來源: Oracle 

  目的現在有一個小局域網其中有一個Linux Box上有modem可以撥號上Internet 要求局域網上的所有機器可以通過Linux Box上internet 實施步驟
  
   准備PPP撥號連接參考撥號上網的問題
  
   網絡的基本配置應該完全正常保證局域網內網絡的連接沒有問題
  
   准備內核通常內核沒有編譯進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
  
   重新配置網絡
  a 分配IP偽裝地址撥號上網頂多只有一個有效IP地址所以Linux Box上的網以及其他機器上的網卡上都只能分配偽裝IP地址好在IETF保留了一大堆偽裝地址可一個A類網絡地址 (網絡掩碼 )
   十六個B類網絡地址 (網絡掩碼)
  二百五十六個C類網絡地址 (網絡掩碼)
  按照VLSM(可變長子網掩碼)你可以不太在意網絡掩碼比如可自定義一個/ /等等/肯定是不對的
  配置後的網絡舉例如下
  / +| eth ++ modem+
  +linux box+ppp to isp| ++
  + |
  需要注意的是有很多ISP如col都用到了IP Masquerade技術它們給撥號上網用戶分配的也是偽裝地址所以你要避免你的設置與它們的分配重復 b 設置網關及DNSLinux Box上的缺省網關在ppp建立後應該分配在ppp上參見ppp的配置說明 局域網上其他機器的缺省網關應指向Linux Box如為這時候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_IPV=yes整個文件看起來像這樣 NETWORKING=yes
  FORWARD_IPV=yes
  HOSTNAME=hostyourdomainname
  DOMAINNAME=yourdomainname
  GATEWAYDEV=
  GATEWAY=
  如果用proxy的話沒有必要打開這個選項(當然打開這個選項對proxy沒有大的影響)打開這項可以讓局域網上的其他偽裝地址透明地訪問Internet不利之處正如raner 所說針對具體的應用級協議要有相應的模塊支持已知的支持有Ping(ICMP)HTTPftp NNTPtraceroutetelnetIRCPOP&SMTPVRMLWAISArchieReal Audio PlayerGopher True Speech PlayerInternet Wave PlayerInetrnet PhonePowwowCUSeeMeVDOLive PCanywhereSocket WatchLinux netacct package等用Proxy的最大好處是可以緩存以前浏覽過的內容兩種方式都用上也許是個好注意(如果要計帳收錢可能不太方便)另外這種情況下把GATEWAYDEV/GATEWAY空著好了千萬別設成eth撥號上網後pppd 的defaulteroute選項會自動通知內核把ppp設成缺省網關的
  
   設置IP包轉發策略/規則 只有打開了FORWARD_IPV=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
  提醒一下,設定策略順序很重要。tw.WINgwiT.com自己用man ipfwadm讀詳細信息吧,或去讀HOWTO,理解所以然。
  
  6 設置proxy服務
  可以做proxy的軟件很多,主要有squid,socks,FWTK(TIS Firewall Toolkit)以及apach(也可以做 proxy喲).我覺得socks,FWTK更偏重於防火牆的運用,我一般用支持cache的squid,Redhat5.1就帶 它,無須修改配置,缺省的就可以了(看看/etc/nf, 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 +---------+ h1|+-------+Linux Box+---- 192.168.10.2--+ +Router+--+同步設備+---DDN
  用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
  (~eschenk/l)軟件,我沒用過,無法給出提示信息。可以考慮用webppp(~edward/webppp/)讓用戶自己去撥號。還可以考慮在Linux Box上做個DHCP服務,自己去看man dhcpd吧。 Jim 整理
From:http://tw.wingwit.com/Article/program/Oracle/201311/16948.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.