Jump to content

@Cramac Интересно, откуда у вас при такой задаче ассиметрия полезла, или просто он второй дефаулт не видит...

 Можно еще с 2 попробовать.

Share this post


Link to post
Share on other sites

@Cramac Поковырялся в исходниках и на форуме. Жаль что Дмитрий комментариев в коде в принципе не делает. Про документацию вообще молчу.

 

Но судя по тому, что я вижу с опцией nat=1 NAT работает 1:1 простой подменой в адреса пакете. Т.е. не обращается к функциям КОНТРАКА СОВСЕМ. Подмена происходит в момент прохождения пакета через виртуальный интерфейс на уровне модуля ядра ipoe.

 

Там "простенький" NAT, но реализована также подмена в заголовках для TCP,UDP и ICMP, но во всех ли нужных типах, не знаю, не спец. Закомменченных участков кода нет - значит скорее всего "функционал доделан".

 

Если интересно - функция ipoe_do_nat() в /drivers/ipoe/

Share this post


Link to post
Share on other sites

Добрый день. Подскажите, как настроить сетевые интерфейсы в схеме q-in-q + ip unnumberd. Куда прописывать ip address gateway? на looback интерфейс? 

Например:


В конфиге

[ipoe]
ip-unnumbered=1
nat=0
gw-ip-address=10.1.0.1/16
vlan-mon=re:vlan2[0-9][0-9][0-9],101-229
vlan-timeout=1200
vlan-name=%I.%N
interface=re:vlan2[0-9][0-9][0-9]\.[1-2][0-9][0-9],mode=L2,start=dhcpv4,shared=0,mtu=1500

Accel создает  маршруты
ip ro add 10.1.0.2/32 dev vlan2000.101 src 10.0.1.1
ip ro add 10.1.0.3/32 dev vlan2000.102 src 10.0.1.1


Сетевый настройки

auto ens4f1
iface ens4f1 inet manual
 
Скрипт создает vlans
/bin/ip link add link ${IFACE} name vlan$i type vlan id $i
/bin/ip link set vlan$i up


Нужно ли добавить на ens4f1 

ip ro unreachable 10.1.0.0/16
ip addr add 10.1.0.1/32 dev lo

или

auto lo1
iface lo1 inet static
address 10.1.0.1/16

или accel все создает сам?

Спасибо.

Share this post


Link to post
Share on other sites

имеется:

 accel-ppp-1.12 (из ebuild)

 5.4.48-gentoo

 

конфиг accel для ipoe. Остальное по дефолту.

[ipoe]
  verbose=1
  username=ifname
  lease-time=600
  renew-time=300
  max-lease-time=3600
  shared=1
  ifcfg=0
  mode=L2
  start=dhcpv4
  interface=vl567
  gw-ip-address=172.17.0.1/16

проблема:

 не стартует сессия:

