想請教各位
假如內網 有 A,B,C 三台電腦
三台ARP cache 都清掉.
我再從A電腦去ping B電腦.理論上A電腦會送出一個ARP request 出去 .對吧!
此時B電腦也會收到這個A電腦的arp request,但不會回reply對吧!
哪請問B電腦是否會去把接收到這個A電腦的arp frame 記錄到自己的arp table裡面?
我知道的步驟:
A 以廣播方式送出 ARP request "誰的 IP 是 xx.xxx.xxx.xx"?
區網內所有電腦都會收到, 如果這個 IP 是 B 使用, B 就會回應"我的 MAC 是 xx:xx:xx:xx:xx:xx , 正使用 IP xx.xxx.xxx.xx", 而且在 B 會把 A 的 IP 跟 MAC 記下來.
抱歉我題目有打錯!!
我再從A電腦去ping C電腦.理論上A電腦會送出一個ARP request 出去 .對吧!
這樣子的情況B電腦是否會紀錄A電腦的 ARP 到自己身上去?
systemant提到:
我再從A電腦去ping C電腦.理論上A電腦會送出一個ARP request 出去 .對吧!
這樣子的情況B電腦是否會紀錄A電腦的 ARP 到自己身上去?
以 XP 使用經驗上來看, B 是不會特別去記錄.
經驗上是有多台 XP Client , 去查 NAS 主機, 所以各 Client 的 arp 都有 NAS 跟 Gateway 的 MAC-IP 資料, 而不會有其他台電腦的 MAC-IP (因為我都設定關閉自動搜尋).
但是一般的 XP 或 Windows 會開啟"自動搜尋網芳", 而可能因為這需要連線而有建立.
ARP request是broadcast封包,可是ARP response不是broadcast封包,如果A/B/C不在同一個broadcast domain下時(i.e.在switch的不同port),就算B想sniffer C給A的ARP response也sniffer不到吧....
Q.我再從A電腦去ping C電腦.理論上A電腦會送出一個ARP request 出去 .對吧!
A.A電腦會送出廣播給相同network的其他網卡, 所以B也會收到
Q.這樣子的情況B電腦是否會紀錄A電腦的 ARP 到自己身上去?
A.不會,因為B網卡會判斷這不是要給B網卡的資料 所以會直接丟掉 不需要記錄
直到A電腦PING B電腦 這樣B電腦才會有一份A電腦的MAC紀錄
所以不用想的太複雜
既然B不是A要PING 的主機
那B就不需要保留一份A的MAC地址
jazozazo提到:
Q.這樣子的情況B電腦是否會紀錄A電腦的 ARP 到自己身上去?
A.不會,因為B網卡會判斷這不是要給B網卡的資料 所以會直接丟掉 不需要記錄
ARP request對Ethernet而言是broadcast,在同一個LAN的機器都會收到,除非網卡/driver支援off loading,不然還是會進到OS的TCP/IP stack的,只是因為destination IP不是B,正常而言應該會被TCP/IP stack丟棄的....
小弟不知道 cmwang 要表達什麼 看不太懂
如果樓主還是看不懂的話
乾脆來看看圖片吧
底下這一張 是假設a電腦 ping c電腦
C電腦的ip是 192.168.1.3
因為遮罩相同所以有回應
於是a電腦就有了一筆 c的mac紀錄
因為c電腦有收到來自於 A電腦的icmp封包
所以回應給a電腦 於是c也有了一筆a電腦的mac紀錄
可是b電腦的arp 查詢之後都看不到紀錄
這就是因為b電腦收到來自a的廣播
判斷這不是要給自己的封包資料
所以不需要有任何回應
自然就不會有arp的紀錄需要儲存
jazozazo提到:
小弟不知道 cmwang 要表達什麼 看不太懂
鵝只是要表達基於Ethernet的架構,B是可以看到A給C的ARP request的(Ethernet broadcast),但是正常狀況下OS的IP stack會把這個destination IP不是自己的ARP request丟棄而已(i.e.這個request是被OS丟棄的,而不是被Ethernet丟棄的,如果看系統的統計的話還是可以看到有封包從Ethernet進到OS的)....