Jump to content
Калькуляторы

Linux проблема скорости в туннелях

Привет всем, уже долгое время пытаюсь решить следующую проблему: имеется три маршрутизатора в цепочке (GW0,GW1,GW2), везде Centos (пробовал разные ядра) между первым и вторым, а так-же вторым и третьм поднят IPsec и GRE туннели поверх. Проблема в следующем: При тестировании с помощью iperf между роутерами подключенными напрямую (gw0-gw1 и gw1-gw2) порядка 60Мбит, неважно запущен тест одновременно или по одиночке, но если запустить iperf между gw0 и gw2 (чтобы трафик шел через gw1), то скорость по TCP в один поток не превышает 8Мбит, хотя в многопоточном режиме становится нормальной (55-60Мбит). Пробовал включать/отключать TCPMSS fix на gw1 - разницы никакой. Прошу вашей помощи или совета, куда копать и что смотреть.

Share this post


Link to post
Share on other sites

Спасибо большое, все оффлоады отключил уже давно.Размер очередей на сетевых 4096. Увы это не помогло. С помощью tcpdump посмотрел на трафик - размер окна 17. Интересный момент - когда измеряю между соседними роутерами - в туннель уходят пакеты c length вплоть до 8К, но если принудительно в iperf поставить mss 1300 - скорость падает до 8-10 мбит(это там где раньше в одном потоке было 60). При чем эта проблема наблюдается на всех маршрутизаторах которые форвардят трафик между туннелями(их несколько).

Share this post


Link to post
Share on other sites

Привет всем, уже долгое время пытаюсь решить следующую проблему: имеется три маршрутизатора в цепочке (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.

Share this post


Link to post
Share on other sites

пакетов с 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).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.