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

MARK или CONNMARK ?

Поставлена задача - разделить трафик между двумя аплинками. Разделить статически - один IP - "туда", другой - "сюда".

На машине (CentOS 6.10) NAT для абонентских PPPoE, прилетающих с отдельных NAS серверов. Маршруты NAS-ы отдают серверу rip-ом.

Списки IP для каждого аплинка находятся в таблицах ipset - isp1 и isp2 соответственно.

Для решения задачи использую материал вот этой статьи.

Все вроде понятно, но.. Смущает наличие NAT.

В статье рекомендуется использовать CONNMARK, т.е. маркировать новые соединения. Подходит ли это для моего случая?

Может здесь необходимо использовать маркировку пакетов (MARK)?

 

Share this post


Link to post
Share on other sites

mark - для routing table.

connmark - для маркировки соединений. чтобы потом матчить пакеты и вешать на них mark, либо --restore-mark для восстановления метки пакета из метки соединения, либо еще для чего-то подобного.

Share this post


Link to post
Share on other sites

В 10.12.2021 в 17:46, NiTr0 сказал:

mark - для routing table.

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

В 10.12.2021 в 17:46, NiTr0 сказал:

connmark - для маркировки соединений.

Т.е. для входящих соединений, предназначенных собственно маршрутизатору (INPUT в терминологии iptables)?

Если так, то мне это и не нужно, т.к. основная задача - это обработка транзитного трафика.

Или я ошибаюсь?

 

И еще - нужна ли вообще, в моем случае, маркировка пакетов/соединений? 

Может это все и без нее можно сделать, средствами iproute2 ?

Share this post


Link to post
Share on other sites

В 10.12.2021 в 23:07, AlKov сказал:

И еще - нужна ли вообще, в моем случае, маркировка пакетов/соединений?

Вы можете ограничиться SNAT с разными --to-source для разных клиентских IP. Не забудьте при этом соответствующее ip rule from xxx, чтобы трафик уходил в нужный интерфейс.

Маркировка нужна только, если вы хотите чего-то странного или очень сложного, а также если хотите перенаправить трафик в другой интерфейс без NAT.

Share this post


Link to post
Share on other sites

В 10.12.2021 в 21:53, [anp/hsw] сказал:

Вы можете ограничиться SNAT с разными --to-source для разных клиентских IP. Не забудьте при этом соответствующее ip rule from xxx, чтобы трафик уходил в нужный интерфейс.

А вот этого и не получается. У меня SNAT в диапазон (--persistent).

В 10.12.2021 в 21:53, [anp/hsw] сказал:

Маркировка нужна только, если вы хотите чего-то странного

Вот это, наверное, оно и есть.. Мне необходимо одни IP отправлять в один аплинк, другие - в другой. А подсеть одна - 172.16.0.0/12

Для этого я их раскидываю в разные таблицы ipset.

С ip rule это, наверное, без меток не проканает..

Значит все-таки надо метить пакетики MARK-ом.. А вот CONNMARK, похоже, не нужен.

Вот так, например, метить

iptables -t mangle -A PREROUTING -m set --match-set isp1 src -j MARK --set-xmark 0xa/0xffffffff
iptables -t mangle -A PREROUTING -m set --match-set isp2 src -j MARK --set-xmark 0xb/0xffffffff

А вот так маршрутизировать - (ip rule)

fwmark 10 table isp1
fwmark 11 table isp2
to 192.168.0.0/16 table main
to 10.0.0.0/8 table main

Вообщем, будем попробовать..

Share this post


Link to post
Share on other sites

ДокладАю - все взлетело успешно: мальчики - налево, девочки - направо.

По "технологии" из предыдущего поста.

 

Share this post


Link to post
Share on other sites

В 10.12.2021 в 18:07, AlKov сказал:

Т.е. для входящих соединений, предназначенных собственно маршрутизатору (INPUT в терминологии iptables)?

для любых соединений. в т.ч. транзитных. ессно, если они попадают в conntrack таблицу. правило срабатывает на один пакет - и все пакеты сессии имеют connmark метку. вот только сделать из нее обычную метку, которую увидит iproute2, надо будет отдельным правилом.

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.