Làm thế nào để có được ipfix làm việc với openvswitch? [đóng cửa]


7

Tôi đang cố gắng theo dõi OpenVswitch của mình thông qua IPFix . Nhưng tôi đang đập đầu vào một bức tường gạch trong hai ngày nay: /

Theo trang web ovs-vsctl, tôi cần thêm một mục mới vào cơ sở dữ liệu cấu hình, chính xác hơn là vào "ipfix" -table. Điều đó đã làm việc khá tốt, và có vẻ như tôi đã hiểu đúng:

# ovs-vsctl list ipfix
_uuid               : 2d54982b-6cc5-4a8c-845c-cc7ef701da01
external_ids        : {}
obs_domain_id       : 123
obs_point_id        : 456
sampling            : 64
targets             : ["<collector-ip>:<port>"]

Sau đó tôi đã tải xuống libIPFIX và bắt đầu example_collector. Nhưng không có gì hiện lên. Tôi không nhận được bất kỳ thông tin nào. Tôi đã xác nhận nó bằng cách sử dụng wireshark ...

Một số Google-Research đã đưa ra một Email từ Danh sách gửi thư, trong đó nêu rõ rằng một người cần

Các hành động OpenFlow để khiến IPFIX được gửi đến các bộ sưu tập

Theo email này, có những "hành động mẫu" mới, nhưng tôi không thể tìm thấy thêm thông tin nào về cách thêm chúng.

Dự đoán tốt nhất của tôi là tôi đang thiếu các hành động mẫu OpenFlow này. Bất cứ ai có thể cung cấp cho tôi thông tin làm thế nào để thêm chúng?

/ chỉnh sửa: Tôi đang chạy OpenVswitch Phiên bản 1.11.0 trên openSUSE 13.1 (x86_64).

Để IPFix hoạt động, tôi đã thử như sau:

# ovs-vsctl -- set Bridge s1 ipfix=@i -- --id=@i create IPFIX targets=\"10.0.0.1:4739\" obs_domain_id=123 obs_point_id=456 sampling=64
2d54982b-6cc5-4a8c-845c-cc7ef701da01

Để xác nhận rằng tôi đã thực hiện danh sách ipfix-vsctl (xem bên trên)

Một lệnh tương tự hoạt động như mong đợi để sFlow hoạt động:

# ovs-vsctl -- set Bridge s1 sflow=@sflow -- --id=@sflow create sflow agent=eth0  target=\"10.0.0.1:6343\" header=128 sampling=32 polling=2
0df2b92b-8a83-4a63-acc4-fecf6f8f492f

Ngay sau khi nhập dòng đó, tôi đã nhận được kết quả lấy mẫu gửi đến máy tính mục tiêu của mình. Thật không may, không có may mắn với IPFix.


1
@ChristophHaefner Các tệp nhật ký của bạn nói gì khi bạn vượt qua lệnh IPFix không thành công?
Ryan Foley

1
@Fizzle: Cảm ơn một triệu cho gợi ý. Trước đây tôi đã tìm kiếm các tệp nhật ký, nhưng / var / log / openvswitch / trống, vì vậy tôi đã chuyển sang. Nhưng với sự thúc đẩy của bạn, tôi đã tìm kiếm tinh vi hơn và tìm thấy một tệp nhật ký: /var/log/ovs-vswitchd.log! Và nó thực sự nói rằng ông cố gắng để cung cấp: "2014-01-22T10: 09: 04Z | 1.017.630 | sưu tập | WARN | gửi đến nhà sưu tập thất bại: Kết nối từ chối" Phải đã bỏ qua nó trong khi gỡ lỗi với Wireshark: /
Christoph HAEFNER

Câu trả lời:


5

Verbiage bạn đang sử dụng để thiết lập IPFix hoàn toàn đúng.

Đây là những gì bạn có:

ovs-vsctl -- set Bridge s1 ipfix=@i -- --id=@i create IPFIX targets=\"10.0.0.1:4739\" obs_domain_id=123 obs_point_id=456 sampling=64

Và khá nhiều ví dụ tương tự được nêu trong tệp người đàn ông ovs-vsctl:

IPFIX

Configure bridge br0 to send one IPFIX flow record per packet sample to UDP port 4739 on host 192.168.0.34, with Observation Domain ID 123 and Observation Point ID 456:

ovs−vsctl −− set Bridge br0 ipfix=@i −− −−id=@i create IPFIX targets=\"192.168.0.34:4739\" obs_domain_id=123 obs_point_id=456

Dựa trên tệp nhật ký của bạn trong phần bình luận:

2014-01-22T10:09:04Z|1017630|collectors|WARN|sending to collector failed: Connection refused

Tôi nghĩ rằng sẽ có thể cộng hưởng khi giả sử collector ( 10.0.0.1) bị định cấu hình sai hoặc một cái gì đó đang ngăn kết nối gửi đến nó.


Bạn đúng 100% với giả định của bạn. Tôi chưa bao giờ nghĩ về nó bởi vì tôi đang sử dụng example_collector từ libipfix (được cho là triển khai tham chiếu).
Christoph Haefner

Tôi nhanh chóng viết một chương trình nhỏ nghe trên cổng 4739 và chỉ cần bỏ những gì anh ta có trên màn hình. Việc gỡ lỗi với Wireshark một lần nữa mang đến một điều quan trọng: Nhà xuất khẩu không gửi mẫu: / Cũng có thể là lý do tại sao nhà sưu tập mẫu từ chối những gì anh ta nhận được ...
Christoph Haefner

Bạn đang sử dụng gì để thu thập / phân tích dòng chảy?
Ryan Foley

3
Cảm ơn đề nghị của bạn, tôi sẽ xem xét nó. Bây giờ tôi đã tìm thấy lỗi: example_collector từ libipfix đang nghe trên tcp: 4739, trong khi OpenVswitch đang gửi nó trên udp: 4739. Tôi đã không nhìn thấy nó trong wireshark, vì tôi đã thêm bộ lọc "tcp.port == 4739" ... Tôi đã bị mất mẫu bởi vì nó đã được gửi một lần ngay từ đầu và tôi đã dừng wireshark nhiều lần và khởi động lại quá trình quét mà không tiết kiệm.
Christoph Haefner

1
@ChristophHaefner, cảm ơn bạn vì một câu hỏi hay. Vui lòng xem xét lại nếu có nhu cầu
Mike Pennington
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.