歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

使用 iptables 設定使用 NAT 分享網絡頻寬

  作者: kenduest (小州)   Linux 上使用 IP-Masquerade 所謂的 IP 儰裝以便於達成該功能。     Linux 上的 IPMASQ 因為 kernel 一些核心功能有調整過,所以相關的設定工具   因為不同的核心版本所以不同.     kernel 2.0.x 時代,是使用 ipfwadm 程序。(這個說法不算是完全正確)     kernel 2.1.x/2.2.x 時代,則是使用 ipchains 程序     kernel 2.3.x/2.4.x 時代,使用 netfilter 過濾機制, 是使用   iptables 程序。     演進來看,目前 kernel 2.4 配合使用 netfilter 核心過濾機制,   可以達到的功能相當棒.... 那 netfilter 提供那些機制呢?   比方:     1. 傳統 ipchains 的任何功能(基本來源與目的封包過濾、導向、偽裝)   2. 提供 Source NAT 與 Destination NAT 的功能   3. 可以針對特定使用者、群組、PID 等限制網絡連結的過濾存取   4. 可以設定封包在 Routing Table 進出前時先預先處理   5. 提供可以讓 UserSpace 的程序處理 filter 部分。   6. 可以針對外面自動建立、與現有聯機有關這類聯機過濾處理...   7. 可以針對 Mac 卡號處理。     ipmasq 的文件,那邊可以閱讀呢? linux 本身提供的 howto 很足夠了...     使用 ipfwadm/ipchains 等程序的 kernel 環境,可以參考:     http://www.linux.org.tw/CLDP/IP-Masquerade-HOWTO.Html     不過該版文件中文翻譯已經太久沒有更新了,建議找原文的   IP-Masquerade-HOWTO 文件。那邊找呢?可以上這裡找找:     http://www.linuxdoc.org     裡面提到了包含 port forward 等相關重要的信息。比方   ipmasqadm 等程序的使用。     若是您目前使用 kernel 2.3/2.4,可以參考這給篇中譯文:     http://www.linux.org.tw/CLDP/NAT-HOWTO.html     http://www.linux.org.tw/CLDP/Packet...ring-HOWTO.html     相同的,原文部份,上 http://www.linuxdoc.org 也有喔..     當然,若是您的 linux dist 版本是最近的,那系統安裝好的   HOWTO 文件應該也可以找到..     ok.. 若是您目前要使用 nat 功能的話,首先就是確定您的核心是支持   linux firewall 與 ip masquerade 功能... 不過目前許多 Linux   Distribution 都已經把 IP Masquerade 支持編入到 kernel 內了,   所以重編 kernel 的部份可以略過....     當然啦,目前 kernel 2.4.0 正式 release 出沒有多久,所以若是   您打算使用 netfilter 提供的一些先進的機制,那您需要先更新   核心到 2.4,編譯核心時要選擇把 netfilter 提供的一些功能打開..   (可以選擇編入核心 或者是編譯成為 module)     這裡環境,假設:     對外 internet 連結的 ip 是: 210.1.1.1   對內的部份,使用 192.168.1.1     當然,您需要兩張網絡卡,一張就是設定 210.1.1.1,另外一張   就是設定 192.168.1.1 (netmask: 255.255.255.0)     另外提到,有人會說到也許可以使用 ip aliases 達到一張網絡卡   就可以有兩個 ip .. 當然,這是可行的.. 不過弟不建議使用在   nat 的環境下.. 一者是因為一般 nat 多半充當 firewall,而   若是使用 ip aliases 後對外與對內的封包都跑在同一個 interface   上,那就失去封包過濾功能了... 而不同區段的封包跑在一起,網絡   效能也是會變差的...     OK.. 目前要激活 nat/ipmasq 功能的話,首先就是只要 Linux 主機把   IP Forwarding 打開 (ip 轉送),並使用 ipchains/iptables 等這類程序   設定好後,Client 端就可以透過 Linux 這台 gateway 主機的協助而上網了。     kernel 2.2.x :     echo "1" > /proc/sys/net/ipv4/ip_forward   ipchains -P forward DENY   ipchains -A forward -i eth0 -j MASQ -s 192.168.1.0/24   ipchains -M -S 86400 86400 360



Copyright © Linux教程網 All Rights Reserved