一、ICMP
IP 協議是一種不可靠的協議,無法進行差錯控制。但 IP 協議可以借助其他協議來實現這一功能,如 ICMP。ICMP(Internet Control Messages Protocol, 網間控制報文協議)允許主機或路由器報告差錯情況和提供有關異常情況的報告。
一般來說,ICMP 報文提供針對網絡層的錯誤診斷、擁塞控制、路徑控制和查詢服務四項大的功能。ICMP報文如下:
1.Echo & Echo Reply
我們使用一個 ICMPECHO 數據包來探測主機地址是否存活(當然在主機沒有被配置為過濾
ICMP 形 式 ), 通 過 簡 單 的 發 送 一 個 ICMPECHO(Type 8) 數 據 包 到 目 標 主 機 , 如 果
ICMPECHOReply(ICMPtype0)數據包接受到,說明主機是存活狀態。 如果沒有就可以初步判斷
主機沒有在線或者使用了某些過濾設備過濾了 ICMP 的 REPLY。這種機制就是我們通常所用的 ping
命令來檢測目標主機是否可以 ping 到.回送消息的源地址是回送響應消息的目的地址。若要形成一個回送響應消息,應該將源和目的地址交換,將類型代碼更改為 0,重新計算機校驗碼。
2. 超時報文
如果網關在處理數據報時發現生存周期域為零,此數據報必須拋棄。網關同時必須通過超時
信息通知源主機。如果主機在組裝分段的數據報時因為丟失段未能在規定時間內組裝數據,此數
據報必須拋棄。網關發送超時信息。
3. 目標主機不可達報文
如果在目的域中指定的網絡不可達,如網絡距離為無限遠,網關會向發送源數據的主機發送
目的不可達消息。而且,在一些網絡中,網關有能力決定目的主機是否可達。如果目的地不可達,
它將向發送源數據的主機發送不可達信息。在目的主機,如果 IP 模塊因為指定的協議模塊和進程
端口不可用而不能提交數據報,目的主機將向發送源數據的主機發送不可達信息。
另外一種情況是當數據報必須被分段傳送,而“不可分段”位打開,在這種情況下,網關必
須拋棄此數據報,并向向發送源數據的主機發送不可達信息。
二、ARP
1、ARP地址解析協議
地址解析協議,用于將IP地址解析為mac地址,在cisco路由器上可以使用debug arp查看arp消息
Aretha#debug arp
IP ARP:rcvd req src 172.19.35.2 0002.6779.0f4c, dst 172.21.5.1 Ethernet0
IP ARP:sent req src 172.21.5.1 0013.22af.febd,
dst 172.19.35.2 0002.6779.0f4c Ethernet0
可以使用show arp查看ARP表的內容.Cisco路由器保存Arp表的時間為4小時(14400s)
Martha(config)# interface ethernet 0
Martha(config-if)# arp timeout 1800
Arp表也可以實現靜態綁定
Martha(config)# arp 172.21.5.131 0000.00a4.b74c snap
使用clear arp-cache 可以清空ARP緩存區
2、Proxy-ARP
代理arp即arp欺騙,路由器通過發送代理arp信息,讓主機認為路由器即為目的主機。
通過這種方式,路由器可以轉發數據流,cisco的路由器上,代理arp是默認打開的,可以在接
口上 no ip proxy-arp關閉代理arp
典型的使用代理arp的arp表
C:Documents and SettingsKevin Fang>arp -a
Interface: 192.168.1.111 --- 0x3
Internet Address Physical Address Type
192.168.1.34 00-d0-d0-33-af-cd dynamic
192.168.1.37 00-d0-d0-33-af-cd dynamic
192.168.1.1 00-d0-d0-33-af-cd dynamic
192.168.1.33 00-0a-eb-aa-33-ab dynamic
3、Gratuitous -ARP
主機偶爾會發送一個以自己 ip 作為目的地址的 arp 請求,防止 ip 沖突,但這種 arp 在很多 ip 中都沒有實現
4、R -ARP
反向 arp 可以實現 ip 地址到已知硬件地址的映射,但很大程度上被 BOOTP 和 DHCP 所替代