Hotline: 098 821 7749 info@acinternational.com.vn

Xu hướng CNTT

NetFlow là gì?

Cỡ chữ
NetFlow là gì?
 

Nội dung bài viết:

1. NetFlow là gì?
2. Cách thức hoạt động của NetFlow
3. Ví dụ về NetFlow command
4. Sử dụng NetFlow
5. Cơ sở hạ tầng NetFlow Infrastructure
 

 
1. NetFlow là gì?

- NetFlow là một giao thức thu thập “collecting”, tổng hợp “aggregating” và ghi lại “recording” dữ liệu luồng lưu lượng trong một mạng. Dữ liệu NetFlow cung cấp cái nhìn chi tiết hơn về cách băng thông “bandwidth” và lưu lượng mạng “network traffic” đang được sử dụng so với các giải pháp giám sát khác, chẳng hạn như SNMP.


 

- NetFlow do Cisco phát triển và được nhúng trong phần mềm IOS của Cisco trên bộ định tuyến “router” và thiết bị chuyển mạch “switch” của công ty và đã được hỗ trợ trên hầu hết các thiết bị của Cisco kể từ phiên bản 11.1 của Phần mềm Cisco IOS Software. Nhiều nhà sản xuất phần cứng khác hỗ trợ NetFlow hoặc sử dụng các công nghệ luồng thay thế, chẳng hạn như jFlow hoặc sFlow.
 
- Các phiên bản NetFlow
  • Về mặt kỹ thuật, có mười phiên bản khác nhau của NetFlow. Tuy nhiên, một số phiên bản chỉ được phát hành nội bộ hoặc không bao giờ được triển khai rộng rãi ngoài phần cứng cụ thể.
  • Phiên bản NetFlow version 1 ban đầu được coi là lỗi thời và hiếm khi được sử dụng ngày nay. Các phiên bản từ version 2 đến version 4 là phiên bản nội bộ, không có bản triển khai công khai nào được phát hành.
  • Phiên bản version 5 vẫn được sử dụng phổ biến cho đến ngày nay, do một lượng lớn bộ định tuyến và thiết bị chuyển mạch của Cisco đã được phát hành trong khi nó là phiên bản tiêu chuẩn. Nó đã thêm thông tin Giao thức cổng biên giới “Border Gateway Protocol” và số thứ tự luồng “flow sequence numbers” vào NetFlow Exports. Nó chỉ hoạt động với các luồng IPv4.
  • Phiên bản version 6 không còn được hỗ trợ và không được phát hành rộng rãi. Phiên bản version 7 đã thêm hỗ trợ cho các thiết bị chuyển mạch Cisco Catalyst sử dụng chế độ kết hợp hoặc nguyên bản. Phiên bản version 8 có hỗ trợ khi tập hợp NetFlow dựa trên bộ định tuyến được sử dụng.
  • Phiên bản version 9 là phiên bản hiện tại và là Template-based. Như vậy, nó cho phép hỗ trợ mở rộng mà không cần thay đổi định dạng bản ghi luồng “flow-record format”. Phiên bản này được ưu tiên cho IETF IP Information Export (IPFIX) WG và IETF Pack Sampling WG (PSAMP) và hoạt động với cả IPv4 và IPv6.
  • IPFIX thường được gọi là NetFlow v10 vì nó dựa trên NetFlow v9, nhưng thực ra nó không phải là NetFlow.

v1 First implementation, now obsolete
v2 Internal version, no public release
v3 Internal version, no public release
v4 Internal version, no public release
v5 Still commonly used today, only works with Ipv4 flows
v6 No longer supported
v7 Added support for Cisco Catalyst switches
v8 Supports router-based NetFlow aggregation
v9 Current version, template-based, works with IPv6
v10 Used for identifying IPFIX
 

- Các thiết bị hỗ trợ (Supported devices)
  • Hầu hết tất cả các thiết bị của Cisco đều hỗ trợ NetFlow. Ngoại lệ duy nhất là Cisco 2900, 3500, 3660, 3750. Hơn nữa, NetFlow có sẵn cho nhiều bộ định tuyến và chuyển mạch của các nhà cung cấp khác.
Vendor + Type Models Supported NetFlow Versions
Alcatel-Lucent router 7750SR v5, IPFIX
Juniper legacy router M-series, T-series, MX-series with DPC v5, v8, v9
Juniper router MX-series, FPC5 for T4000 v5, IPFIX
Enterasys Switch S-Serie, N-Serie v5, v9
Flowmon Probe 1000, 2000, 4000, 6000, 10000, 20000, 40000, 80000, 100000 v5, v9, IPFIX
Nortel Switch ERS5510, ERS5520, ERS5530, 8600 v5, v9, IPFIX
Huawei router NE5000E, NE40E/X NE80E v5, v9
 
 
 
