Потоки IPFIX от OVS Linux Bridge не точны

Я изо всех сил пытаюсь понять мои данные потока IPFIX.

Для объяснения: у меня есть блок Ubuntu (16.04.2 LTS Xenial Xerus), и внутри него есть один мост Linux:

root@Ubuntu1:~# ovs-vsctl show
527530c2-6f42-498f-92a6-67dc43d931bc
    Bridge "myBridge"
        Port "eth1"
            Interface "eth1"
                type: dpdkvhostuser
        Port "eth2"
            …etc…
    ovs_version: "2.9.3"
root@Ubuntu1:~#

Хорошо, я включил экспорт IPFIX на этом мосту:

ovs-vsctl -- set bridge myBridge ipfix=@i -- --id=@i create IPFIX targets=\"10.0.0.10:4739\" obs_domain_id=1234 obs_point_id=5678 sampling=5

И мост успешно экспортирует потоки в сборщик 10.0.0.10. Из ряда сообщений (как здесь) я понимаю, что "octetDeltaCount" - это необработанное количество байтов в данном потоке. Я хотел проверить это, поэтому я настроил две виртуальные машины, A и B, и использовал iPerf3 для отправки тестового трафика от A к B через мой мост Linux. Мои результаты были обескураживающими:

                                    iPerf3           IPFIX's
                                    Transferred      octetDeltaCount                    
iPerf3 test                         (bytes)          reported           Delta
=========================================================================================
iperf3 -c 168.161.114.16 -n 1K      28,700           69,195             -40,495
iperf3 -c 168.161.114.16 -n 250K    303,700          637,345            -333,645
iperf3 -c 168.161.114.16 -n 500K    559,000          975,425            -416,425
iperf3 -c 168.161.114.16 -n 1M      1,060,000        962,286            97,714
iperf3 -c 168.161.114.16 -n 250M    216,700,000      1,016,687          215,683,313
iperf3 -c 168.161.114.16 -n 500M    500,100,000      1,143,102          498,956,899
iperf3 -c 168.161.114.16 -n 1G      1,000,000,000    1,348,778          998,651,222
iperf3 -c 168.161.114.16 -n 10G     10,000,000,000   3,721,548          9,996,278,452

(Примечание к этому второму столбцу: когда я указал, что iPerf отправляет "1 КБ" трафика, iPerf фактически отправляет 28 700 байт. Но это нормально, меня больше беспокоит то, как IPFIX сообщает о том, что iPerf отправляет.)

Хорошо, плохие новости здесь должны быть очевидны. IPFIX не дает точных отчетов о количестве байтов. Я могу принять результаты для потока 1 Мбайт, но другие слишком ненормальны. Здесь что-то не так.

В частности, сообщаемое "octetDeltaCount" становится безумно неточным после того, как я отправлю более 1 Мбайт / поток. Посмотри на эти дельты!

Если вы посмотрите на команду ovs-vsctl, которую я использую для включения экспорта IPFIX с коммутатора Linux, вы заметите, что я установил выборку потока на N=5, что означает, что коммутатор просматривает каждый пятый пакет. Мой сборщик не знает об этом, он просто сообщает необработанные данные, которые он получает от коммутатора. Но очевидно, что умножение столбца "octetDeltaCount" на пять решит эту проблему. Здесь на работе что-то еще.

Кто-нибудь должен был бороться с такой проблемой раньше? Мне любопытно узнать, сделали ли вы то, что я сделал, но потом получили точные цифры. Если так, то, возможно, мой сборщик IPFIX не очень хорош. Или OVS сообщает данные IPFIX в логарифмическом масштабе или что-то?

Любая информация или советы будут оценены по достоинству.

0 ответов

Другие вопросы по тегам