ในกรณีที่ต้องการตรวจสอบหรือวิเคราะห์ปัญหาที่เกิดขึ้นบนระบบเครือข่ายด้วยการดักจับแพ็คเก็ตที่ใช้งานผ่านอยู่บนอุปกรณ์ ถ้าเป็นสวิตซ์ก็จะสามารถทำการตั้งค่า SPAN บนสวิตซ์ เพื่อทำการ mirroring ทราฟิกจากอินเทอร์เฟสหนึ่งไปยังอีกอินเทอร์เฟสหนึ่ง และใช้เครื่องมืออย่างเช่น wireshark ในการดักจับแพ็คเก็ตเพื่อมาวิเคราะห์ข้อมูลได้ แต่ในกรณีที่ต้องการดักจับแพ็คเก็ตที่ผ่านบนเราเตอร์ ที่โดยทั่วไปแล้วจะไม่สามารถทำการตั้งค่า SPAN ได้ (ยกเว้นในกรณีที่เป็น switchport ) ก็จะต้องใช้คุณสมบัติ EPC (Embedded Packet Capture) เพื่อดักจับแพ็คเก็ตที่ส่งต่อโดยเราเตอร์แทน
EPC จะช่วยให้ผู้ดูแลระบบสามารถดักจับแพ็คเก็ตที่ถูกส่งต่อโดยเราเตอร์ได้โดยตรง โดยที่ไม่ต้องมีการตั้งค่าบนสวิตซ์ หรือเชื่อมต่อสายเคเบิ้ลใด ๆ เพิ่มเติม เนื่องจาก ECP จะทำการดักจับแพ็คเก็ตไปเก็บไว้บน buffer บนตัวเราเตอร์ และสามารถเรียกดูได้ทันทีผ่านการใช้ CLI บนตัวเราเตอร์ หรือสามารถส่งออกมาในรูปแบบ PCAP ไปยังโฮสต์ปลายทาง ผ่านโปรโตคอล อย่างเช่น TFTP หรือ FTP จากนั้นก็ใช้เครื่องมืออย่างเช่น wireshark ในการอ่านไฟล์ที่ดักจับมาได้
การใช้งาน EPC จะช่วยอำนวยความสะดวกในการวิเคราะห์ทราฟิกได้ง่ายขึ้น แม้แต่ในกรณีที่ต้องการดักจับทราฟิกบนอุปกรณ์ที่ติดตั้งอยู่ในระยะไกล อย่างเช่น ตามสาขาที่อยู่ต่างจังหวัด โดยสามารถดักจับแพ็คเก็ตเพื่อมาตรวจสอบได้ง่าย โดยที่ไม่ต้องทำการเปลี่ยนแปลงทาง physical หรือเชื่อมต่อสายสัญญาณใด ๆ เพิ่มเติม
EPC จะมีคุณสมบัติดังนี้
- เพิ่มความสามารถในการดักจับแพ็คเก็ตข้อมูลทั้ง IPv4 และ IPv6 ที่ใช้งานผ่าน CEF switching path
- สามารถกำหนดชนิดและขนาดของ buffer ได้ตามต้องการ
- สามารถดักจับแพ็คเก็ตได้ ด้วยการใช้คำสั่งบน exec mode
- สามารถเรียกดูข้อมูลที่ดักจับได้ทันทีผ่านการใช้ CLI บนอุปกรณ์เราเตอร์
- สามารถส่งออกข้อมูลที่ดักจับออกมาได้ ในรูปแบบ PCAP และใช้เครื่องมืออย่างเช่น wireshark ในการวิเคราะห์ข้อมูล
- รองรับบน Cisco IOS ตั้งแต่ Release 12.4(20) T และ Cisco IOS-XE 3.7 - 15.2(4)S เป็นต้นมา
- สามารถดักจับแพ็คเก็ตได้บนอินเทอร์เฟสแบบ physical, sub-interface และ tunnel interface
- แพ็คเก็ตที่ buffer ไว้ จะถูกเก็บไว้บน DRAM ซึ่งจะหายไปเมื่อมีการ reload อุปกรณ์เราเตอร์
- การตั้งค่า EPC จะไม่ได้เก็บไว้บน NVRAM ซึ่งจะหายไปเมื่อมีการ reload อุปกรณ์เราเตอร์
ขั้นตอนการตั้งค่า EPC บน Cisco IOS
- ทำการสร้างและกำหนดรายละเอียดของ capture buffer
- (ทางเลือก) ทำการกำหนด access-list เพื่อ filter ทราฟิกที่ต้องการ
- ทำการสร้างและกำหนดรายละเอียดของ capture point
- ทำการเชื่อมโยง capture point เข้ากับ capture buffer
- การเปิดการทำงานของ capture point
- การปิดการทำงานของ capture point
- ตรวจสอบการตั้งค่า และทราฟิกที่ดักจับข้อมูลมา
- การส่งออกข้อมูลที่ดักจับมาไปยังโฮสต์ปลายทาง
ตัวอย่างการตั้งค่า EPC บน Cisco IOS
จากตัวอย่างด้านล่าง ต้องการที่จะดักจับทราฟิกที่รับ-ส่งกันระหว่างโฮสต์ 172.16.100.1 และ 172.16.200.1 ที่ถูกส่งต่อไปโดยเราเตอร์ R1 จากนั้นให้ส่งออกแพ็คเก็ตที่ดักจับได้มายัง TFTP Server เพื่อนำมาตรวจสอบต่อไป
ขั้นตอนที่ 1 สร้างและกำหนดรายละเอียดของ capture buffer
ตัวอย่างการตั้งค่า
R1#monitor capture buffer Capture-Buffer size 512 max-size 1024 circular
จากตัวอย่างด้านบน เป็นการสร้าง buffer ที่ชื่อว่า Capture-Buffer และทำการกำหนดค่าพารามิเตอร์ต่าง ๆ ดังนี้
- buffer ที่ใช้ในการเก็บข้อมูลจะมีขนาดสูงสุด 512 Kbyte
- ขนาดของแพ็คเก็ตสูงสุดที่จะเก็บลง buffer เท่ากับ 1024 bytes
- ให้ดักจับแพ็ตเก็ตอย่างต่อเนื่อง แม้ว่าจะมีขนาด buffer เท่ากับ 512 Kbyte ที่ตั้งไว้แล้วก็ตาม โดยจะทำการเขียนทับข้อมูลที่ดักจับไว้ก่อนหน้า
ขั้นตอนที่ 2 ในกรณีที่ต้องการเลือกเฉพาะข้อมูลที่สนใจ สามารถทำได้ด้วยการใช้ access-list ในการ filter ทราฟิก
ตัวอย่างการตั้งค่า
R1(config)#ip access-list extended Capture-Filter
R1(config-ext-nacl)#permit ip host 172.16.100.1 host 172.16.200.1
R1(config-ext-nacl)#permit ip host 172.16.200.1 host 172.16.100.1
R1(config-ext-nacl)#end
R1#monitor capture buffer Capture-Buffer filter access-list Capture-Filter
Filter Association succeeded
จากตัวอย่างด้านบน เป็นการสร้าง access-list ที่มีชื่อว่า "Capture-Filter" โดยจะสนใจเฉพาะทราฟิกที่รับ-ส่งกันระหว่างโฮสต์ 172.16.100.1 และ 172.16.200.1 เท่านั้น จากนั้นก็จะเป็นการนำ access-list ไปใช้งานกับ Buffer ที่ได้สร้างไว้ก่อนหน้านี้
ขั้นตอนที่ 3 ทำการสร้างและกำหนดรายละเอียดของ capture point
ตัวอย่างการตั้งค่า
R1#monitor capture point ip cef Capture-Point FastEthernet 0/0 both
*Jul 30 22:02:21.171: %BUFCAP-6-CREATE: Capture Point Capture-Point created.
จากตัวอย่างด้านบน เป็นการสร้าง capture point ที่มีชื่อว่า Capture-Point โดยจะทำการดักจับทราฟิกบนอินเทอร์เฟส Fa0/0 ทั้งในทิศทางขาเข้าและขาออกจากอินเทอร์เฟส
ขั้นตอนที่ 4 ทำการเชื่อมโยง capture point เข้ากับ capture buffer ที่สร้างขึ้น
R1#monitor capture point associate Capture-Point Capture-Buffer
ขั้นตอนที่ 5 เปิดการทำงานของ capture point
เมื่อเชื่อมโยง capture point เข้ากับ capture buffer เรียบร้อยแล้ว และต้องการเริ่มดักจับทราฟิก ก็สามารถทำได้ด้วยการใช้คำสั่ง "monitor capture point start" ตามตัวอย่างด้านล่างครับ
R1#monitor capture point start Capture-Point
*Jul 30 22:03:27.879: %BUFCAP-6-ENABLE: Capture Point Capture-Point enabled.
ขั้นตอนที่ 6 ปิดการทำงานของ capture point
เมื่อทำการดักจับทราฟิกได้ตามต้องการ และต้องการที่จะหยุดการดักจับทราฟิก ก็สามารถทำได้ด้วยการใช้คำสั่ง "monitor capture point stop" ตามตัวอย่างด้านล่างครับ
R1#monitor capture point stop Capture-Point
*Jul 30 22:07:56.015: %BUFCAP-6-DISABLE: Capture Point Capture-Point disabled.
ขั้นตอนที่ 7 การตรวจสอบการตั้งค่าและเรียกดูทราฟิกที่ดักจับมาบน CLI
เมือ่ทำการดักจับแพ็คเก็ตเรียบร้อยแล้ว สามารถตรวจสอบการตั้งค่าได้ด้วยการใช้คำสั่ง "show monitor capture buffer" ตามตัวอย่างด้านล่างครับ
R1#show monitor capture buffer all parameters
Capture buffer Capture-Buffer (circular buffer)
Buffer Size : 524288 bytes, Max Element Size : 1024 bytes, Packets : 126
Allow-nth-pak : 0, Duration : 0 (seconds), Max packets : 0, pps : 0
Associated Capture Points:
Name : Capture-Point, Status : Active
Configuration:
monitor capture buffer Capture-Buffer size 512 max-size 1024 circular
monitor capture point associate Capture-Point Capture-Buffer
monitor capture buffer Capture-Buffer filter access-list Capture-Filter
และในกรณีที่ต้องการเรียกดูทราฟิกแบบคร่าว ๆ บนเราเตอร์ ก็สามารถทำได้ด้วยการใช้คำสั่ง "show monitor capture buffer Capture-Buffer <name>" ครับ
R1#show monitor capture buffer Capture-Buffer
22:04:05.455 UTC Jul 30 2014 : IPv4 CEF Turbo : Fa0/1 Fa0/0
22:04:05.527 UTC Jul 30 2014 : IPv4 CEF Turbo : Fa0/0 None
22:04:05.551 UTC Jul 30 2014 : IPv4 CEF Turbo : Fa0/1 Fa0/0
22:04:05.567 UTC Jul 30 2014 : IPv4 CEF Turbo : Fa0/1 Fa0/0
ถ้าหากต้องการดูทราฟิกแบบละเอียด (เกินไป) คือดู dump ที่เป็นเลขฐาน 16 ของแพ็คเก็ตที่ใช้งานผ่านไปบนเราเตอร์ ก็สามารถทำได้ด้วยการใช้คำสั่ง "show monitor capture buffer <name> dump" ครับ
R1#show monitor capture buffer Capture-Buffer dump
22:04:05.455 UTC Jul 30 2014 : IPv4 CEF Turbo : Fa0/1 Fa0/0
66160740: CA011F44 0008CA03 1F440008 080045C0 J..D..J..D....E@
66160750: 002CAEC5 0000FE06 8922AC10 6401AC10 .,.E..~..",.d.,.
66160760: C801BCBC 0017B2C2 D1E80000 00006002 H.<<..2BQh....`.
66160770: 1020C5FF 00000204 02180000 00 . E..........
22:04:05.527 UTC Jul 30 2014 : IPv4 CEF Turbo : Fa0/0 None
66160740: CA031F44 0008CA01 1F440008 080045C0 J..D..J..D....E@
66160750: 002C8D44 0000FD06 ABA3AC10 C801AC10 .,.D..}.+#,.H.,.
66160760: 64010017 BCBC224B 664BB2C2 D1E96012 d...<<"KfK2BQi`.
66160770: 10203D58 00000204 021800 . =X.......
ขั้นตอนที่ 8 การส่งออกข้อมูลที่ดักจับออกมายังโฮสต์ปลายทาง
จะเห็นว่าข้อมูลที่แสดงด้วยการใช้คำสั่งบน CLI นั้น ยากต่อการเข้าใจ (ของมนุษย์) เป็นอย่างมาก ดังนั้นเราจึงควร (เป็นอย่างยิ่ง) ที่จะส่งออกข้อมูลที่ดักจับออกมายังโฮสต์ภายนอก และใช้งานเครื่องมืออย่างเช่น Wireshark ในการเปิดไฟล์เพื่อวิเคราห์ข้อมูลตามต้องการ
ตัวอย่างการตั้งค่า
R1#monitor capture buffer Capture-Buffer export tftp://192.168.81.1/capture-traffic.pcap
ตัวอย่างการตั้งค่า EPC บน Cisco IOS-XE ครับ
monitor capture PCAP interface GigabitEthernet0/3/0 both
monitor capture PCAP match ipv4 protocol tcp any any
monitor capture PCAP start
monitor capture PCAP stop
No comments:
Post a Comment