win7系統(tǒng)下載
當前位置: 首頁 > 網(wǎng)絡(luò)技術(shù)教程 > 詳細頁面

Linux系統(tǒng)內(nèi)核中網(wǎng)絡(luò)參數(shù)的意義及其應(yīng)用

發(fā)布時間:2022-05-24 文章來源:深度系統(tǒng)下載 瀏覽:

網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網(wǎng)絡(luò)、傳感器等。 當前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認為是互聯(lián)網(wǎng)發(fā)展的第三階段。

在Linux中,我們可以根據(jù)不同的需求來調(diào)整/proc/sys/net/ipv4/目錄下的內(nèi)核網(wǎng)絡(luò)參數(shù),通過合理的配置這里內(nèi)核網(wǎng)絡(luò)參數(shù),從而達到提高網(wǎng)絡(luò)的安全性和系統(tǒng)的穩(wěn)定性的目的。因為這方面的文獻比較少,所以我們不可能進行全面的介紹,F(xiàn)在已經(jīng)有l(wèi)inux組織正在從事這方面的文檔的寫作,相信在不久的將來,我們就會看到比較完整的文檔。下面我們就來看一看一些比較常用的內(nèi)核網(wǎng)絡(luò)參數(shù)。

注意:

1. 參數(shù)值帶有速度(rate)的參數(shù)不能在loopback接口上工作。

2. 因為內(nèi)核是以HZ為單位的內(nèi)部時鐘來定義速度的,通常速度為100HZ,所以設(shè)定一個參數(shù)值為100就表示允許1個包/秒,假如為20則允許5個包/秒。

3. 所有內(nèi)核網(wǎng)絡(luò)參數(shù)配置文件位于/proc/sys/net/ipv4/目錄下。

一、icmp相關(guān)內(nèi)核配置參數(shù)

概述:通常我們使用icmp包來探測目的主機上的其它協(xié)議(如tcp和udp)是否可用。比如包含“destination unreachable”信息的icmp包就是最常見的icmp包。

◆1. icmp_destunreach_rate:設(shè)置內(nèi)容為“Destination Unreachable”icmp包的響應(yīng)速率。設(shè)置值應(yīng)為整數(shù)。

應(yīng)用實例:

假設(shè)有A、B兩部主機,首先我們在主機A上執(zhí)行以下ipchains語句:

ipchains -A input -p icmp -j REJECT

這里的REJECT和DENY不同,DENY會丟掉符合條件的包如同沒有接收到該包一樣,而REJECT會在丟掉該包的同時給請求主機發(fā)回一個“Destination Unreachable”的icmp。

然后在主機B上ping主機A,這時候我們會發(fā)現(xiàn)“Destination Unreachable”icmp包的響應(yīng)速度是很及時的。接著我們在主機A上執(zhí)行:

echo "1000" > /proc/sys/net/ipv4/icmp_destunreach_rate

也即每10秒鐘響應(yīng)一個“Destination Unreachable”的icmp包。

這時候再從主機B上ping主機A就會發(fā)現(xiàn)“Destination Unreachable”icmp包的響應(yīng)速度已經(jīng)明顯變慢,我很好奇的測試了一下,發(fā)現(xiàn)剛好是每10秒響應(yīng)一次。

◆2. icmp_echo_ignore_broadcasts:設(shè)置是否響應(yīng)icmp echo請求廣播,設(shè)置值應(yīng)為布爾值,0表示響應(yīng)icmp echo請求廣播,1表示忽略。

注意:windows系統(tǒng)是不響應(yīng)icmp echo請求廣播的。

應(yīng)用實例:

在我的RedHat6.x和RedHat7上該值缺省為0,這樣當有個用ping我的服務(wù)器所在的網(wǎng)段的網(wǎng)絡(luò)地址時,所有的linux服務(wù)器就會響應(yīng),從而也能讓讓該用戶得到我的服務(wù)器的ip地址,可以執(zhí)行

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

來關(guān)閉該功能。從而防止icmp風暴,防止網(wǎng)絡(luò)阻塞。

◆3. icmp_echoreply_rate:設(shè)置系統(tǒng)響應(yīng)icmp echo請求的icmp包的響應(yīng)速度,設(shè)置值為整數(shù)。

應(yīng)用實例:

假設(shè)有A、B兩部主機,首先我們在主機B上ping主機A,可以看到響應(yīng)很正常,然后在主機A上執(zhí)行echo "1000" > /proc/sys/net/ipv4/icmp_echoreply_rate。 也即每10秒鐘響應(yīng)一個icmp echo請求包。然后再ping主機A就可以看到響應(yīng)速度已經(jīng)變成10秒一次。最好合理的調(diào)整該參數(shù)的值來防止icmp風暴。

