Два Интернет провайдера - Policy Routing



  • Два Интернет провайдера - Policy Routing. : WAN-1, WAN-2 и LAN.

    На внутр. сети у нас есть сервер, трафик с которого мы хотим разделить: SIP и RTP хотим пустить через первого провайдера, а любой другой трафик - через второго (быстрого)

    Слышал, что для этого нужны правила Firewall с указанием на Gateway. А как насчёт NAT ?

    Кто что знает на эту тему, поделитесь инфой, пожалуйста



  • @strannik said in Два Интернет провайдера - Policy Routing:

    Слышал, что для этого нужны правила Firewall с указанием на Gateway. А как насчёт NAT ?

    NAT в смысле доступа LAN в интернет? Это pfSense делает автоматически. При желании это "автоматически" вы сможете настроить под себя в Outbound NAT от дополнения правил до полной замены на свои.
    Для Inbound NAT (Port Forward) достаточно указать входящий интерфейс (WAN-1 или WAN-2).



  • Спасибо за совет по Inbound NAT. Значит я просто поменяю входной интерфейс на WAN-2

    А вот Outbound NAT не совсем понятно: дело в том, что "Автоматически" у нас давно отключена - NAT только вручную (AON). Так что добавляя очередной VLAN я всегда добавляю и соотв. Outbound-NAT правило.

    Нам нужно добиться, чтобы доступ в Интернет (Windows Updates и т.д.) с этого сервера остались на старом WAN-1, а голос (SIP, RRP) направить через WAN-2. То есть, Sourse Address - один, а трафик нужно запустить на два разных WAN



  • @strannik said in Два Интернет провайдера - Policy Routing:

    NAT только вручную (AON)

    AON - это ведь по идее Automatic?

    @strannik said in Два Интернет провайдера - Policy Routing:

    Нам нужно добиться, чтобы доступ в Интернет (Windows Updates и т.д.) с этого сервера остались на старом WAN-1, а голос (SIP, RRP) направить через WAN-2. То есть, Sourse Address - один, а трафик нужно запустить на два разных WAN

    Это можно сделать создав правило(а) на (V)LAN, оперируя source IP, dest IP и портами назначения и указанием шлюза конкретного ISP .
    Это(и) правило(а) должно(ы) быть выше, чем "default LAN to ANY"
    После создания такого правила - reset states или перезагрузка.

    Если таких ПК более одного их правильнее объединить в alias и этот alias использовать в правиле как source.



  • Спасибо за советы, pigbrother

    Я пытаюсь имитировать сеть с двумя "провайдерами" в VirtualBox, чтобы иметь возможность проверить pfsense до того, как применять в конторе.

    Прилагаю картинку WAN-1, WAN-2, LAN. Кто что думает - будет такое работать ?
    0_1534075189328_Virtual Dual-WAN Lab.png



  • Не очень понятно, как работает "Виртуал. роутер" на картинке. И ваше мнение от того, как будет работать pfSense с с двумя провайдерами может целиком зависеть именно от него.
    По сути вопроса - с точки зрения работы с multiwan - pfSense, IMHO, весьма логичное, просто настраиваемое и надежное решение.
    В прочих аспектах, впрочем, - тоже.



  • Решил не связываться с VirtualBox и сделать всё в железе. Надеюсь на таком стэнде проверить Policy-Routing и ещё - Failover

    Как думаете, будет такое работать ?

    0_1534088085824_Physical Dual-WAN Lab.png



  • Схемку собрал и теперь отрабатываю Policy-Routing и Advanced Outbound NAT.
    Всё работает, кроме Port Forwarding.

    --- Дополнения к картинке ---

    1. Static Routes на домашнем роутере НЕ НУЖНЫ так как pfsense делает трансляцию адресов, которая скрывает Source-адреса с LAN-сегмента за pfsense (192.168.10.0/24)

    2. IP на WAN-1 и WAN-2 интерфейсах могут быть не-статик. Потому что в настройках pfsense фигурирует "WAN address" то есть - любой в пределах соотв. subnet.



  • Доброго.

    Всё работает, кроме Port Forwarding.

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



  • Werter, Спасибо за совет. Значит дл я Port forwarding надо менять не только Интерфейс, но и Шлюз. Учту...

    Кстати о Шлюзах : в случае с с двумя провайдерами - оба назначать как Default Gateway, или только одного ?



  • @strannik said in Два Интернет провайдера - Policy Routing:

    оба назначать как Default Gateway, или только одного

    Одного.
    А что, оно дает выбрать оба?



  • pigbro, я имел в виду - в настройках System->Routing->Gateways->Edit. Там на каждый gateway можно поставить галочку "Default Gateway". Таким образом, у меня провайдеров два и шлюзов тоже два.

    Оба шлюза будем использовать (для разного трафика), Gateway Group делать не будем. Пока что я оставил только быстрого провайдера, как основного - то есть Default. Потому, что через медленного провайдера мы хотим оставить только VoIP трафик.

    Правильно-ли сделан дизайн или надо что-то менять



  • @strannik

    **оба назначать как Default Gateway, или только одного**
    

    А разве можно назначить оба Default Gateway ?

    Назначается какой нибуть один.



  • @strannik said in Два Интернет провайдера - Policy Routing:

    Правильно-ли сделан дизайн или надо что-то менять

    Правильно. Создание\несоздание группы ни на что не влияет, просто после создания можно будет указать "групповой" шлюз - это расширит возможность управлять балансировкой\файловером.
    Шлюз по умолчанию pfSense при желании умеет переключать сам, но нужен он только самому pfSense для обновлений\синхронизации времени и т.д.
    Для клиента LAN при явном указании шлюза нужного ISP то, что назначено шлюзом по умолчанию pfSense безразлично. Упал этот ISP - у него нет интернента.



  • Какой из шлюзов выбран по Default Gateway видно в System / Routing / Gateways и два здесь выбрать нельзя : или-или



  • в том-то и дело, что можно: в настройках на КАЖДЫЙ шлюз можно поставить галочку "Default Gateway" и тогда оба показаны как (default)

    Я пока-что оставил один (быстрый). По нему и сам pfsense будет, например - время сверять (как pigbrother обЪяснил). Значит, направление исходящего трафика задаётся прямым указанием шлюза в правиле LAN. И ещё NAT нужно перенаправить на нужный интерфейс (WAN-2). У нас NAT вручную так, как с 3CX-сервера нужно транслировать Static Port



  • @strannik said in Два Интернет провайдера - Policy Routing:

    в том-то и дело, что можно: в настройках на КАЖДЫЙ шлюз можно поставить галочку "Default Gateway" и тогда оба показаны как (default)

    Вы точно уверены ? что оба показаны как (default)



  • Точно оба: у меня были два Шлюза - первый в Интернет, второй - на L3 комутатор. И оба в списке были показаны как "Default Gateway". Я на это не обращал внимания. А сейчас оставил только ИнтернетьШлюз как Default.



  • @strannik said in Два Интернет провайдера - Policy Routing:

    И ещё NAT нужно перенаправить на нужный интерфейс (WAN-2). У нас NAT вручную так, как с 3CX-сервера нужно транслировать Static Port

    Если нужен Static Port - то вероятно да, нужно ручное правило NAT. Для просто доступа в интернент через конкретного ISP достаточно правила на LAN.

    @strannik said in Два Интернет провайдера - Policy Routing:

    в том-то и дело, что можно: в настройках на КАЖДЫЙ шлюз можно поставить галочку "Default Gateway" и тогда оба показаны как (default)

    И это видно после сохранения настроек? Можно скриншот?

    Официальная документация говорит следующее:
    https://www.netgate.com/docs/pfsense/routing/gateway-settings.html
    Default Gateway: A checkbox to control whether this gateway is the default gateway for this Address Family. Only one gateway may be the default for either IPv4 or IPv6.



  • Вы обсолютно правы: только один DG. Меня сбил с толку наш L3-комутатор: к нему тоже есть маршрут и его можно установить как Default. Но для WAN, действительно сохраняется только один DG

    0_1534280687658_Default Gateway.png



  • @strannik не уверен сработает ли у вас но вообще смысл должен быть один.
    предположим есть 2 wan (wan1,wan2) у которых есть 2 dg (dg1,dg2) и default dg это dg1.
    задача скажем пустить весь трафик через dg1 а sip пустить через dg2.
    у нас есть созданное по дефолту правило в firewall->rules где написано что весь трафик ходит через * то бишь через dg1.
    создаем алиас где указываем айпи адрес sip сервера.
    создаем над дефолтным правилом в rules еще одно правило где будет примерно такое:
    action:pass
    interface:lan
    address family:ipv4
    protocol:any (mojno i sip)
    source:lan
    destination:single host or alias->sip (eto nash alias v firewal->aliases gde propisan ip sip servera)
    gateway:dg2
    далее в firewall->nat->outbound надо будет сделать копии правила для lan с dg1 где надо подправить dg1 на dg2
    после чего все должно будет заработать. проверить можно будет утилитой traceroute с любого пк в lan.
    у меня так работает pbr по openvpn. надеюсь поможет.



  • По-моему , задача несложная
    как уже указали выше это просто PBR ( Policy based routing)
    делается несложно
    1 картинка ( настройка правил)
    0_1534332947308_ba1808a3-02ad-400b-85c5-96b9d9cad358-image.png

    Главное условие , чтобы правило PBR стояло выше остальных правил , чтобы срабатывало первым (см вторую картинку )

    0_1534333052363_e6460b8e-dc74-4bc3-956b-28e4984873f8-image.png

    Т е все правила с гейтвеем не по умолчанию , стоят выше последнего правила
    3 NAT тоже несложно
    дублируете правило NAT по умолчанию , которое использует интерфейс wan
    и и режиме редактирования вместо WAN выбираете интерфейс который нужен
    0_1534333244462_8a40f46d-f4e4-4f83-b831-0521579a3364-image.png



  • @konstanti said in Два Интернет провайдера - Policy Routing:

    По-моему , задача несложная
    как уже указали выше это просто PBR ( Policy based routing)
    делается несложно
    1 картинка ( настройка правил)
    0_1534332947308_ba1808a3-02ad-400b-85c5-96b9d9cad358-image.png

    Главное условие , чтобы правило PBR стояло выше остальных правил , чтобы срабатывало первым (см вторую картинку )

    0_1534333052363_e6460b8e-dc74-4bc3-956b-28e4984873f8-image.png

    Т е все правила с гейтвеем не по умолчанию , стоят выше последнего правила
    3 NAT тоже несложно
    дублируете правило NAT по умолчанию , которое использует интерфейс wan
    и и режиме редактирования вместо WAN выбираете интерфейс который нужен
    0_1534333244462_8a40f46d-f4e4-4f83-b831-0521579a3364-image.png

    Спасибо что подправил а то lan указал в outbound )
    бывает...



  • @konstanti

    Что у Вас за интефейс - TUN100 ?



  • Это мой туннель в " прекрасное туда" GRE over IPSEC ( не обращайте внимания, это просто для примера , что вместо WAN1 по умолчанию , Вам надо указывать WAN2 принудительно в качестве маршрута для SIP и RTP) .
    Т е в Вашем случае - вместо моего 192.168.1.96 - ваш адрес сервера
    вместо UDP - TCP
    вместо 53 порта - порт 5060/5061
    вместо Default gateway - интерфейс нужного вам провайдера



  • Уважаемые коллеги, большое спасибо за советы. Теперь, вооружённый Вашими советами, я пытаюсь отработать конкретные шаги - сначала в дом. лаборатории а затем - на производстве.

    Прилагаю картинки. Если какая ошибка - пожалуйста поправляйте

    0_1534343983671_Oubound NAT for 3CX server.png 0_1534343987376_Outbound NAT for 3CX server - config.png 0_1534344011327_LAB - FW rule - LAN - policy routes.png 0_1534344055004_Port Forward to 3CX server.png



  • @strannik скажем там , вектор атаки выбран правильный .
    ничего сложного нет
    только не забудьте про проброс портов с wan 2 на 3cx сервер
    вот мой вариант
    0_1534344253749_ae117e82-d359-4676-98b7-f1e506cca202-image.png



  • @konstanti said in Два Интернет провайдера - Policy Routing:

    вместо Default gateway - интерфейс нужного вам провайдера

    Спасибо за пояснение. Я только-что показал скрин-шаты моих настроек. Если Вас не затруднит - посмотрите, пожалуйста - есть ли какие ошибки



  • @strannik все ответил чуть выше



  • @konstanti
    Спасибо



  • @strannik так как я - пользователь новый, не могу быстро отвечать ((( блокирует система ответы
    Не за что , если что , обращайтесь



  • @konstanti

    Проброс к 3CX - так будет правильно ?

    0_1534345558073_NAT - Port Forward to 3CX server.png

    0_1534345565191_NAT - Port Forward to 3CX server - Config.png



  • @strannik в outbound должно быть 2 правила на интерфейс один который с двумя стрелками пересекающимися и один который с галочкой.
    manual outbound nat лучше поменяй на hybrid outbound nat (automatic outbound nat + rules below).
    в edit advanced outbound nat entry вроде все верно кроме source. там должна быть указана сеть локальная (то бишь 192.168.10.0/24 или какая там маска).
    далее в firewall/rules/lan1 в destination надо указать адрес sip сервера т.е. до куда надо достучатсья через шлюх wan2_dhcp (удобно это делать через firewall->aliases поскольку потом в этот список можно будет добавить другие адреса не плодя лишних правил). если будет стоять wildcard то бишь * то возникнет конфликт и весь трафик пойдет через дефолтный гейтвей которым наверное является wan1_dhcp.
    firewall/rules/wan это лишнее. обычно правила для внешних интерфейсов используются для проброса трафика извне в локалку, а у тебя задача наоборот выпустить из локалки туда-то по определенному шлюзу.



  • @strannik said in Два Интернет провайдера - Policy Routing:

    @konstanti

    Проброс к 3CX - так будет правильно ?

    0_1534345558073_NAT - Port Forward to 3CX server.png

    0_1534345565191_NAT - Port Forward to 3CX server - Config.png

    1. лучше укажи конкретный протокол udp поскольку в tcp будут задержки (зависит от конфига атс но лучше перестраховаться пусть лучше коннекта не будет чем будет плохой коннект).
    2. source address все таки лучше указывать если конечно на той стороне статический адрес (чтобы никто лишний без дела не вклинивался).
    3. source port лучше указать конкретный если известно.
    4. nat ports пусть уж лучше совпадает с source ports (хотя тоже зависит от настроек атс).
      остальное вроде норм.


  • @igroykt я бы sourceports указал any - по-моему, тут косяк вылезет
    мало ли с какого порта придет пакет
    а вот destination - да ,надо
    рабочий вариант
    0_1534346133362_67621eea-a31b-426c-bfca-c28afa3c44f1-image.png



  • @konstanti а я бы не стал. мало ли что прилетит с той стороны. максимум какой нить диапазон портов не большой. в любом случае уточнился бы у провайдера услуги.



  • Спасибо за советы.

    все проблемы: требования документации на 3CX: они требуют пробрасывать вот так:

    0_1534346579781_3CX Port Forward - Recomended.png

    а порты транслировать вот так:
    0_1534346626786_3CX Oubound NAT - Recomended.png



  • @igroykt said in Два Интернет провайдера - Policy Routing:

    в outbound должно быть 2 правила на интерфейс один который с двумя стрелками пересекающимися и один который с галочкой.

    Прилагаю какртинку: у меня первое правило - конкретое 3CX-Server и порты 3CX - через WAN-2, а следующее за ним правило - общее для всех остальных VLAN - через WLAN-1 (Default Gateway).

    3CX сервер тоже часть одной VLAN. Таким способом я надеюсь, что через WAN-2 пойдёт только траффик с/на 3CX-server-IP и только на портах 3CX-Ports, а любой другой траффик (например HTTP/HTTPS) останется на WAN-1.

    Вот такая идея. Надеюсь, всё правильно
    0_1534350534729_Outbound NAT for 3CX server.png



  • Доброго.
    3CX ? Это те, к-ые Elastix "сожрали"? И те, у к-ых карма на хабре (да, для меня это показатель) в минусах? Еще скажите, что он у вас на Windows. Перевел компанию с этого "чуда" на FreePBX\Asterisk и привязал старые cisco-фоны (7905\7912) по sccp к нему (на sip нет русского интерфейса). Четвертый год - "ни единого разрыва".

    Даю ссылку https://www.freepbx.org/. Продукт с GUI. В ком. строку лезть в 99% вообще не прийдется. Прекрасно живет на Proxmox (KVM).

    Большие нагрузки и Asterisk не справляется? Да пожалуйста - https://habr.com/post/353156/ , https://github.com/fusionpbx/fusionpbx

    Нужна видеоконференция? Задаром? С интеграцией в открытый корп. чат (Mattermost)? Да сколько угодно https://github.com/bigbluebutton/bbb-install, https://github.com/blindsidenetworks/mattermost-plugin-bigbluebutton

    Видеоконференция с завязкой на сетевое хранилище + сервис корп. работы (Nextcloud). И тоже нахаляву? Так вот же ж - https://nextcloud.com/talk/

    Нужен софт-телефон с поддержкой лучшего на сегодн. день голосового кодека Opus? Вот оно - http://www.linphone.org/.

    Не благодарите. Хотя нет. Спасибо приму. Мало кто знаниями делится даром в наше время (

    P.s. У 3CX, надо отдать должное, неплохой софт-телефон и (уже) с Opus https://habr.com/company/3cx/blog/418587/ Вот его советую.