2. Cách thức hoạt động của NetFlow
- Creating a flow (Tạo luồng)
  • Luồng “flow” là cách nhóm một chuỗi các gói tin “packets” một chiều vào thành một gói tin lớn cụ thể. Các gói tin được hình thành này có thể được cấu hình dựa trên các thuộc tính “attributes” phù hợp trong mỗi gói bao gồm:
    • IP Source:                            IP nguồn
    • IP Destination:                     IP đích
    • Source Port:                        Cổng nguồn
    • Destination Port:                 Cổng đích
    • Class of Service:                 Loại dịch vụ
    • Layer 3 Protocol Type:        Loại giao thức 3 lớp
    • Interface:                            Giao diện
  • Khi mỗi gói được chuyển tiếp, các thuộc tính trên được kiểm tra. Luồng được tạo ra bởi gói đầu tiên “first packet” đi qua đường chuyển mạch tiêu chuẩn. Mỗi gói bổ sung “additional packet” có cùng tham số (IP nguồn và đích, địa chỉ, cổng nguồn và đích, loại dịch vụ) được nhóm thành một luồng duy nhất. Bất kỳ sự thay đổi nào về giá trị của bất kỳ một trong số các tham số đều tạo ra một luồng mới.
  • Các bộ định tuyến Cisco cao cấp hỗ trợ NetFlow lấy mẫu trong đó chỉ một trong số một số gói nhất định được kiểm tra. Điều này được sử dụng trên các bộ định tuyến nơi việc kiểm tra mọi gói là không thực tế do lưu lượng truy cập lớn. Các luồng được lấy mẫu làm giảm đáng kể tác động đến hiệu suất khi gửi thông tin về luồng.
 
- NetFlow cache (Bộ nhớ đệm NetFlow)
  • Việc giám sát “monitoring” và nhóm “grouping” mọi gói tin được chuyển tiếp bởi bộ định tuyến hoặc bộ chuyển mạch sẽ tạo ra rất nhiều dữ liệu. Dữ liệu này được cô đọng thành một cơ sở dữ liệu trong thiết bị mạng được gọi là bộ đệm NetFlow Cache. Một bản ghi luồng “Flow record” được giữ cho mỗi luồng hoạt động. Dữ liệu hết hạn và sau đó được xuất từ bộ nhớ cache sang máy chủ thu thập NetFlow theo các khoảng thời gian đều đặn dựa trên bộ đếm thời gian của luồng “Flow timers”. Bộ đệm NetFlow Cache được kiểm tra mỗi giây theo mặc định.
 
- NetFlow export
  • Các luồng được nhóm lại để xuất thành một khối dữ liệu gọi là “NetFlow Export datagram”. Mỗi khối dữ liệu Datagram bao gồm tối đa 30 luồng. Theo Cisco, NetFlow Export tiêu chuẩn sử dụng khoảng 1,5% tổng lưu lượng truy cập chuyển mạch được phân tích.
 
- NetFlow Record (bản ghi Netflow)
  • Bản ghi Flow Record của NetFlow Version 9 dựa trên mẫu. Điều đó có nghĩa là các cải tiến trong tương lai có thể được đáp ứng mà không cần phải thay đổi bản ghi flow record cơ bản. Định dạng bản ghi được xác định bởi một tiêu đề gói “packet header”, theo sau là ít nhất một template FlowSetdata FlowSet. Template FlowSet cung cấp mô tả về những gì sắp có trong Data FlowSets. Đây là điều cho phép khả năng mở rộng của bản ghi. Thay vì xác định trước trong một đặc tả dữ liệu nào sẽ đến và ở đâu, định nghĩa đó được thực hiện trong chính gói tin.
  • Tiêu đề gói “packet header” về cơ bản giống như trong Phiên bản 5. Ngoài ra, nó còn chứa số phiên bản của gói “version number for the packet”, thời gian hoạt động của hệ thống “system uptime” (tính bằng mili giây), số thứ tự và Source ID.
 
