Перейти к содержимому
Калькуляторы

ethtool -K $ext tso off gso off gro off

можешь попробывать

Изменено пользователем ne-vlezay80

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 часов назад, ne-vlezay80 сказал:


ethtool -K $ext tso off gso off gro off

можешь попробывать

 

Не помогло

Может быть у вас всё работает, потому что вы делаете тест на одном физическом сервере?
Я делаю тест между двумя хостами, которые подключаются к роутеру: A --> Router <-- B

И ещё я похоже соврал с результатами тестов. Трафик упирается в 90к p/s

Повесил шейпер на абонентские vlan`ы, всё отлично работает, но шейпится и внешка и локалка
ifb мне нужен для того, чтобы шейпить только внешку
Не поднимать же ради шейпера отдельный сервер...

Изменено пользователем zervu1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, zervu1boris сказал:

Не помогло

Может быть у вас всё работает, потому что вы делаете тест на одном физическом сервере?
Я делаю тест между двумя хостами, которые подключаются к роутеру: A --> Router <-- B

И ещё я похоже соврал с результатами тестов. Трафик упирается в 90к p/s

Повесил шейпер на абонентские vlan`ы, всё отлично работает, но шейпится и внешка и локалка
ifb мне нужен для того, чтобы шейпить только внешку
Не поднимать же ради шейпера отдельный сервер...

 

Можно интерфейс сделать отдельный для внешки

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

24 минуты назад, ne-vlezay80 сказал:

Можно интерфейс сделать отдельный для внешки

У меня внешка приходит с разных vlan`ов
Мне нужно шейпить трафик, который идёт к абонентам
Даже если я повешу внешку на отдельный интерфейс на сетевой, то смогу шейпить только трафик, который идёт от абонентов
Или есть ещё способы?

 

Есть такая идея:
Прокинуть vlan`ы с внешкой в netns, сделать маршрут до initial netns, и на интерфейсе между созданным netns и initial netns шейпить
Но тогда у меня много вопросов:
1)Можно ли шейпить в netns?
2)Можно ли поднять bgp в netns ?
3)Не будет ли потери производительности?

Или сделать наоборот, прокинуть абонентские vlan`ы в netns?

Смысл идеи в том, чтобы создать виртуальный роутер, на котором будет крутиться или локалка или внешка

Изменено пользователем zervu1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

21 минуту назад, zervu1boris сказал:

1)Можно ли шейпить в netns?
2)Можно ли поднять bgp в netns ?
3)Не будет ли потери производительности?

1) Да

2) Да (Можно для этого использовать bird)

3) Не должно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 hours ago, zervu1boris said:

У меня внешка приходит с разных vlan`ов
Мне нужно шейпить трафик, который идёт к абонентам
Даже если я повешу внешку на отдельный интерфейс на сетевой, то смогу шейпить только трафик, который идёт от абонентов
Или есть ещё способы?

 

Совсем не понял, а что мешает шейпить трафик на абонентов? Что мешает проклассифицировать его, напимер, тем же ipset?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На роутере задействован один физический интерфейс eth0
eth0.100 и eth0.200 - аплинки
eth0.500 - eth0.600 - абоненты
Если шейпить на абонентских интерфейсах (на абонентских vlan`ах), то одновременно будет шейпиться и внешка и локалка.


Если задействовать два физических интерфейса: на eth0 повесить аплиннки, а на eth1 повесить абонентов, то на eth0 можно будет шейпить только трафик, который идёт от абонентов, а на eth1 только трафик, который идёт к абонентам. Опять же локалка будет попадать под шейпер.


Как можно проклассифицировать трафик, чтоб можно было шейпить только внешку?


Мне удалось поднять бордер на netns:
1)Пробросил vlan`ы аплинков в netns
2)Поднял 2 veth (один в глобальном netns, второй в виртуальном)
3)Настроил маршруты
4)Поднял bgp на виртуальном netns
Получилось так:
внешка <---> бордер на netns <---> глобальный netns с абонентскими вланами <---> абоненты


Теперь можно шейпить трафик в бордере netns на veth интерфейсе


Через ifb проходил максимум 1 гбит/сек
Через netns проходит 6гбит/сек

 

@ne-vlezay80 
У вас тест iperf показывает 12 гбит/сек, у меня показывает 6 гбит/сек
С чем это может быть связано? Дело в железе? 

Изменено пользователем zervu1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, zervu1boris сказал:

У вас тест iperf показывает 12 гбит/сек, у меня показывает 6 гбит/сек

Это уже плохо... Где мерял?

 

2 часа назад, zervu1boris сказал:

С чем это может быть связано? Дело в железе? 

Похоже.
А ты замерь скорость на localhost так:
 

iperf3 -s
iperf3 -c 127.0.0.1

У меня процессор AMD FX 6300

