探討交換機端口的另外一端
公司的UTP接入點遠遠多于接入層交換機的端口,而員工基于某種原因經常調整位置,而這就讓我們不得不經常在交換機上換端口來滿足他們的需求,而基于公司的policy未使用的端口必須關閉。
這使得我必須清晰得了解各個端口的使用情況,我該如何做呢?
首先,我想要是可以在交換機上看到各個端口所連接主機的IP就好了,不過大家知道,交換機是沒這功能的,但是可以看到對端口對應的MAC地址,不過要是在該端口活動的情況下。單純的用show mac add雖然也可以看到結果,但是也會有許多不必要的信息,這里可以用管道命令(這個我找了好久才找到的!!)
show mac add | include Fa include是命令的關鍵次,而Fa是你要在結果中篩選的關鍵詞,它是要區分大小寫的,字符嘛。
這就可以顯示出端口與MAC的關系。
而如何找到MAC與IP,主機名之間的關系呢?
首先想到的就是ARP協議,但是如何使用呢?我使用批處理搞定的。
原理是先用ping 命令ping 目的IP,讓其在本機的緩存中有arp的記錄,然后在用ARP命令顯示出IP 與MAC的對應關系。(在用ARP之前若本機與目的主機之間無通信,將不會有該記錄。)
將輸出結果重定向到文本中,但是有個問題,bat中如何實現循環呢?(這里想到了C語言中的for 和變量,這個知識點給了我思路。)這就用來set 和 goto 語句。
cd \ set a=1 :begin ping *.*.*.%A% arp -a *.*.*.%A% |findstr "dynamic ARP" >> mac-ip.log set a=%a%+1 goto begin
這段命令只能找出同一網段的主機的MAC,若有多個網段,你知道該如何辦了吧。
別看這一小段代碼,我研究了好久呢,之前對DOS很是不屑一顧,現在發現腳本是個好東西的時候又離不開它了,(不過我發現很多東西都是相通的,C語言真是個好東西,我是一直是它的忠實粉絲,因為它給了我很多計算機方面的思想,在我看來是網絡管理員的三寶之一啊)。
以上這種方法基本是不會用到的,除非在沒有DHCP的情況下。可是我們有啊,在幾天之后我想到了這個問題,DHCP直接就列出了IP與MAC的對應,而且可以導出列表,我當時那個郁悶啊!
主機名與IP 的對應我就撿便宜了,SEPM(Symantec Endpoint Protection Manager)上直接有.
獲得了這些信息之后,就可把它們聯系起來了,我是在excel中搞定這事的(不怕你笑話,這個我又搞了好久,都被同事鄙視了),主要用了text to columns(這個對知道的人來說不值一提)和VLOOKUP 函數。終于把二者聯系起來了。