- NetFlow collector (Bộ thu thập dữ liệu Netflow)
  • Dữ liệu NetFlow data được báo cáo định kỳ cho bộ thu thập dữ liệu NetFlow collector. Bộ thu thập dữ liệu là một máy chủ hoặc máy tính khác chạy phần mềm NetFlow Receiver Software được thiết kế để thu thập “gather”, ghi lại “record”, lọc “filter” và phân tích “analyze” các luồng kết quả, chẳng hạn như Paessler’s PRTG NetFlow Analyzer. Phần mềm thu thập dữ liệu “collector software”phải hỗ trợ phiên bản NetFlow giống như máy chủ xuất. Ví dụ: để giám sát một bộ định tuyến Cisco sử dụng NetFlow version 5, người ta sẽ cần sử dụng cảm biến NetFlow V5 Sensor trong PRTG Network Monitor. Đối với một bộ định tuyến sử dụng NetFlow version 9, người ta sẽ cần cảm biến NetFlow V9 Sensor. Cả hai cảm biến có thể được bật cùng lúc trên cùng một máy, để một bộ thu thập duy nhất có thể nhận và báo cáo về dữ liệu từ cả hai phiên bản NetFlow.
  • Khối dữ liệu NetFlow datagrams được xuất bằng Giao thức UDP (UDP - User Datagram Protocol). Địa chỉ IP của bộ thu dữ liệu và cổng đích phải được cấu hình trên bộ định tuyến hoặc chính bộ chuyển mạch. Trong một số trường hợp, SNMP có thể được sử dụng để bật NetFlow và định cấu hình địa chỉ IP của người thu thập để gửi dữ liệu đến.
  • Trong Cisco IOS, lệnh “ip flow-export command” có thể được sử dụng để định cấu hình IP đích từ dòng lệnh.
  • Một trong những cổng phổ biến nhất được sử dụng cho NetFlow exports là 2055, nhưng về cơ bản bạn có thể sử dụng bất kỳ cổng nào miễn là bạn chỉ định chính xác nó trong bộ thu dữ liệu NetFlow receiver. Khi NetFlow export được đẩy đến bộ thu, không cần thực hiện kéo “Polling”, nhưng không có quy trình tự động phát hiện cho NetFlow có sẵn như với SNMP vì điều này.
 
- NetFlow MIB
  • Có thể truy cập một số dữ liệu NetFlow qua SNMP bằng NetFlow MIB. Mặc dù không được thiết kế để thay thế cho NetFlow export, nhưng nó cung cấp một cách để truy cập vào dữ liệu NetFlow thông qua một cơ chế khác. Dữ liệu có sẵn bao gồm số lượng luồng “number of flows”, luồng mỗi giây “flows per second” và gói hoặc byte trên mỗi luồng “packets or bytes per flow”. Khả năng truy cập danh sách những người nói nhiều nhất “top talkers” cũng có thể hữu ích trong một số trường hợp nhất định, nhưng bạn vẫn nhận được dữ liệu này khi nhận và theo dõi các luồng.
 
- NetFlow data
  • Có nhiều loại lưu lượng “traffic categories” có thể được theo dõi bằng NetFlow. Ví dụ, cảm biến NetFlow V9 Sensor của PRTG cho phép theo dõi và phân loại nhiều loại lưu lượng theo mặc định,
    • Chat
    • Citrix
    • FTP/P2P
    • Infrastructure (DHCP, DNS, ICMP, SNMP)
    • Mail
    • NetBIOS
    • Remote Control Protocols
    • WWW
    • Total Traffic
 
3. Ví dụ về NetFlow command

- Sau đây là lệnh NetFlow Top Talkers, lệnh này liệt kê những người tiêu thụ gói và byte lớn nhất của mạng. Trước khi sử dụng lệnh Top Talkers, nó phải được định cấu hình:

Router(config)#ip flow-top-talkers
Router(config-flow-top-talkers)#top 10
 
- 10 người nói chuyện hàng đầu trong mạng được sắp xếp theo các gói:

R3#show ip flow top-talkers
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts
Et1/0 172.16.10.2 Et0/0 172.16.1.84 06 0087 0087 2100
Et1/0 172.16.10.2 Et0/0 172.16.1.85 06 0089 0089 1892
Et1/0 172.16.10.2 Et0/0 172.16.1.86 06 0185 0185 1762
Et1/0 172.16.10.2 Et0/0 172.16.1.86 06 00B3 00B3 2
Et1/0 172.16.10.2 Et0/0 172.16.1.84 06 0050 0050 1
Et1/0 172.16.10.2 Et0/0 172.16.1.85 06 0050 0050 1
7 of 10 top talkers shown. 7 flows processed.

 
4. Sử dụng NetFlow
- Giám sát mạng, người dùng và ứng dụng “Network, user and application monitoring”
  • Công dụng rõ ràng nhất của NetFlow là giám sát mạng “network monitoring”. Dữ liệu NetFlow data cung cấp thông tin sử dụng băng thông chi tiết có thể được phân đoạn theo nhiều cách, bao gồm theo người dùng “user”, hệ thống máy khách “client”, thời gian “time” và ứng dụng “application”. Dữ liệu đến bộ thu thập dữ liệu NetFlow Collector gần như theo thời gian thực, cho phép theo dõi chi tiết cụ thể và tổng hợp dữ liệu để nhìn ra bức tranh tổng thể như nó đang diễn ra.
  • Việc giám sát các mẫu lưu lượng “traffic patterns”, mẫu người dùng “user patterns” và mẫu ứng dụng “application patterns” có thể cảnh báo cho quản trị viên về các vấn đề tiềm ẩn trước khi chúng xảy ra và cung cấp nguồn tài nguyên khắc phục sự cố có giá trị. Một máy tính hoặc dịch vụ sử dụng lượng băng thông đủ lớn có thể ảnh hưởng đến hiệu suất mạng của những người dùng khác. Quản trị viên khi xem giao diện người dùng toàn diện hoặc trang tổng quan “dashboard” có thể phát hiện ra kết quả này trước khi nó xảy ra hoặc có thể tạo cảnh báo để quản trị viên mạng biết về các dạng bất thường.
  • Ví dụ: tổng quan về cảm biến PRTG NetFlow V9 Sensor cho biết những người nói chuyện hàng đầu “Top talker”, Kết nối hàng đầu “Top connections”, Giao thức hàng đầu “Top Protocols” dưới dạng phân tích theo giao thức, hiển thị nhanh nếu một số máy chủ hoặc ứng dụng đang sử dụng quá nhiều (hoặc quá ít) băng thông.
 
