LINUX.ORG.RU
ФорумAdmin

MultiWAN на OpenWRT

 , , ,


0

1

Ребята, помогите разобраться с задачей... Все вроде как-то просто, но не получается донастроить правильно :/

Задача: Хочу сделать две подсети, каждая из которых будет ходить в интернет через свой канал wan (т.е. lan через wan, а lan2, через wan2)

Для управления решил использовать Multiwan скрипты из пакета mwan3 в Openwrt

Конфигурация

  • LANs
    • lan - 192.168.2.0/24 (br-lan)
    • lan2 - 192.168.22.0.24 (br-LAN2)
  • WANs
    • wan - dhcp (eth0.3)
    • wan2 - VPN connection (l2tp-wan2)

Добавил зоны файрвола и включил маскарадинг на ваходе с wan

  • lan -> wan
  • wan -> masq
  • lan2 ->wan2
  • wan2 -> masq

Далее настроил mwan3

  • Interfaces
    • wan
    • wan2
  • Members [lits]
  • wan_m1_w3 (wan)
  • wan2_m2_w2 (wan2)
  • Policies
    • wan_only (member wan_m1_w3)
    • wan2_only (member wan2_m1_w2)
  • Rules
    • lan1 - 192.168.2.0/24 to policy wan_only
    • lan2 - 192.168.22.0/24 to policy wan2_only

    Делаю проверку на роутере

    root@SmartBox2:~# route[br]
    Kernel IP routing table[br]
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         192.168.26.1    0.0.0.0         UG    0      0        0 eth0.3
    default         10.9.9.1        0.0.0.0         UG    1      0        0 l2tp-wan2
    10.9.9.1        *               255.255.255.255 UH    0      0        0 l2tp-wan2
    185.151.58.113  192.168.26.1    255.255.255.255 UGH   0      0        0 eth0.3
    192.168.2.0     *               255.255.255.0   U     0      0        0 br-lan
    192.168.22.0    *               255.255.255.0   U     0      0        0 br-LAN2
    192.168.26.0    *               255.255.255.0   U     0      0        0 eth0.3
    

    root@SmartBox2:~# traceroute -i eth0.3 8.8.8.8 [br]
    traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 38 byte packets[br]
    192.168.26.1 (192.168.26.1)  0.000 ms  0.000 ms  0.000 ms[br]
    192.168.8.1 (192.168.8.1)  24.004 ms  24.004 ms  28.005 ms[br]
    
    работает... пакеты идут через eth0.3 (wan)
    root@SmartBox2:~# traceroute -i l2tp-wan2 8.8.8.8 [br] 
    traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 38 byte packets[br]
    10.9.9.1 (10.9.9.1)  76.013 ms  140.024 ms  84.014 ms[br]
    192.168.0.1 (192.168.0.1)  88.015 ms  72.013 ms  68.012 ms[br]
    185.130.205.174 (185.130.205.174)  76.013 ms  88.015 ms  64.011 ms[br]
    тоже работает... пакеты идует через l2tp-wan3 (wan2)

    Проверяю на клиентах
    Клиент1 в LAN (192.168.2.24)

    traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
    smartbox2 (192.168.2.1)  2.486 ms  1.681 ms  1.521 ms
    192.168.26.1 (192.168.26.1)  1.949 ms  2.187 ms  1.940 ms
    192.168.8.1 (192.168.8.1)  20.567 ms  35.186 ms  41.730 ms
    

    работает. пакеты идут через eth0.3 (wan) на роутере
    nslookup также все резолвит

    Клиент2 в LAN2 (192.168.22.144)

    traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
    192.168.22.1 (192.168.22.1)  1.867 ms  2.196 ms  1.529 ms
    10.9.9.1 (10.9.9.1)  62.923 ms  90.560 ms  74.520 ms
    192.168.0.1 (192.168.0.1)  64.982 ms  85.442 ms  83.329 ms
    185.130.205.174 (185.130.205.174)  82.975 ms  73.417 ms  78.391 ms[br]
    

    также работает... пакеты идут через l2tp-wan2 на роутре
    nslookup резолвит адреса

    Казалось бы все хорошо и все правильно заработало И вот тут вылазят проблемы Но когда я пытаюсь зайти браузером по любому адресу, ничего не открывается «This site can’t be reached whoer.net unexpectedly closed the connection»

    Да и сервисы все не работают могут соединиться... тот же ssh не проходит

    При этом, если просто удалить на роутере один из default маршрутов
    default 192.168.26.1 0.0.0.0 UG 0 0 0 eth0.3

    Тогда получится

    root@SmartBox2:~# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         10.9.9.1        0.0.0.0         UG    1      0        0 l2tp-wan2
    10.9.9.1        *               255.255.255.255 UH    0      0        0 l2tp-wan2
    185.151.58.113  192.168.26.1    255.255.255.255 UGH   0      0        0 eth0.3
    192.168.2.0     *               255.255.255.0   U     0      0        0 br-lan
    192.168.22.0    *               255.255.255.0   U     0      0        0 br-LAN2
    192.168.26.0    *               255.255.255.0   U     0      0        0 eth0.3
    

    и браузер начинает работать... и все пакеты, как и положено идут через l2tp-wan3 (заходил на 2ip.ru и пишет адрес VPN сервера)

    При этом на клиентах в подсети LAN пропадает возможность выхода в инет (хотя traceroute и nslookup все также продолжают работать)

    Подскажите, плиз, что тут у меня не так... Где я ошибку допускаю

    MWAN Config

    config rule 'lan1'
    option src_ip '192.168.2.0/24'
    option proto 'all'
    option use_policy 'wan_only'
    
    config rule 'lan2'
    option src_ip '192.168.22.0/24'
    option proto 'all'
    option use_policy 'wan2_only'
    
    config interface 'wan'
    option enabled '1'
    list track_ip '8.8.4.4'
    list track_ip '8.8.8.8'
    list track_ip '208.67.222.222'
    list track_ip '208.67.220.220'
    option reliability '2'
    option timeout '2'
    option interval '5'
    option count '3'
    option down '10'
    option up '2'
    
    config interface 'wan2'
    list track_ip '8.8.8.8'
    list track_ip '208.67.220.220'
    option reliability '1'
    option count '1'
    option timeout '2'
    option interval '5'
    option down '3'
    option up '8'
    option enabled '1'
    
    config member 'wan_m1_w3'
    option interface 'wan'
    option metric '1'
    option weight '3'
    
    config member 'wan_m2_w3'
    option interface 'wan'
    option metric '2'
    option weight '3'
    
    config member 'wan2_m1_w2'
    option interface 'wan2'
    option metric '1'
    option weight '2'
    
    config member 'wan2_m2_w2'
    option interface 'wan2'
    option metric '2'
    option weight '2'
    
    config policy 'wan_only'
    list use_member 'wan_m1_w3'
    



