Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Добрый день. Какие образом можно реализовать маршрутизацию трафика от конкретного клиента только в  конкретный тоннель, как на энтерпрайз устройствах? То есть необходимо, чтобы трафик устройства 192.168.1.10 (условно) всегда направлялся в тоннель wireguard, а трафик устройства 192.168.1.11 (условно) всегда направлялся в тоннель ipsec

Опубликовано
12 часа назад, baddyt сказал:

Добрый день. Какие образом можно реализовать маршрутизацию трафика от конкретного клиента только в  конкретный тоннель, как на энтерпрайз устройствах? То есть необходимо, чтобы трафик устройства 192.168.1.10 (условно) всегда направлялся в тоннель wireguard, а трафик устройства 192.168.1.11 (условно) всегда направлялся в тоннель ipsec

Поищите посты на данном форуме

Далее необходимы чуток познания в установке Entware + написания скрипта для автом.работы.

 

На пальцах - на роутере создаются профили (в нужный профиль включен нужный канал) -> для каждого профиля создается таблица маршрутизации -> необходимо поместить данного клиента ОН ИМЕЕТ IP в нужную таблицу маршрутизации. Первая часть все делает прошивка, вторая поиск нужной table через WEB-cli (команда "show ip policy" параметры "description": "WG", "mark": "ffffd00", "table4": 42), третья поместить данного клиента в table 42.

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

Тут на форуме много примеров для использования table маршрутизации.

 

******

Так например пример - на клиенте локальной сети Windows есть приложение например торрент клиент (это приложение, хотя можно и любое другое, Windows настройках оно определяется как имя запуска файла) которое нужно завернуть в нужный нам канал (выхода в интернет) отличный от канала для самого клиента/ Ниже пример когда клиент весь в профиль 0xffffd00 а приложение в профиль 0xffffd01 или можно оставить клиента в основном профиле а приложение в один единственный профиль. Приложение может быть любым например бразур A по одному каналу, а браузер B по другому.

1. Настройки Windows для маркировки пакетов данного приложения (есть в интернете с полным описанием что и как это сделать)

2. Скрипт для роутера будет выглядеть как пример

Скрытый текст
/opt/etc/ndm/netfilter.d -> 100-fwmarks.sh

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'dscp')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -j CONNMARK --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -m dscp --dscp 63 -j MARK --set-mark 0xffffd01
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -j MARK --set-mark 0xffffd00
fi
exit 0


Chain _NDM_HOTSPOT_PRERT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 1899  295K MARK       all  --  br0    *       192.168.1.20         0.0.0.0/0            MARK set 0xffffd00
  316 42283 MARK       all  --  br0    *       192.168.1.20         0.0.0.0/0            DSCP match 0x3f MARK set 0xffffd01
 1914  297K CONNMARK   all  --  br0    *       192.168.1.20         0.0.0.0/0            CONNMARK save
 1918  298K RETURN     all  --  br0    *       192.168.1.20         0.0.0.0/0

~ # lsmod | grep dscp
xt_dscp                 1953  1
~ # 

где

-s 192.168.1.20/32 = источник, клиент локальной сети

-m dscp --dscp 63 = пакеты от приложения Windows клиента

--set-mark 0xffffd01 = профиль созданный в ПО роутера и в котором канал выхода в интернет например А

--set-mark 0xffffd00 = профиль созданный в ПО роутера и в котором канал выхода в интернет например B

NDM_HOTSPOT_PRERT = цепочка в которой будет размещены данные правила

В итоге маркированные пакеты будут уходить через нужные table по нужным каналам.

Скрытый текст
show ip policy 


