了解一下 udp
由於udp ( user datagram protocol ) 的傳輸量大及非連接傳輸 ( connectionless)的便捷特性,udp 已被廣泛應用在量大及快速資料存取程式所選定的傳輸協定。其中nfs over udp 即是最常見的一種。雖然udp 有非連接傳輸的便捷特性但也因此在傳輸上不如 tcp ( transmission control protocol ) 來的穩定,尤其是當線路不穩定或是駭客入侵時很容易讓 nfs的 performance 大幅降低甚而癱瘓網路。本文以實例來說明udp traffic 對 nfs performance 的影響及偵測方法。 【相关文章:DNS配置】
前言 【扩展阅读:远程连接(telnet/ftp/rsh/】
【扩展信息:使用规则表达式】 封包切割 ( ip fragmentation )在tcp/ip 中, udp 是架構在ip上層的傳輸協定而 ip層是負責將封包經由網際網路傳至對方主機,ip傳送封包大小是決定於封包的 mtu ( maximum transfer unit ) size。因此udp 如要傳送的資料要大於 mtu size 則必須進行封包的切割(fragmentation) 同時會在每個切割封包 ( fragmented ip ) 註記必要的重組資料後再行傳送。接收端收到這些切割封包時會暫存於 ip input queue, 待切割封包收齊重組後才能上傳到上層的 udp layer。
如下圖所示,ip 的mtu size = 1500,5k 的 udp datagram 會被切割成 4個切割封包傳送。
對網路的performance而言,切割封包的重組 ( ip reassemble ) 是很耗費系統的資源, 尤其是當這些 切割封包量大而次序 ( ip order ) 錯誤或丟失時,切割封包即無法重組。這些殘缺的切割封包會佔據ip input queue的空間直到time out 之後才會被清理丟棄 ( fragments dropped after timeout ) 。如果這些切割封包堆積的速度超越被清理的速度時,ip input queue 的可用空間會相對減少,對網路而言無疑是壓縮了網路入口的孔道, 因此網路performance會大幅降低。一般駭客攻擊的手法就是利用這種特性連續送出大量錯誤而無法重組的切割封包,最後讓ip input queue塞暴以達到癱瘓系統的目的。
如何偵測異常的切割封包 ?1.首先用hp-ux 指令檢查 “fragments dropped after timeout” 的數量。 i.e.
# netstat –p ip
ip: 1226940 total packets received 0 bad header checksums 0 with size smaller than minimum 0 with data size < data length 0 with header length < data size 0 with data length < header length 0 illegal ip a address 0 ip version unsupported 513068 fragments received 0 fragments dropped (dup or out of space) ... 下一页