SABRE Posted January 28, 2016 Привет всем, уже долгое время пытаюсь решить следующую проблему: имеется три маршрутизатора в цепочке (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 ethtool -K интерфейс tso off попробуйте, на всех имена интерфейсов тех - которые участвуют в транзите траффика Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
SABRE Posted January 28, 2016 Спасибо большое, все оффлоады отключил уже давно.Размер очередей на сетевых 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 пакетов с 8к быть не должно, если оффлоады выключены, имхо Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tartila Posted January 29, 2016 Привет всем, уже долгое время пытаюсь решить следующую проблему: имеется три маршрутизатора в цепочке (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 пакетов с 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...