Изменено пользователем ne-vlezay80

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, ne-vlezay80 сказал:

Это уже плохо... Где мерял?

 

Похоже.
А ты замерь скорость на localhost так:
 


iperf3 -s
iperf3 -c 127.0.0.1

У меня процессор AMD FX 6300

 

На localhost тоже 6гбит/сек
У меня два процессора AMD Opteron 6172

Сделал такой же тест на древнем Core 2 Duo CPU E8400, он показал 20гбит/сек 

Сделал тест на сервере с 4мя процессорами Xeon X7560, показывает 27гбит/сек

Почему же на AMD так мало показывает

Изменено пользователем zervu1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

27 минут назад, zervu1boris сказал:

AMD Opteron 6172

Тагда надо разганять...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

16 минут назад, ne-vlezay80 сказал:

Тагда надо разганять...

На всех ядрах установлена максимальная частота 2.1ггц

 

Есть у меня второй такой же сервер с Opteron 6172, на нём поднят веб
Сделал такой же тест, 8гбит/сек показывает

 

Есть статья из 2010 года, где на таком же железе 10Г гоняют
https://nag.ru/material/18697
 

Изменено пользователем zervu1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 часов назад, zervu1boris сказал:

Есть статья из 2010 года, где на таком же железе 10Г гоняют

Так в статье тупая маршрутизация, БРАС функционал это мусорное железо легко до 1 гига и провалит. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поменял сервер, теперь 28 гбит/сек между netns
Проблема с ifb так и не решилась, но так как я перешёл на netns, то ifb теперь не нужен
Всем спасибо за помощь

[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  3.27 GBytes  28.1 Gbits/sec    0   1.31 MBytes
[  4]   1.00-2.00   sec  3.29 GBytes  28.3 Gbits/sec    0   1.31 MBytes
[  4]   2.00-3.00   sec  3.28 GBytes  28.2 Gbits/sec    0   1.31 MBytes
[  4]   3.00-4.00   sec  3.28 GBytes  28.2 Gbits/sec    0   1.31 MBytes
[  4]   4.00-5.00   sec  3.29 GBytes  28.2 Gbits/sec    0   1.31 MBytes
[  4]   5.00-6.00   sec  3.27 GBytes  28.1 Gbits/sec    0   1.31 MBytes
[  4]   6.00-7.00   sec  3.28 GBytes  28.2 Gbits/sec    0   1.31 MBytes
[  4]   7.00-8.00   sec  3.29 GBytes  28.2 Gbits/sec    0   1.31 MBytes
[  4]   8.00-9.00   sec  3.28 GBytes  28.2 Gbits/sec    0   1.31 MBytes
[  4]   9.00-10.00  sec  3.28 GBytes  28.2 Gbits/sec    0   1.31 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  32.8 GBytes  28.2 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  32.8 GBytes  28.2 Gbits/sec                  receiver

 

На всякий случай оставлю инструкцию как я настроил netns, может кому-то пригодится...

 

Схема прохождения трафика следующая:

аплинки <---> netns bras <---> глобальный netns <---> абоненты

 

1)Создал netns под названием bras

ip netns add bras

2)Создал два виртуальных интерфейса virt0 и virt1

ip link add dev virt0 type veth peer name virt1

3)Перенёс интерфейс virt1 в netns bras, присвоил ему ip-адрес и поднял его

ip link set virt1 netns bras
ip -n bras addr add 10.0.0.1/30 dev virt1
ip -n bras link set dev virt1 up

4)Присвоил ip-адрес интерфейсу virt0 в глобальном netns и поднял его

ip addr add 10.0.0.2/30 dev virt0
ip link set virt0 up

5)Перенёс в netns bras интерфейсы аплинков

ip link set dev eth0.100 netns bras
ip link set dev eth0.200 netns bras

6)Присвоил интерфейсам аплинков ip-адреса и поднял их

ip -n bras addr add 1.1.1.1/30 dev eth0.100
ip -n bras addr add 2.2.2.1/30 dev eth0.200
ip -n bras link set dev eth0.100 up
ip -n bras link set dev eth0.200 up

 

Предполагается, что абоненты находятся в подсети 10.10.10.0/24
7)Добавил статический маршрут в глобальный netns

ip route add default via 10.0.0.1

8)Добавил статический маршрут в netns bras

ip netns exec bras ip route add 10.10.10.0/24 via 10.0.0.2

Теперь в netns bras можно поднять bgp и nat.
В моём случае все ip-адреса белые, в netns bras поднят bgp, nat не используется.


Шейпить трафик нужно на интерфейсах virt0 и virt1.
 

Изменено пользователем zervu1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну вот сделал по людски, и все встало на свои места. :)

 

Теперь все это засунуть в ifup hook script, и можно жить спокойно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.