Последнее исправление: rikoilas (всего исправлений: 11)

Ответ на: комментарий от system-root

ну а причем здесь проблеимы с MTU? пакеты же идут (пинг тот же) да и если убрать default gw основной сети, то весь трафик благополучно идет через тунель если бы были проблемы с MTU, то либо вообще не ходил бы трафик через тунель, либо частично терялся...

rikoilas
() автор топика
Ответ на: комментарий от rikoilas

ты проверил, не? когда пинги идут, а браузер не открывает — это и называется «частично терялся»

system-root ★★★★★
()

Вы используете устаревшие утилиты из net-utils (route), которые не дадут вам понять, как именно осуществляется маршрутизация.

mwan3 создает несколько правил (ip rule) для нескольких таблиц маршрутизации (ip route show table all), в которые вносит соединения путем установки connmark на соединение через iptables.

Отлаживайте механизм через ip route get 8.8.8.8 src 192.168.2.1 и отладку правил iptables.

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

а есть какая толковая статья, как отлаживать этот механизм и правила iptables?

если честно, то в выводе ip route show all я не увидел больше информации, чем в старевшем route

default via 192.168.16.1 dev eth0.2
default via 10.9.9.1 dev l2tp-wan2
10.9.9.1 dev l2tp-wan2 scope link  src 10.9.9.22
185.151.58.113 via 192.168.16.1 dev eth0.2
192.168.16.0/24 dev eth0.2 scope link  src 192.168.16.50
192.168.71.0/24 dev br-lan scope link  src 192.168.71.1
192.168.171.0/24 dev br-lan2 scope link  src 192.168.171.1

rikoilas
() автор топика
Ответ на: комментарий от ValdikSS

ну в общем решил вопрос решение через создание отдельной таблицы со вторым дефолтным маршрутом для второй сети и перенаправлением трафика из второй сети в эту таблицу для маршрутизации.

подробно о решении описано тут https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

скрипты для автоконфигурирования поместил в ip-up

остался один момент - при перезагрузке иногда не встает wan2 (l2tp). Как правильно это контролировать, а также перезапускать при обрыве?

rikoilas
() автор топика
Ответ на: комментарий от rikoilas

ну в общем решил вопрос решение через создание отдельной таблицы со вторым дефолтным маршрутом для второй сети и перенаправлением трафика из второй сети в эту таблицу для маршрутизации.

Собственно этот вариант и имел ввиду когда кидал ссылку))

skyman ★★★
()
Ответ на: комментарий от rikoilas

Это и делает mwan3, он для этого создан, чтобы эти операции автоматизировать. Вы уверены, что настроили его правильно?

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Ну конечно я не уверен! :) Иначе я бы просто не писал тут на форуме...

На сколько я понял его (mwan) логику работы, то все необходимые правила созданы... но не работает... Возможно не разобрался в тонкостях... Хотелось бы конечно, чтобы через пакет настраивать работу, а не ручным запуском правил в if-up, как сейчас сделано...

Буду признателен, если глянете на конфиг в первом посте и подскажите, где же ошибка... и поможете разобраться

rikoilas
() автор топика
Ответ на: комментарий от rikoilas

Я давно не пользовался mwan3, и вряд ли смогу вам помочь. Попробуйте спросить на форуме openwrt, в теме mwan3.

ValdikSS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.