"Policy0": {
            "description": "Cloud",
            "mark": "ffffd00",
            "table4": 42
...
       },
        "Policy1": {
            "description": "In-2",
            "mark": "ffffd01",
            "table4": 43
...
       },
        "Policy2": {
            "description": "Tor",
            "mark": "ffffd02",
            "table4": 44
...

 

 

 

Ваш вопрос для темы развития - так как по моему в ПО для этого уже все имеется.

 

Опубликовано
В 30.07.2023 в 10:10, vasek00 сказал:

Поищите посты на данном форуме

Далее необходимы чуток познания в установке Entware + написания скрипта для автом.работы.

 

На пальцах - на роутере создаются профили (в нужный профиль включен нужный канал) -> для каждого профиля создается таблица маршрутизации -> необходимо поместить данного клиента ОН ИМЕЕТ IP в нужную таблицу маршрутизации. Первая часть все делает прошивка, вторая поиск нужной table через WEB-cli (команда "show ip policy" параметры "description": "WG", "mark": "ffffd00", "table4": 42), третья поместить данного клиента в table 42.

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

Тут на форуме много примеров для использования table маршрутизации.

 

******

Так например пример - на клиенте локальной сети Windows есть приложение например торрент клиент (это приложение, хотя можно и любое другое, Windows настройках оно определяется как имя запуска файла) которое нужно завернуть в нужный нам канал (выхода в интернет) отличный от канала для самого клиента/ Ниже пример когда клиент весь в профиль 0xffffd00 а приложение в профиль 0xffffd01 или можно оставить клиента в основном профиле а приложение в один единственный профиль. Приложение может быть любым например бразур A по одному каналу, а браузер B по другому.

1. Настройки Windows для маркировки пакетов данного приложения (есть в интернете с полным описанием что и как это сделать)

2. Скрипт для роутера будет выглядеть как пример

  Показать содержимое
/opt/etc/ndm/netfilter.d -> 100-fwmarks.sh

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'dscp')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -j CONNMARK --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -m dscp --dscp 63 -j MARK --set-mark 0xffffd01
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.1.20/32 -j MARK --set-mark 0xffffd00
fi
exit 0


Chain _NDM_HOTSPOT_PRERT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 1899  295K MARK       all  --  br0    *       192.168.1.20         0.0.0.0/0            MARK set 0xffffd00
  316 42283 MARK       all  --  br0    *       192.168.1.20         0.0.0.0/0            DSCP match 0x3f MARK set 0xffffd01
 1914  297K CONNMARK   all  --  br0    *       192.168.1.20         0.0.0.0/0            CONNMARK save
 1918  298K RETURN     all  --  br0    *       192.168.1.20         0.0.0.0/0

~ # lsmod | grep dscp
xt_dscp                 1953  1
~ # 

где

-s 192.168.1.20/32 = источник, клиент локальной сети

-m dscp --dscp 63 = пакеты от приложения Windows клиента

--set-mark 0xffffd01 = профиль созданный в ПО роутера и в котором канал выхода в интернет например А

--set-mark 0xffffd00 = профиль созданный в ПО роутера и в котором канал выхода в интернет например B

NDM_HOTSPOT_PRERT = цепочка в которой будет размещены данные правила

В итоге маркированные пакеты будут уходить через нужные table по нужным каналам.

  Показать содержимое
show ip policy 


"Policy0": {
            "description": "Cloud",
            "mark": "ffffd00",
            "table4": 42
...
       },
        "Policy1": {
            "description": "In-2",
            "mark": "ffffd01",
            "table4": 43
...
       },
        "Policy2": {
            "description": "Tor",
            "mark": "ffffd02",
            "table4": 44
...

 

 

 

Ваш вопрос для темы развития - так как по моему в ПО для этого уже все имеется.

 

А зачем так сложно? разве это не будет работать просто с профилями как вы и описали, в нужный профиль добавляем зарегистрированного клиента и все, весь трафик идет через него от определенного клиента.

Опубликовано (изменено)
29 минут назад, Monstr86 сказал:

А зачем так сложно? разве это не будет работать просто с профилями как вы и описали, в нужный профиль добавляем зарегистрированного клиента и все, весь трафик идет через него от определенного клиента.

В вашем вопросе есть вводная - весь трафик идет через него

В описанном случае выше клиент один 192.168.1.100 но он хочет :

1. для приложения ААААААА выход через канал - например инет1

2. остальные приложения пустить через канал - например инет2

все это на одном клиенте

 

Попробуйте удаленного клиента который подключен к роутеру по VPN каналу - добавьте его в нужный профиль.

Изменено пользователем vasek00
Опубликовано
10 минут назад, vasek00 сказал:

В вашем вопросе есть вводная - весь трафик идет через него

В описанном случае выше клиент один 192.168.1.100 но он хочет :

1. для приложения ААААААА выход через канал - например инет1

2. остальные приложения пустить через канал - например инет2

все это на одном клиенте

 

Попробуйте удаленного клиента который подключен к роутеру по VPN каналу - добавьте его в нужный профиль.

Да нет же, почитайте Топик стартера :) там четко написано про два разных устройства.

В 29.07.2023 в 21:01, baddyt сказал:

Добрый день. Какие образом можно реализовать маршрутизацию трафика от конкретного клиента только в  конкретный тоннель, как на энтерпрайз устройствах? То есть необходимо, чтобы трафик устройства 192.168.1.10 (условно) всегда направлялся в тоннель wireguard, а трафик устройства 192.168.1.11 (условно) всегда направлялся в тоннель ipsec

вот

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.