4. icmp_echo_ignore_all:設(shè)置系統(tǒng)是否忽略所有的icmp echo請求,如果設(shè)置了一個非0值,系統(tǒng)將忽略所有的icmp echo請求。其實這是icmp_echoreply_rate的一種極端情況。參數(shù)值為布爾值,1表示忽略,0表示響應(yīng)。

◆5.  icmp_paramprob_rate:當系統(tǒng)接收到數(shù)據(jù)報的損壞的ip或tcp頭時,就會向源發(fā)出一個包含有該錯誤信息的icmp包。這個參數(shù)就是用來設(shè)置向源發(fā)送這種icmp包的速度。當然,在通常情況下ip或tcp頭出錯是很少見的。參數(shù)值為整數(shù)。

◆6.icmp_timeexceed_rate:數(shù)據(jù)報在網(wǎng)絡(luò)上傳輸時,其生存時間(time to live)字段會不斷減少,當生存時間為0時,正在處理該數(shù)據(jù)報的路由器就會丟棄該數(shù)據(jù)報,同時給源主機發(fā)送一個“time to live exceeded”的icmp包。該參數(shù)就是用來設(shè)置這種icmp包的發(fā)送的速度。當然,這通常用于充當路由器的linux主機。

二、ip相關(guān)內(nèi)核配置參數(shù)

linux內(nèi)核網(wǎng)絡(luò)參數(shù)中關(guān)于ip的配置參數(shù)通常是用來定義或調(diào)整ip包的一些特定的參數(shù),除此之外還定義了系統(tǒng)的一些網(wǎng)絡(luò)特性。

1.ip_default_ttl:設(shè)置從本機發(fā)出的ip包的生存時間,參數(shù)值為整數(shù),范圍為0~128,缺省值為64。在windows系統(tǒng)中,ip 包的生存時間通常為128。如果你的系統(tǒng)經(jīng)常得到“Time to live exceeded”的icmp回應(yīng),可以適當增大該參數(shù)的值,但是也不能過大,因為如果你的路由的環(huán)路的話,就會增加系統(tǒng)報錯的時間。

2.ip_dynaddr:該參數(shù)通常用于使用撥號連接的情況,可以使系統(tǒng)動能夠立即改變ip包的源地址為該ip地址,同時中斷原有的tcp對話而用新地址重新發(fā)出一個syn請求包,開始新的tcp對話。在使用ip欺騙時,該參數(shù)可以立即改變偽裝地址為新的ip地址。該參數(shù)的參數(shù)值可以是:

1:啟用該功能

2:使用冗余模式啟用該功能

0:禁止該功能

應(yīng)用實例:

在使用ipchains配置ip欺騙帶動局域網(wǎng)共享一個ppp連接上網(wǎng)時,有時會出現(xiàn)剛開時連接一個站點連不通,再次刷新又可以連接的情況,這時候就可以設(shè)置該參數(shù)的值為1,從而立即改變偽裝地址為新的ip地址,就可以解決這類問題。命令為:

echo "1" > /proc/sys/net/ipv4/ip_dynaddr

3. ip_forward:可以通過該參數(shù)來啟用包轉(zhuǎn)發(fā)功能,從而使系統(tǒng)充當路由器。參數(shù)值為1時啟用ip轉(zhuǎn)發(fā),為0時禁止ip轉(zhuǎn)發(fā)。注意,我們可以在單網(wǎng)卡或雙網(wǎng)卡的主機上實現(xiàn)ip轉(zhuǎn)發(fā)。

應(yīng)用實例:

假設(shè)我們使用一部裝有雙網(wǎng)卡的linux主機充當防火墻,這時候我們就必須執(zhí)行以下命令來打開ip轉(zhuǎn)發(fā)功能:

echo "1" > /proc/sys/net/ipv4/ip_forward

4. ip_local_port_range:設(shè)置當本地系統(tǒng)向外發(fā)起tcp或udp連接請求時使用的端口范圍。設(shè)置值為兩個整數(shù),缺省為“1024 4999”。

應(yīng)用實例:

echo "1450  6000" > /proc/sys/net/ipv4/ip_local_port_range



網(wǎng)絡(luò)的神奇作用吸引著越來越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術(shù)都需要適時應(yīng)勢,對應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進步的催化劑。