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

спасибо за помощь. Проблема была в 

rp_filter

задал =0 и все пошло.

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


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

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

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

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


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

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

 

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

 

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

 

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

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


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

Добрый день. Подскажите, как настроить сетевые интерфейсы в схеме 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 все создает сам?

Спасибо.

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


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

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

ip address gateway

никуда кроме конфига акцеля

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


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

имеется:

 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 - не работает

 

 

Изменено пользователем bomberman
уточнения по версиям ядер.

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


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

спросите в телеге, после 1.12 было много изменений

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


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

В 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 - не работает

 

 

 

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

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


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

Пара вопросов по 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, к тому же такой совсем не мелкий.. 

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


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

@AlKov 

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

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

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

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


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

@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

....

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


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

vlan_raw_device bond0

        mtu 1526

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

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


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

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

vlan_raw_device bond0

        mtu 1526

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

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

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

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

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

 

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


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

@AlKov 

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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

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


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

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

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


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

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

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

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

 

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

@sdy_moscow 

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

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

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


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

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

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

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

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


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

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

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

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

 

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

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


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

Join the conversation

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

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

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

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

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

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

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