SABRE Posted January 28, 2016 · Report post Привет всем, уже долгое время пытаюсь решить следующую проблему: имеется три маршрутизатора в цепочке (GW0,GW1,GW2), везде Centos (пробовал разные ядра) между первым и вторым, а так-же вторым и третьм поднят IPsec и GRE туннели поверх. Проблема в следующем: При тестировании с помощью iperf между роутерами подключенными напрямую (gw0-gw1 и gw1-gw2) порядка 60Мбит, неважно запущен тест одновременно или по одиночке, но если запустить iperf между gw0 и gw2 (чтобы трафик шел через gw1), то скорость по TCP в один поток не превышает 8Мбит, хотя в многопоточном режиме становится нормальной (55-60Мбит). Пробовал включать/отключать TCPMSS fix на gw1 - разницы никакой. Прошу вашей помощи или совета, куда копать и что смотреть. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nuclearcat Posted January 28, 2016 · Report post ethtool -K интерфейс tso off попробуйте, на всех имена интерфейсов тех - которые участвуют в транзите траффика Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
SABRE Posted January 28, 2016 · Report post Спасибо большое, все оффлоады отключил уже давно.Размер очередей на сетевых 4096. Увы это не помогло. С помощью tcpdump посмотрел на трафик - размер окна 17. Интересный момент - когда измеряю между соседними роутерами - в туннель уходят пакеты c length вплоть до 8К, но если принудительно в iperf поставить mss 1300 - скорость падает до 8-10 мбит(это там где раньше в одном потоке было 60). При чем эта проблема наблюдается на всех маршрутизаторах которые форвардят трафик между туннелями(их несколько). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nuclearcat Posted January 28, 2016 · Report post пакетов с 8к быть не должно, если оффлоады выключены, имхо Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tartila Posted January 29, 2016 · Report post Привет всем, уже долгое время пытаюсь решить следующую проблему: имеется три маршрутизатора в цепочке (GW0,GW1,GW2), везде Centos (пробовал разные ядра) между первым и вторым, а так-же вторым и третьм поднят IPsec и GRE туннели поверх. Проблема в следующем: При тестировании с помощью iperf между роутерами подключенными напрямую (gw0-gw1 и gw1-gw2) порядка 60Мбит, неважно запущен тест одновременно или по одиночке, но если запустить iperf между gw0 и gw2 (чтобы трафик шел через gw1), то скорость по TCP в один поток не превышает 8Мбит, хотя в многопоточном режиме становится нормальной (55-60Мбит). Пробовал включать/отключать TCPMSS fix на gw1 - разницы никакой. Прошу вашей помощи или совета, куда копать и что смотреть. Айпишники серые? Тогда в топку! © По делу - ясно жеж, участвует неготиация окна tcp, о котором из вашего сообщения знают только gw0 и gw2, если я вас правильно понял. На gw1 у вас, ведь, чистый бридж на gre? Кстати, а какой mtu установлен в gre туннелях? Собственно, вам tcp mss править на gw0 и gw2. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
SABRE Posted January 29, 2016 · Report post пакетов с 8к быть не должно, если оффлоады выключены, имхо Вот-вот. 8к пакеты уходят в интерфейс tun. А сами пакеты Ipsec esp имеют нормальный размер, как-будто tso включено на tun интерфейсе. Но это только когда тестируешь прямой линк gw0-gw1 и gw1-gw2, для iperf между gw0 и gw2 такого не наблюдается. Бриджей нет. gw1 роутит трафик между туннелями. iptables mss ставил разные и 8к и 1к и clamp-to-pmtu - ничего не меняется. У маршрутизаторов белые адреса между которыми и поднят IPsec, а поверх подняты gre с серыми адресами(как аналог VTI). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...