• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 企業網中用Linux作為路由器

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    現在,因為使用線纜和DSL的Inte .net 連接速度已經超過了T1(傳輸速率可達1.544Mb/s的通訊線路),所以這兩種連接方式已經在商業領域得到了廣泛的應用。對于DSL和線纜連接來說,使用Linux來做路由器,是一個非常經濟的 解決方案 。特別是和一些高端商家(比

        現在,因為使用線纜和DSL的Inte.net連接速度已經超過了T1(傳輸速率可達1.544Mb/s的通訊線路),所以這兩種連接方式已經在商業領域得到了廣泛的應用。對于DSL和線纜連接來說,使用Linux來做路由器,是一個非常經濟的解決方案。特別是和一些高端商家(比如Cisco)的解決方案相比,這種優勢尤為明顯。

        使用Linux路由器作為一個現有的、已經成熟的網絡的一個部分,將會有一個比較特殊的問題。如果我們使用Linux服務器作為DSL或者線纜連接的NAT(網絡地址轉換)服務器,那么我們將可通過Linux路由器對外提供服務。但是,對于大多數已經成熟的企業網絡基礎構架,這種方式卻不一定實用,也不一定可行。比如,如果你的公司在現有的內部HTTP和SMTP服務上已經投入了可觀的資金,或者在一個HTTP服務器上使用了負載平衡以支持電腦商務交易,那么你的公司將不太可能把這些服務移植到Linux服務器上。但是,如果公司想尋找一種經濟的途徑來同時控制一些Internet服務,那么基于Linux的路由器將是一個很好的選擇。

    NAT的使用
        讓我們來看一看公司的DSL/線纜連接只有一個IP地址的情況。我們如何才能把這個只有一個IP地址的流入數據包映射到內部主機呢?事實上,Linux已經把這一功能內建到了自己的內核中,所以我們只需幾個免費的軟件工具就可以來管理這個功能。
        在數據包流出內部網時,我們使用一個叫做IP偽裝的功能來提供NAT解決辦法,它可以讓眾多的內部網主機共享一個IP地址。而對于外部連接來說,似乎所有的得到的信息都來自同一個IP地址。在Linux里,具有NAT功能的組件是一個比較容易搞混的功能,它可以在端口級別執行入站數據包的翻譯(有進也叫反向NAT或者解除偽裝)。Linux路由器會監聽端口80(HTTP服務使用的默認端口)的所有連接請求,并且當檢測到一個連接請求時,它會自動地把數據包轉發到內部網對應的主機上。
        事實上,之所以我們對反向NAT功能不太了解,是因為在主流的Linux發行版本中,一般沒有包括對該功能的配置工具。一個最一般的,也是用得最廣泛的用于管理這一功能的應用程序是“ipmasqadm”。要檢查你是否安裝了這一應用程序,你可以以系統管理員的身份登錄,并在shell提示符下輸入“ipmasqadm”,如果得到“Command not found”的錯誤信息,那么你可以從網上下載最新的RPM安裝包(比如:rpmfind.net就有)。

    典型的網絡配置
        下圖描述的是一個線纜連接中使用Linux作為路由器的典型的網絡結構圖。其中一個以太網端口(eth0)為線纜調制解調器提供了物理連接,另外一個端口(eth1)把路由器連接到LAN。此外,我們還可以使用第三個以太網端口eth2,雖然這不是必需的,但是使用它來提供一個獨立的DMZ (demilitarized zone,即非軍事區)。DMZ是放置公共信息的最佳位置,這樣用戶、潛在用戶和外部訪問者都可以直接獲得他們所需的關于公司的一些信息,而不用通過內網。你公司中的機密的和私人的信息可以安全地存放在內網中,即DMZ的后面。DMZ服務器上的破壞最多只可能造成在你恢復服務器時的一段中斷服務。這樣通過使用獨立的NIC(網卡)把服務器隔離,我們就把他們所有的活動和企業局域網其它的部分分開。一般來說,我們使用DMZ來提供更好的防火墻保護,但是不管有無DMZ,在Linux服務器上的端口轉發都不會受到影響。

     

    圖1 典型的網絡結構圖


    端口轉發的配置
    端口轉發的功能很簡單:與Sendmail、Apache響應SMTP和HTTP信息不同,我們使用“ipmasqadm portfw”來轉發所有的信息。
    在激活端口轉發之前,要確保所有相關的內核都已加載。和端口轉發服務相關的有三個模塊,具體命令是(以root身分執行):

    # insmod ip_masq_autofw.o
    # insmod ip_masq_portfw.o
    # insmod ip_masq_mfw.o

    一旦運行了這些命令,Linux路由器就開始準備處理端口轉發請求。來看下面的指令:

    # ipmasqadm portfw -f

    其中-f選項告訴Linux路由器刷新端口轉發規則表。執行這個命令不是必需的,只不過如果當前的表有多余或者錯誤條目時,這是一個好辦法。
    接下來的一系列命令將建立起Linux路由器轉發信息的規則。語法如下所示:

    # ipmasqadm portfw -a -P PROTO -L LADDR LPORT -R RADDR RPORT [-p PREF]

    其中-a參數指示這條規則應該被加入規則表中;-P PROTO參數告訴Linux路由器轉發到哪一個IP地址(該選項只對TCP和UDP有效);-L參數指示要監控的IP地址和端口(默認的IP地址和Internet網卡端口);-R參數告訴路由器把數據包送到哪兒(IP地址和端口)。
    在上述例子中,要路由流入的SMTP和HTTP的信息,我們使用如下指令:

    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 25 -R 192.168.1.1 25
    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 80 -R 192.168.1.2 80

    第一行設置一個規則,告訴Linux路由器監聽對IP地址為172.16.1.1,端口為25的連接請求。并且把這些請求路由到內部網中IP地址為192.168.1.1的電子郵件服務器的25端口上。同樣,第二條規則告訴路由器監聽端口80的連接請求,并將其路由到IP地址為192.168.1.2的HTTP服務器的端口80上。
    好了,現在所有在端口25和80的連接請求,都會被自動地轉發到應的內部網主機上了。并且,任何時候,我們都可以使用“ipmasqadm portfw -l”命令來查看正在起作用的端口轉發規則:

    prot localaddr rediraddr lport rport pcnt pref
    TCP 172.16.1.1 192.168.1.2 80 80 10 10
    TCP 172.16.1.1 192.168.1.1 25 25 10 10

    -n標記告訴命令不要執行DNS查找IP地址,并且只打印出所指定數量的IP地址。

    非默認端口的連接
    當然,我們也可以使用Linux的端口轉發能力來轉發非默認的端口到默認的端口,反之亦然。比如下例:

    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 11011 -R 192.168.1.1 110
    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 80 -R 192.168.1.2 25044

    以上所示的第一行告訴Linux路由器把端口11011的連接請求,轉發到內部主機192.168.1.1的端口110(POP3端口)。如果內部主機是一個POP3服務器,那么這個命令將可以讓遠程用戶使用非默認的端口連接到他們的POP3信箱。這可以阻止一些網絡黑客試圖使用公共端口入侵POP郵件系統。
    以上所示的第二行把Linux路由器上HTTP服務器標準端口80上的請求轉發到非標準端口25044上。這種情況主要是用于已經在默認端口上運行了Web服務器,但是又想讓其能夠響應其它非默認的端口。

    負載平衡
    如果公司有一個高層的電子商務站點,而同時又運行著一些Web服務器,那么就可以使用ipmasqadm portfw的 -p PREF參數來實現在這些服務器中的負載平衡。
    -p的值雖然被稱為首選項,事實上它實現的是一個計數器的功能。一旦Linux路由器建立起了規則所指定的相應數目的連接,它就會跳到下一個入口。
    比如,現在我們來創建如下所示的端口轉發規則:

    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 80 -R 192.168.1.2 80 -p 5
    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 80 -R 192.168.1.3 80 -p 25
    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 80 -R 192.168.1.4 80 -p 10
    # ipmasqadm portfw -a -P tcp -L 172.16.1.1 80 -R 192.168.1.5 80 -p 30

    上面的指令說明,首先和Linux路由器連接的5個請求,將被送到IP地址為192.18.1.2的HTTP服務器;接下去的25個連接將被送到地址為192.168.1.3的HTTP服務器;接下去的10個連接送到192.168.1.4;下30個連接送到192.168.1.5。一旦30個連接都被送到192.168.1.5以后,整個過程重新開始。
    這個轉發順序的規則說明192.168.1.3 和192.168.1.5兩個服務器處理連接的能力要強于192.168.1.2 和192.168.1.4。通過監測這些機器的服務器負載,網絡管理員就可以調整服務器的映射參數,以使整個站點保持最佳的響應時間。
    總結
    在Linux里,端口轉發是一個強大的功能,但是相關的文檔較少。不過通過以上的學習,我們發現,其實這個功能并不難實現?,F在,你不僅可以把所有流入的Internet信息轉發到內部網中的對應主機上了,而且還可以使你的整個網絡在信息流入和流出時共享一個IP地址,這將可以大增強內部網絡的安全性。
    (作者:中央民族大學科研處 伊利貴)

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>