เพื่อน ๆ ครับ ในบางครั้งเคยมั้ยครับที่เพื่อน ๆ ต้องการหาพอร์ตที่เครื่องผู้ใช้เชื่อมต่ออยู่ โดยเราอาจจะทราบแต่เพียงชื่อเครื่องหรือหมายเลข IP Address ของเครื่องเท่านั้น แต่ไม่รู้ว่าไอ้เครื่องที่ว่านี้ เชื่อมต่ออยู่กับสวิตซ์ตัวไหนและบนพอร์ตไหนกันแน่ ซึ่งถ้าเป็นเครื่อข่ายที่มีขนาดเล็ก ๆ ก็คงไม่ยากเท่าไร(แต่ก็สามารถใช้วิธีนี้ได้เหมือนกัน) แต่ถ้าเป็นเครือข่ายที่มีขนาดใหญ่แล้วล่ะก็ งานเข้ากันเลยทีเดียวครับ แล้วทีนี้จะทำยังไงกันดีล่ะครับ
อันดับแรกก็ต้องรู้ว่าเครื่องที่ต้องการนั้นมีค่า Mac Address เป็นอะไร ซึ่งอาจจะใช้วิธีในการดูจากเครื่องที่ต้องการโดยตรงเลยก็ได้ สำหรับผม ถ้าเป็นเมื่อก่อน ผมรู้แค่ IP Address ของเครื่องนั้น ก็คงจะใช้วิธี show arp บน Switch Layer 3 ที่เป็น Gateway ของเครื่องที่ต้องการ เพื่อจะได้ทราบค่า Mac Address ของเครื่องที่ว่า
จากนั้นเมื่อรู้ว่า Mac Address ของเครื่องนั้นเป็นอะไรแล้วก็คงทำการ remote ไปบนสวิตซ์ที่มีการใช้งาน Vlan เดียวกันกับเครื่องปลายทางที่ต้องการ แล้วก็ใช้คำสั่ง show mac address-table เพื่อดูว่า Mac Address ของเครื่องที่ต้องการนั้นเชื่อมต่ออยู่กับพอร์ตไหน ถ้าโชคดีอยู่บนสวิตซ์ตัวนี้พอดี ก็สบายไปครับ แต่ถ้าพบว่า Mac Address ของเครื่องที่ต้องการดันไปอยู่บนพอร์ตที่เชื่อมต่อไปยังสวิตซ์ตัวอื่น ก็ต้องทำการ remote ไปยังสวิตซ์ตัวนั้น ๆ ต่อไปครับ และถ้ายังไม่เจอหรือพบว่า Mac Address นั้นเชื่อมต่อกับสวิตซ์ตัวอื่น ๆ อีกที ก็ต้อง Remote ไปยังสวิตซ์ตัวอื่น ๆ ต่อไปเรื่อย ๆ ครับ จนกว่าจะพบว่าค่า Mac Address ที่ว่าเชื่อมต่ออยู่กับ Access Port พอร์ตใดพอร์ตหนึ่งบนเครือข่ายของเราครับ...
เฮ้อ... เป็นไงครับ ฟังดูยุ่งยากใช่มั้ยครับ ในวันนี้ผมจะแนะนำวิธีที่จะทำให้ชีวิตของเพื่อน ๆ ง่ายขึ้นอีกเยอะเลยครับ ติดตามได้ในบทความนี้นะครับ
วิธีการที่จะแนะนำในวันนี้ สำหรับบางคนอาจจะไม่ใช่วิธีการใหม่ซะทีเดียวนะครับ เพราะว่ามันมีมาตั้งแต่ Catalyst Software Release 12.1(14)EA1 แล้วล่ะครับ ซึ่งผมก็เชื่อว่าคงมีเพื่อน ๆ หลาย ๆ คนเคยใช้งานมากันแล้วบ้างใช่มั้ยครับ เอาเป็นว่าสำหรับคนที่ยังไม่เคยใช้งาน ก็ลองติดตามดูนะครับ
สำหรับวิธีการที่ผมจะแนะนำในวันนี้ ก็คือ การใช้คำสั่ง "traceroute mac" ครับ ซึ่งเป็นคำสั่งที่ใช้ในการค้นหาเส้นทางบน Layer 2 ที่แพ็กเก็ตใช้ในการติดต่อสื่อสารระหว่างเครื่องต้นทาง ไปยังเครื่องปลายทางครับ ไม่ขอพูดมากดีกว่า ยังไงลองดูตัวอย่างการใช้งานกันเลยนะครับ
ในการใช้งาน ถ้าบนเครือข่ายของเพื่อน ๆ มีอุปกรณ์ Cisco Catalyst Switch ในระดับ Layer 3 ที่ใช้เป็น Gateway ของเครื่องนั้น ๆ อยู่ด้วยล่ะก็ ง่ายเลยล่ะครับทีนี้ เพียงแค่เพื่อน ๆ ทราบถึงหมายเลย IP Address ของเครื่องที่ต้องการ และขอให้เพื่อน ๆ หาหมายเลข IP Address ของเครื่องใดก็ได้อีกเครื่องหนึ่งใน Vlan เดียวกัน (เพราะว่าในการใช้คำสั่ง traceroute mac จะต้องมีการระบุต้นทางและปลายทางครับ) เพื่อน ๆ ก็สามารถที่จะทราบถึงพอร์ตที่เครื่องผู้ใช้ที่ต้องการเชื่อมต่ออยู่ได้ทันทีเลยครับ โดยใส่ keyword ว่า ip ตามหลังคำสั่ง “traceroute mac” ไปด้วยครับ
ตัวอย่าง
Dist_SW_L3#traceroute mac ip 192.168.0.151 192.168.0.141
Translating IP to mac .....
192.168.0.151 => 0025.64d2.a238
192.168.0.141 => 0025.64d2.5625
Source 0025.64d2.a238 found on Access_SW_55
1 Access_SW_55 (172.16.1.68) : Gi0/26 => Gi0/47
2 Dist_SW_L3 (192.168.0.1) : Gi1/1 => Gi1/5
3 Access_SW_66 (172.16.1.80) : Gi0/47 => Gi0/18
Destination 0025.64d2.5625 found on Access_SW_66
Layer 2 trace completed
เพื่อน ๆ เห็นมั้ยครับ สมมุติว่าผมทราบเพียงแค่ว่า เครื่องที่ผมต้องการค้นหานั้นมีหมายเลข IP Address เป็น 192.168.0.151 ทีนี้ผมก็หา IP Address อีกหมายเลขนึง (ที่มีการใช้งานอยู่ในขณะนั้น) ในที่นี้ผมใช้ 192.168.0.141 ครับ ซึ่งเพื่อน ๆ จะเห็นว่า เครื่องโฮตส์ที่มี IP Address เป็น 192.168.0.151 นั้น อยู่บนพอร์ต Gi0/26 ของสวิตซ์ที่ชื่อว่า Access_SW_55 และเครื่องโฮตส์ที่มี IP Address เป็น 192.168.0.141 นั้น อยู่บนพอร์ต Gi0/18 ของสวิตซ์ที่ชื่อว่า Access_SW_66 ครับ อีกทั้งยังเห็นเส้นทางที่เครื่องทั้งสองใช้ในการติดต่อสื่อสารกันได้อีกด้วยนะครับ
และถ้าเพื่อน ๆ ต้องการทราบข้อมูลที่ละเอียดมากกว่านี้ ก็สามารถใช้ keyword "detail" ตามหลังคำสั่ง "traceroute mac ip <source mac> <destination mac>" ได้ครับ
ตัวอย่าง
Dist_SW_L3#traceroute mac ip 192.168.0.151 192.168.0.141 detail
Translating IP to mac .....
192.168.0.151 => 0025.64d2.a238
192.168.0.141 => 0025.64d2.5625
Source not directly connected, tracing source .....
Source 0025.64d2.a238 found on Access_SW_55[WS-C2960G-48TC-L] (172.16.1.68)
1 Access_SW_55 / WS-C2960G-48TC-L / 172.16.1.68 :
Gi0/26 [auto, auto] => Gi0/47 [auto, auto]
2 Dist_SW_L3 / WS-C4507R-E / 192.168.0.1 :
Gi1/1 [full, 1000M] => Gi1/5 [full, 1000M]
3 Access_SW_66 / WS-C2960G-48TC-L / 172.16.1.80 :
Gi0/47 [auto, auto] => Gi0/18 [auto, auto]
Destination 0025.64d2.5625 found on Access_SW_66[WS-C2960G-48TC-L] (172.16.1.80)
Layer 2 trace completed.
จะเห็นว่า มีรายละเอียดมากขึ้นกว่าเดิมใช่มั้ยครับ เช่น รุ่นของสวิตซ์ที่เครื่องทั้งสองใช้เป็นเส้นทางในการติดต่อสื่อสารกัน รวมไปถึงการตั้งค่าบนพอร์ตที่ใช้เชื่อมต่อกันด้วยครับ ว่าตั้งค่า speed และ duplex เป็นอะไรไว้
แต่ถ้าเพื่อน ๆ ไม่มีการใช้งาน Switch Layer 3 บนเครื่อข่ายแล้ว ก็สามารถที่จะใช้คำสั่ง "traceroute mac" บนสวิตซ์ Layer 2 ได้นะครับ แต่จะต้องค้นหา Mac Address ของเครื่องที่ต้องการเอาเองด้วยวิธีการ show arp บน gateway หรือดูจากเครื่องผู้ใช้ใน Vlan เดียวกันก็ได้ครับ และเมื่อเราทราบถึง Mac Address ของเครื่องต้นทางและปลายทางแล้ว ก็สามารถใช้คำสั่ง "traceroute mac" ได้เลยครับ
ตัวอย่าง
Access_SW_44#traceroute mac 0025.64d2.a238 0025.64d2.5625
Source 0025.64d2.a238 found on Access_SW_55
1 Access_SW_55 (172.16.1.68) : Gi0/26 => Gi0/47
2 Dist_SW_L3 (192.168.0.1) : Gi1/1 => Gi1/5
3 Access_SW_66 (172.16.1.80) : Gi0/47 => Gi0/18
Destination 0025.64d2.5625 found on Access_SW_66
Layer 2 trace completed
เห็นมั้ยครับเพื่อน ๆ การใช้ Traceroute mac นั้นจะช่วยทำให้ชีวิตของเราง่ายขึ้นจริง ๆ ครับ
และถ้า Switch L3 เป็น Alcatel6850 แต่ Switch L2 เป็น Cisco 2960X จะใช้คำสั่งนี้ได้ด้วยไหมครับ
ReplyDeleteของผมทำตามแล้วมันขึ้นเป็นแบบนี้อะครับ
ReplyDeletecisco2960Outlet#traceroute mac ip 10.0.215.2 10.0.215.4
Source ip 10.0.215.2 error. Invalid ip address.
Layer2 trace aborted.
ทั้งๆที่ เครื่อง 10.0.215.2 กับ 10.0.215.4 ก็ Ping เจอ