11-IP性能優化配置
本章節下載: 11-IP性能優化配置 (196.22 KB)
在一些特定的網絡環境裏,可以通過調整IP的參數,以使網絡性能達到最佳。IP性能的優化配置包括:
· 配置接口的TCP最大報文段長度
· 配置TCP連接的Path MTU探測功能
· 配置TCP連接的接收和發送緩衝區的大小
· 配置TCP定時器
· 配置ICMP差錯報文發送功能
TCP最大報文段長度(Max Segment Size,MSS)表示TCP連接的對端發往本端的最大TCP報文段的長度,目前作為TCP連接建立時的一個選項來協商:當一個TCP連接建立時,連接的雙方要將MSS作為TCP報文的一個選項通告給對端,對端會記錄下這個MSS值,後續在發送TCP報文時,會限製TCP報文的大小不超過該MSS值。當對端發送的TCP報文的長度小於本端的TCP最大報文段長度時,TCP報文不需要分段;否則,對端需要對TCP報文按照最大報文段長度進行分段處理後再發給本端。
用戶可以通過下麵的命令配置接口的TCP最大報文段長度,配置後該接口接收和發送的TCP報文的大小都不能超過該值。
表1-1 配置接口的TCP最大報文段長度
配置接口的TCP最大報文段長度 |
缺省情況下,TCP最大報文段長度為1460字節 |
· 該配置僅對新建的TCP連接生效,對於配置前已建立的TCP連接不生效。
· 該配置僅對IP報文生效。
RFC 1191中規定的TCP連接的Path MTU探測功能,可以探測TCP路徑上從源端到目的端的最小MTU,其探測機製如下:
(1) TCP源端將發送的TCP數據段的外層IP報文設置DF(不可分片)標記。
(2) 如果TCP路徑上某路由器的出接口MTU值小於該IP報文長度,則會丟棄報文,並給TCP源端發送ICMP差錯報文,報文中會攜帶該出接口MTU值。
(3) TCP源端通過解析該ICMP差錯報文,可知TCP路徑上當前最小的單向MTU值。
(4) 後續TCP源端發送數據段的長度不超過MSS。其中,MSS=最小MTU值-IP頭部長度-TCP頭部長度。
· 當MSS已經達到係統規定的最小的32字節後,如果再次收到減少MSS的ICMP差錯報文,係統將允許該TCP連接發送的報文進行分片。
· 產生ICMP差錯報文的路由器可能不支持RFC 1191,其產生的ICMP差錯報文中的出接口MTU字段值為0,對於這種報文,TCP源端將按照RFC 1191中規定的MTU表獲取比當前路徑MTU更小的值作為計算TCP MSS的基礎。MTU表的內容為(單位為字節):68、296、508、1006、1280、1492、2002、4352、8166、17914、32000、65535(由於係統規定的TCP最小MSS為32,所以對應最小的MTU實際為72字節)。
用戶通過命令行開啟TCP連接的Path MTU探測功能後,新建的TCP連接均會攜帶Path MTU探測屬性,可以通過上述探測機製確定Path MTU,按照數據路徑上的最小MTU組織TCP分段長度,最大限度利用網絡資源,避免IP分片的發生。
Path MTU值可以老化,這樣當Path MTU增大時可以充分利用網絡資源,盡量按照轉發路徑可以容忍的最大報文長度發送數據。Path MTU的老化機製如下:
· 當TCP源端收到ICMP差錯報文後,除了減小Path MTU值,同時會為該Path MTU值啟動老化定時器。
· 當該定時器超時後,係統將按照RFC 1191規定的MTU表依次遞增TCP的MSS值。
· 如果增加一次MSS之後的2分鍾內沒有收到ICMP差錯報文,則繼續遞增,直到MSS增長到對端在TCP三次握手階段通告的MSS值。
表1-2 配置TCP連接的Path MTU探測功能
開啟TCP連接的Path MTU探測功能 |
缺省情況下,TCP連接的Path MTU探測功能處於關閉狀態 |
TCP連接的Path MTU探測功能依賴IP報文的DF標記位設置後觸發ICMP差錯報文,因此需要TCP路徑上的所有設備打開ICMP差錯報文發送功能(ip unreachables enable),以確保ICMP差錯報文可以發送到TCP源端。
表1-3 配置TCP連接的接收和發送緩衝區大小
配置TCP連接的接收和發送緩衝區的大小 |
缺省情況下,TCP連接的接收和發送緩衝區大小為8KB |
可以配置的TCP定時器包括:
· synwait定時器:當發送SYN報文時,TCP啟動synwait定時器,如果synwait超時前未收到回應報文,則TCP連接建立不成功。
· finwait定時器:當TCP的連接狀態為FIN_WAIT_2時,啟動finwait定時器,如果在定時器超時前沒有收到報文,則TCP連接終止;如果收到FIN報文,則TCP連接狀態變為TIME_WAIT狀態;如果收到非FIN報文,則從收到的最後一個非FIN報文開始重新計時,在超時後中止連接。
表1-4 配置TCP定時器
配置TCP的synwait定時器超時時間 |
缺省情況下,synwait定時器超時時間為75秒 |
|
配置TCP的finwait定時器超時時間 |
缺省情況下,finwait定時器超時時間為675秒 |
finwait定時器的實際超時時間由如下公式決定:finwait定時器的實際超時時間=(配置的finwait定時器超時時間-75)+配置的synwait定時器超時時間。
發送差錯報文是ICMP(Internet Control Message Protocol,互聯網控製消息協議)的主要功能之一。差錯報文通常被網絡層或傳輸層協議用來在異常情況發生時通知相應設備,從而便於進行控製管理。
重定向報文、超時報文、目的不可達報文是ICMP差錯報文中的三種。下麵分別介紹這三種差錯報文發送的條件及作用。
(1) ICMP重定向報文發送功能
主機啟動時,它的路由表中可能隻有一條到缺省網關的缺省路由。當滿足一定的條件時,缺省網關會向源主機發送ICMP重定向報文,通知主機重新選擇正確的下一跳進行後續報文的發送。
滿足下列條件時,設備會發送ICMP重定向報文:
· 被選擇的路由本身沒有被ICMP重定向報文創建或修改過;
ICMP重定向報文發送功能可以簡化主機的管理,使具有很少選路信息的主機逐漸建立較完善的路由表,從而找到最佳路由。
(2) ICMP超時報文發送功能
ICMP超時報文發送功能是在設備收到IP數據報文後,如果發生超時差錯,則將報文丟棄並給源端發送ICMP超時差錯報文。
設備在滿足下列條件時會發送ICMP超時報文:
· 設備收到IP數據報文後,如果報文的目的地不是本地且報文的TTL字段是1,則發送“TTL超時”ICMP差錯報文;
· 設備收到目的地址為本地的IP數據報文的第一個分片後,啟動定時器,如果所有分片報文到達之前定時器超時,則會發送“重組超時”ICMP差錯報文。
(3) ICMP目的不可達報文發送功能
ICMP目的不可達報文發送功能是在設備收到IP數據報文後,如果發生目的不可達的差錯,則將報文丟棄並給源端發送ICMP目的不可達差錯報文。
· 設備在轉發報文時,如果在路由表中沒有找到對應的轉發路由,且路由表中沒有缺省路由,則給源端發送“網絡不可達”ICMP差錯報文;
· 設備收到目的地址為本地的數據報文時,如果設備不支持數據報文采用的傳輸層協議,則給源端發送“協議不可達”ICMP差錯報文;
· 設備收到目的地址為本地、傳輸層協議為UDP的數據報文時,如果報文的端口號與正在使用的進程不匹配,則給源端發送“端口不可達”ICMP差錯報文;
· 源端如果采用“嚴格的源路由選擇”發送報文,當中間設備發現源路由所指定的下一個設備不在其直接連接的網絡上,則給源端發送“源站路由失敗”的ICMP差錯報文;
· 設備在轉發報文時,如果轉發接口的MTU小於報文的長度,但報文被設置了不可分片,則給源端發送“需要進行分片但設置了不可分片比特”ICMP差錯報文。
ICMP差錯報文的發送雖然方便了網絡的控製管理,但也存在一定的弊端:
· 由於發送大量的ICMP報文,增大了網絡流量。
· 如果設備接收到大量需要發送ICMP差錯報文的惡意攻擊報文,設備會因為處理大量該類報文而導致性能降低。
· 由於重定向功能會在主機的路由表中增加主機路由,當增加的主機路由很多時,會降低主機性能。
· 由於ICMP目的不可達報文傳遞給用戶進程的信息為不可達信息,如果有用戶惡意攻擊,可能會影響終端用戶的正常使用。
為了避免上述現象發生,可以關閉設備的ICMP差錯報文發送功能,從而減少網絡流量、防止遭到惡意攻擊。
表1-5 配置ICMP差錯報文發送功能
開啟ICMP重定向報文發送功能 |
缺省情況下,ICMP重定向報文發送功能處於關閉狀態 |
|
開啟ICMP超時報文發送功能 |
缺省情況下,ICMP超時報文發送功能處於關閉狀態 |
|
開啟ICMP目的不可達報文發送功能 |
缺省情況下,ICMP目的不可達報文發送功能處於關閉狀態 |
關閉ICMP超時報文發送功能後,設備不會再發送“TTL超時”ICMP差錯報文,但“重組超時”ICMP差錯報文仍會正常發送。
為了避免每個業務模塊(如:IPSec、NAT和防火牆)單獨處理後片先到(報文分片後)這種情況而導致複雜度過高,設備需要收到IP報文後就對分片報文進行虛擬分片重組。IP虛擬分片重組功能可以對分片報文進行檢驗、排序和緩存,保證後續業務模塊處理的都是順序正確的分片報文。
同時,IP虛擬分片重組功能還可以對下麵幾種分片攻擊進行檢測。如果檢測到分片攻擊,則設備會丟棄收到的分片報文,從而提高了設備的安全性。
· Tiny Fragment攻擊:如果設備收到分片報文的首片長度非常小,並且傳輸層協議(如:TCP、UDP)頭字段放在第二個分片中,則認為是受到了Tiny Fragment攻擊;
· Overlapping Fragment攻擊:如果設備收到了完全相同的分片報文,或者收到的分片報文與其前一分片或後一分片出現重疊時,則認為是受到了Overlapping Fragment攻擊;
· Fragment-flood攻擊:如果設備收到的分片報文個數超過了指定的隊列允許的最大分片報文個數或者設備上創建的分片隊列個數超過了指定的最大分片隊列個數,則認為是受到了Fragment-flood攻擊。
表1-6 配置IP虛擬分片重組功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能IP虛擬分片重組功能 |
ip virtual-reassembly [ drop-fragments | max-fragments number | max-reassemblies number | timeout seconds ] * |
必選 缺省情況下,關閉IP虛擬分片重組功能 |
· 隻能在報文的入接口配置IP虛擬分片重組特性。
· 不支持負載分擔,即不支持同一個IP報文的不同分片從不同的接口到達。
· 當在AC上需要同時使用NAT和IPsec時,請先開啟IP虛擬分片重組功能。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置IP性能後的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令清除IP、TCP和UDP的流量統計信息。
表1-7 IP性能優化顯示和維護
顯示TCP連接的流量統計信息 |
display tcp statistics [ | { begin | exclude | include } regular-expression ] |
顯示UDP流量統計信息 |
display udp statistics [ | { begin | exclude | include } regular-expression ] |
顯示IP報文統計信息 |
display ip statistics [ | { begin | exclude | include } regular-expression ] |
顯示ICMP流量統計信息 |
display icmp statistics [ | { begin | exclude | include } regular-expression ] |
顯示接口上的分片信息 |
display ip virtual-reassembly [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
清除IP報文統計信息 |
|
清除TCP連接的流量統計信息 |
|
清除UDP流量統計信息 |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!