C2960S tftp造成的ARP問題

2021-09-20 17:06:18 字數 1593 閱讀 6137

環境:

1.管理主機:win7(ip:192.168.90.24/24)

2.交換機:10.108.0.5/24 型號: c2960s (sw_ver:15.0(2)se6)

現象:

某天登陸交換機除錯,完成後儲存配置到本機tftp,繼續一些其他操作後,突然和交換機連線斷開,本機再也無法ping通此交換機。

處理過程:

事出突然,首先檢查內部網路,發現僅本機無法訪問此交換機,分別做如下測試:

1. 本機訪問閘道器,正常;訪問內部其他網段,正常。

2. 本機訪問交換機同網段裝置,正常

3. 本機訪問交換機ip,超時,異常

4. 其他主機訪問此交換機,正常

看來問題是在本機和交換機之間,首先對本機進行處理:

1. 重啟電腦,嘗試訪問,異常

2. 刪除本機相關無用軟體,嘗試訪問,異常

3. 關閉本機防火牆,嘗試訪問, 異常

4. 清理本機程序,嘗試訪問,異常

5. 本機執行ipconfig /flushdns    arp -d ,故障依舊

到這裡初步懷疑:本機之前的某個操作,觸發了交換機的某種安全機制,導致本機到交換機的連線全部被拒絕。

登入交換機進行排查:

1.檢視交換arp快取,如下:

從上圖可以明顯看出,交換已經有了管理主機的ip-mac記錄,理論上應該是能夠通的才對(這裡掉進坑里了) 。網上搜尋了半天,也木有找到類似情況的介紹,折騰了一天還是沒啥進度。

實在沒轍了,手動清理了交換arp表,突然管理主機就可以訪問了。

難道問題就是arp這裡??

為了復現故障,嘗試在管理主機重新執行操作,登入、備份配置tftp,繼續操作,幾分鐘後突然掉線。換主機登入交換,刪除arp記錄,再次恢復。

那麼到底是哪乙個操作造成arp記錄的??

多次測試後發現,只要執行了備份配置到tftp,tftp所在的伺服器就無法訪問此交換機,同時交換機本地會生成tftp伺服器的arp專案。

原因分析:

管理主機(90.24/24)和交換機(0.5/24)處於兩個不同的網路中,管理主機telnet訪問交換機時,資料通過閘道器傳遞給交換機,交換機也通過閘道器回傳資料。但是在執行copy running tftp過後,交換機本地新增了arp快取,記錄了管理主機的ip-mac對應關係。導致交換機回傳資料時,直接從arp表抓取mac位址封包傳遞,資料不經過閘道器,僅僅在本網段傳送,導致管理主機和交換機異常斷開,且只要使用這個ip的主機,都不能和交換機通訊。

這個應該是交換機ios的乙個bug,在網上找到乙個類似的情況,

解決辦法:

1.公升級ios版本到se7以上

2.執行no ip arp gleaning tftp /udp

yab109

C語言中的malloc和free造成記憶體洩露?

首先,說一下我對記憶體洩露的理解,記憶體洩露是指 程式中一塊不再使用的記憶體沒有被釋放,造成記憶體保持占用狀態,使作業系統不能將記憶體分配給其它的程式 程序 在c語言,用的最多的管理記憶體的函式莫過於malloc和free了,下面我用vc6.0做了乙個小測試,原始碼如下 然後,使用vc6.0來除錯這...

C 中沒有使用 引用 造成的問題

先上 include using namespace std include class person person add person p intmain 寫這段 的目的是為了學習this指標。this指標可已返回物件本身。所以 p2.add p1 add p1 add p1 語句可以實現p2體...

如何避免c 中using語句造成的名稱衝突

如何避免c 中using語句造成的名稱衝突 使用如 using namespace std 的using 語句確實很簡便,但是這將該命名空間的所有名稱都呼叫出來了,這就增大了名稱衝突的可能性。所以有些程式設計師建議在標頭檔案中不要使用using 語句,執行檔案可以酌情使用,並建議使用using st...