[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: ipoe: activate session
[2020-07-23 18:54:34.677] libnetlink: RTNETLINK answers: Invalid argument
[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: ipoe: nl_modify: Invalid argument
[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: terminate
[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: ipoe: session finished

Этот же конфиг прекрасно работает для ядра: 3.14.14 с той же версией accel. Интерфейс создаётся. Всё отлично.

Для варианта shared=0 всё работает отлично и с ядром 5.4.48 (но в этом случае не создаётся интерфейс). Это не то что нужно для работы.

Кто то сталкивался? Как я понимаю, что то поменялось и accel не может создать на этом ядре по netlink интефейс.
Кто с каким из последних ядер, использовал успешно accel этой версии ?

 

удалось протестировать на:

3.14.14-gentoo - работает

4.19.129-gentoo - работает

5.4.48-gentoo - не работает
5.7.9-gentoo - не работает

 

 

Edited by bomberman
уточнения по версиям ядер.

Share this post


Link to post
Share on other sites

В 24.07.2020 в 16:04, bomberman сказал:

имеется:

 accel-ppp-1.12 (из ebuild)

 5.4.48-gentoo

 

конфиг accel для ipoe. Остальное по дефолту.


[ipoe]
  verbose=1
  username=ifname
  lease-time=600
  renew-time=300
  max-lease-time=3600
  shared=1
  ifcfg=0
  mode=L2
  start=dhcpv4
  interface=vl567
  gw-ip-address=172.17.0.1/16

проблема:

 не стартует сессия:


[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: ipoe: activate session
[2020-07-23 18:54:34.677] libnetlink: RTNETLINK answers: Invalid argument
[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: ipoe: nl_modify: Invalid argument
[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: terminate
[2020-07-23 18:54:34.677] ipoe0: e8d823e151aa07fa: ipoe: session finished

Этот же конфиг прекрасно работает для ядра: 3.14.14 с той же версией accel. Интерфейс создаётся. Всё отлично.

Для варианта shared=0 всё работает отлично и с ядром 5.4.48 (но в этом случае не создаётся интерфейс). Это не то что нужно для работы.

Кто то сталкивался? Как я понимаю, что то поменялось и accel не может создать на этом ядре по netlink интефейс.
Кто с каким из последних ядер, использовал успешно accel этой версии ?

 

удалось протестировать на:

3.14.14-gentoo - работает

4.19.129-gentoo - работает

5.4.48-gentoo - не работает
5.7.9-gentoo - не работает

 

 

 

Для истории: этот вопрос решился, необходимо было удалить старые модули.

Share this post


Link to post
Share on other sites

Пара вопросов по accel-ppp ver. 6c514056471dfdf030d69fb9fda443047a8cc964, на Linux 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux.

 

1.  Как эта сборка отнесётся к bonding? Вернее даже, не собственно accel, а его модуль vlan-mon в IPoE+QinQ конфигурации.

На "противоположной стороне" Dlink DGS-3120-24SC  с LACP.

Читал в начале темы, что с бондингом были проблемы. Есть ли они сейчас?

 

2. Этот вопрос больше, наверное, про собственно Debian, но всё же, думаю, и accel-ю он не чужд.

Из каких соображений бондингу предлагается устанавливать MTU=9000?

Пример конфигурации вот здесь.

 

P.S. Собрал немало бондинг-интерфейсов на CentOS, и нигде не указывал MTU, к тому же такой совсем не мелкий.. 

Share this post


Link to post
Share on other sites

@AlKov 

1. Accel использует системные интерфейсы, никакой разницы нет на физическом запускать или на бондинге.

У нас на бонде работало еще с версии 1.9

2. MTU 9000 "от фонаря". Увеличивать его нужно для eth и бонда именно для qinq трафика в сторону клиентов, 1504 или больше значения не имеет.

Share this post


Link to post
Share on other sites

@kayot 

Вгляните, пожалуйста, всё ли так в конфигах, на предмет "илишеств", или "отсутствия"?

 

#
auto eth0
iface eth0 inet manual
       mtu 1526


auto eth1
iface eth1 inet manual
       mtu 1526


auto eth2
iface eth2 inet manual


auto eth3
iface eth3 inet manual

auto bond0
iface bond0 inet manual
  bond-mode 802.3ad
  bond-miimon 100
  bond_xmit_hash_policy layer2+3
  bond_lacp_rate fast
  bond-slaves eth0 eth1
  mtu 1526
#
auto bond1
iface bond1 inet manual
    bond-mode 802.3ad
    bond-miimon 100
    bond_xmit_hash_policy layer2+3
    bond_lacp_rate fast
    bond-slaves eth2 eth3
#
auto bond1.9
iface bond1.9 inet static
        address 10.254.254.18/29
        gateway 10.254.254.22
        dns-nameservers 8.8.8.8
        dns-search mydomain.com
        vlan_raw_device bond1
#

auto bond0.3612
iface bond0.3612 inet manual
        vlan_raw_device bond0
        mtu 1526

#..... etc ... другие "базовые" интерфейсы для vlan-mon QinQ

 

bond0 смотрит в сторону QinQ коиентов, bond1 - в сторону роутера.

В собственно конфиге accel будет так:

....

vlan-mon=re:bond0\.3[5-9][0-9][0-9],100-2727
vlan-timeout=300
interface=re:bond0\.\d{4}\.\d{3},mtu=1500
check-mac-change=1

....

Share this post


Link to post
Share on other sites

1 час назад, kayot сказал:

vlan_raw_device bond0

        mtu 1526

Это лишнее в интерфейсах для vlan-mon.

Лишнее что? MTU, или обе строки?

Особенно смущает "ненужность" первой строки. Это же фактически указание для ОС, к какому физ. интерфейсу прицепить vlan.

У меня сейчас именно так и работает, за исключением того, что для vlan_raw_device указан eth0.

Или vlan-mon сам "разберётся", к какому интерфейсу ОС привязать QinQ интерфейс?

 

Share this post


Link to post
Share on other sites

@AlKov 

При системе именования dev.vid эти уточнения системе не нужны, все и так однозначно. И mtu для вланов менять не нужно, только для корневых интерфейсов.

Это все стандартные системные вещи никак не связанные с vlan-mon и аццелем вообще.

Аццель создаст интерфейс поверх указанного, не важно eth0 это или bond0.2222.

Share this post


Link to post
Share on other sites

Коллеги, доброго дня.

Подскажите пожалуйста,а то я не совсем в теме - в линуксе реализована многоядерная обработка рррое трафика на 10г сетевых картах от intel  или mellanox ? Т.е. не будет ли рррое трафик весь обрабатываться одним ядром,как это сейчас в BSD системах работает?

Спасибо заранее )

Share this post


Link to post
Share on other sites

7 часов назад, ingvarrwvw сказал:

Коллеги, доброго дня.

Подскажите пожалуйста,а то я не совсем в теме - в линуксе реализована многоядерная обработка рррое трафика на 10г сетевых картах от intel  или mellanox ? Т.е. не будет ли рррое трафик весь обрабатываться одним ядром,как это сейчас в BSD системах работает?

Спасибо заранее )

Обработка как пппое так и пптп в современных версиях линукса реализуется на уровне ядра, в ходе штатного прохождения пакетов по ядру. Эта "весчь" была многопоточной практически с момента рождения. Accel поддерживает многопоточность, как я помню, также с "рождения".

http://unix-way.ru/index.php/poleznyashki-linux/118-linux-printsipy-raboty-s-setevoj-podsistemoj

Share this post


Link to post
Share on other sites

10 минут назад, sdy_moscow сказал:

Accel поддерживает многопоточность, как я помню, также с "рождения"

А сетевые о которых спрашивал человек - не поддерживают, и дефолтно все свалится в 1 очередь и на 1 ядро.

В линуксе есть волшебная штука RPS, решающая проблемы с любыми картами и любым трафиком. Можно что угодно распределить как угодно.

Share this post


Link to post
Share on other sites

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

А сетевые о которых спрашивал человек - не поддерживают, и дефолтно все свалится в 1 очередь и на 1 ядро.

В линуксе есть волшебная штука RPS, решающая проблемы с любыми картами и любым трафиком. Можно что угодно распределить как угодно.

Чушь пишите!

http://www.intel.com/content/www/us/en/embedded/products/networking/ethernet-x550-datasheet.html

https://www.intel.com/content/www/us/en/products/docs/network-io/ethernet/network-adapters/ethernet-x550-brief.html

Share this post


Link to post
Share on other sites

В приведенной вами ссылке на спецификацию карты написано что RSS только для  IPv4v6 , TCP/UDP. Как я понимаю рррое по разным очередям она раскладывать не разбежится (

Поддержку L2 для RSS увидел только в картах интела х710... про RPS надо просвятиться, спасибо за информацию.

Share this post


Link to post
Share on other sites

5 минут назад, ingvarrwvw сказал:

В приведенной вами ссылке на спецификацию карты написано что RSS только для  IPv4v6 , TCP/UDP. Как я понимаю рррое по разным очередям она раскладывать не разбежится (

Поддержку L2 для RSS увидел только в картах интела х710... про RPS надо просвятиться, спасибо за информацию.

В связке с accel обработка pptp по ядрам процессора разбегается, ppoe - тоже. Потоки до 5 ГБит на i7 без ната - легко крутятся с равномерной загрузкой ядер.

Не знаю, в чем ваша специфическая задача, и что вы хотите получить. Но,  насколько я помню код, само по себе прерывание от сетевой платы в ядре роли не играет, обработка пакетов производится ядром линукса в отдельных потоках.

Share this post


Link to post
Share on other sites

Задача вполне тривиальная - есть несколько брасов на BSD для рррое, думаем куда двигаться дальше - расти вширь или мигрировать на linux и смотреть что получится

Share this post


Link to post
Share on other sites

Только что, ingvarrwvw сказал:

Задача вполне тривиальная - есть несколько брасов на BSD для рррое, думаем куда двигаться дальше - расти вширь или мигрировать на linux и смотреть что получится

А какое железо и сколько жует сейчас?

 

1 минуту назад, kayot сказал:

@sdy_moscow 

Ты порешь дичь..

Аналогично. Я не понимаю о чем мы сейчас спорим.

Share this post


Link to post
Share on other sites

17 минут назад, sdy_moscow сказал:

Но,  насколько я помню код, само по себе прерывание от сетевой платы в ядре роли не играет, обработка пакетов производится ядром линукса в отдельных потоках

Как раз вся обработка идёт в контенте этого прерывания. И если входящий трафик падает в 1 очередь-1 прерывание-1 ядро.

Share this post


Link to post
Share on other sites

3 минуты назад, kayot сказал:

Как раз вся обработка идёт в контенте этого прерывания. И если входящий трафик падает в 1 очередь-1 прерывание-1 ядро.

И каким-же чудом у нас на серверах равномерно распределяется нагрузка по ядрам? Или это обман зрения?

 

В догонку. Не надо путать soft-irq и hardware-irq.

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.