Медленная передача по сети через Linux Firewall VM

У нас есть виртуальная машина RedHat 5.8, работающая на ESX поверх Cisco UCS, которая действует как брандмауэр с использованием iptables. Коробка имеет несколько сетевых адаптеров, один из которых служит шлюзом для нашей сети, а другие сетевые адаптеры - каждая VLAN/ сеть. Проблема, которую я вижу, состоит в том, что выполнение теста iperf с хоста непосредственно на виртуальную машину межсетевого экрана дает скорость 800+ Мбит / с, но при попытке выполнить тест iperf с хоста вне межсетевого экрана на хост внутри межсетевого экрана (что приводит к пропуску трафика) через брандмауэр) дает скорость около 30 Мбит / с или менее.

Детали:

  • Я не уверен, какой выпуск или версии ESX или UCS мы используем, но я могу узнать, важно ли это. Наш системный администратор постоянно обновляет его, поэтому, скорее всего, он будет в последней паре обновлений.
  • Я знаю, что мы используем драйвер VMXNET 3 для сетевых адаптеров.
  • Все соединения подтверждены на скорости 1 Гбит / с.

Что я пробовал:

  • Из того, что я прочитал, драйвер e1000 дает лучшие результаты, поэтому мы добавили несколько сетевых карт, используя этот драйвер и iperf, протестированные через эти интерфейсы с одинаковыми результатами.
  • Проверено, что LRO было отключено на протестированных интерфейсах. Когда я запускаю "ethtool -K ethX lro off", он сообщает, что "параметры разгрузки не изменены", что, как я полагаю, означает, что оно уже отключено.
  • Также отключен TSO на тестируемых интерфейсах.
  • Когда я делал свои тесты скорости, я обычно тестировал с физического устройства на виртуальное устройство через брандмауэр в том же кластере. Я также попытался протестировать виртуальное устройство на виртуальном устройстве через брандмауэр и получил те же результаты.
  • Отключил iptables и запустил тесты скорости, получив те же результаты.
  • Ни один из вышеперечисленных пунктов не изменил ничего, кроме, возможно, еще более медленного (у меня скорость <10 Мбит / с).

Поскольку я могу получить 800+ Мбит / с, идущих на сам брандмауэр, это заставляет меня думать, что нет ничего плохого в конфигурации самих сетевых адаптеров. Я чувствую, что это некоторая проблема с пересылкой на самой ОС, так как она, кажется, проявляется только при прохождении трафика через брандмауэр. Следует также отметить, что я не наблюдал никаких пиков ЦП во время этого процесса.

Я уверен, что опускаю некоторые детали, поэтому, если есть какие-либо дополнительные вопросы, дайте мне знать. Я ценю любую помощь!

1 ответ

Решение

Мы нашли решение. Нам пришлось отключить LRO на уровне блейда в UCS (как показано здесь -> http://docwiki.cisco.com/wiki/Disable_LRO). Как только мы это сделали, скорость возросла до 700+ МБ / с, ограничиваясь только из-за процессора и обработки iptables.

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