- Lập kế hoạch mạng (Network planning)
  • Khả năng phát hiện và phản ứng với các điều kiện mạng thay đổi là một khả năng có giá trị. Thậm chí tốt hơn là khả năng nhìn thấy những gì sắp tới và chủ động giải quyết mọi vấn đề.
  • Việc thu thập dữ liệu NetFlow trong khoảng thời gian dài hơn và phân tích các xu hướng được tìm thấy trong dữ liệu mang lại cơ hội biết trước những gì mạng yêu cầu. Có lẽ các ứng dụng khác nhau đang chạy vào cuối tháng tạo ra lưu lượng bổ sung ảnh hưởng đến hiệu suất mạng. Trong trường hợp đó, các hoạt động băng thông cao khác có thể được lên lịch vào các thời điểm khác nhau trong tháng để tránh tắc nghẽn.
  • Hơn nữa, dữ liệu NetFlow có thể giúp xác định thời điểm tăng trưởng lưu lượng thực sự trở nên quá cao đối với phần cứng hiện tại, mang lại nhiều thời gian mua, cài đặt và định cấu hình các bộ định tuyến và chuyển mạch bổ sung hoặc nhanh hơn.
 
- Lập hóa đơn và báo cáo dựa trên mức sử dụng “Usage-based billing and reporting”
  • Với khả năng xác định các luồng lưu lượng truy cập cụ thể (bao gồm nơi chúng bắt nguồn và ứng dụng nào đã kích hoạt chúng), dữ liệu NetFlow có thể được phân tích để cho phép thanh toán cho khách hàng, hoàn trả chi phí nội bộ hoặc hiển thị lượng mạng đang được sử dụng bởi những người dùng, nhóm cụ thể hoặc các ứng dụng. Với việc thu thập dữ liệu chi tiết như vậy, có thể dễ dàng điều chỉnh tỷ lệ thanh toán dựa trên thời gian trong ngày hoặc mức sử dụng ứng dụng hoặc tổng băng thông.
 
- Báo cáo và lập hồ sơ ứng dụng “Application reporting and profiling”
  • Dữ liệu NetFlow không chỉ có thể hiển thị lượng lưu lượng mà một ứng dụng tạo ra mà còn cho biết khi nào và cho ai. NetFlow có thể cho biết ứng dụng có được tối ưu hóa cho nhóm kế toán hay không, nhưng tạo ra nhiều lưu lượng truy cập cho một bộ phận khác.
 
- Phân tích bảo mật “Security analysis”
  • NetFlow cũng có thể giúp bảo mật mạng. Một người dùng đột nhiên tạo ra một lượng lớn lưu lượng truy cập thường không được yêu cầu cho công việc của họ? Có lẽ tài khoản đã bị xâm phạm? Dữ liệu NetFlow nhanh chóng cho thấy sự bất thường trong lưu lượng mạng, cho dù đó là một con sâu đang cố gắng phát tán, phần mềm độc hại cố gắng liên hệ với máy chủ kiểm soát hay một nhân viên bất mãn sao chép dữ liệu nhạy cảm của công ty.
 
 
5. Cơ sở hạ tầng NetFlow Infrastructure

- Mặc dù lưu lượng tổng thể do NetFlow tạo ra tương đối thấp, nhưng điều quan trọng là phải xác định vị trí các bộ thu thập NetFlow collector một cách chiến lược để tránh gửi dữ liệu qua các kết nối đắt tiền hoặc qua các kết nối không có khả năng xử lý lưu lượng bổ sung. Bộ sưu tập cục bộ hoạt động tốt nhất cho hầu hết các môi trường.