Два Интернет провайдера - 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. Кто что думает - будет такое работать ?
-
Не очень понятно, как работает "Виртуал. роутер" на картинке. И ваше мнение от того, как будет работать pfSense с с двумя провайдерами может целиком зависеть именно от него.
По сути вопроса - с точки зрения работы с multiwan - pfSense, IMHO, весьма логичное, просто настраиваемое и надежное решение.
В прочих аспектах, впрочем, - тоже. -
Решил не связываться с VirtualBox и сделать всё в железе. Надеюсь на таком стэнде проверить Policy-Routing и ещё - Failover
Как думаете, будет такое работать ?
-
Схемку собрал и теперь отрабатываю Policy-Routing и Advanced Outbound NAT.
Всё работает, кроме Port Forwarding.--- Дополнения к картинке ---
-
Static Routes на домашнем роутере НЕ НУЖНЫ так как pfsense делает трансляцию адресов, которая скрывает Source-адреса с LAN-сегмента за pfsense (192.168.10.0/24)
-
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 said in Два Интернет провайдера - Policy Routing:
Правильно-ли сделан дизайн или надо что-то менять
Правильно. Создание\несоздание группы ни на что не влияет, просто после создания можно будет указать "групповой" шлюз - это расширит возможность управлять балансировкой\файловером.
Шлюз по умолчанию pfSense при желании умеет переключать сам, но нужен он только самому pfSense для обновлений\синхронизации времени и т.д.
Для клиента LAN при явном указании шлюза нужного ISP то, что назначено шлюзом по умолчанию pfSense безразлично. Упал этот ISP - у него нет интернента. -
в том-то и дело, что можно: в настройках на КАЖДЫЙ шлюз можно поставить галочку "Default Gateway" и тогда оба показаны как (default)
Я пока-что оставил один (быстрый). По нему и сам pfsense будет, например - время сверять (как pigbrother обЪяснил). Значит, направление исходящего трафика задаётся прямым указанием шлюза в правиле LAN. И ещё NAT нужно перенаправить на нужный интерфейс (WAN-2). У нас NAT вручную так, как с 3CX-сервера нужно транслировать Static Port
-
Точно оба: у меня были два Шлюза - первый в Интернет, второй - на 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
-
@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 картинка ( настройка правил)
Главное условие , чтобы правило PBR стояло выше остальных правил , чтобы срабатывало первым (см вторую картинку )
Т е все правила с гейтвеем не по умолчанию , стоят выше последнего правила
3 NAT тоже несложно
дублируете правило NAT по умолчанию , которое использует интерфейс wan
и и режиме редактирования вместо WAN выбираете интерфейс который нужен
-
@konstanti said in Два Интернет провайдера - Policy Routing:
По-моему , задача несложная
как уже указали выше это просто PBR ( Policy based routing)
делается несложно
1 картинка ( настройка правил)
Главное условие , чтобы правило PBR стояло выше остальных правил , чтобы срабатывало первым (см вторую картинку )
Т е все правила с гейтвеем не по умолчанию , стоят выше последнего правила
3 NAT тоже несложно
дублируете правило NAT по умолчанию , которое использует интерфейс wan
и и режиме редактирования вместо WAN выбираете интерфейс который нужен
Спасибо что подправил а то lan указал в outbound )
бывает... -
Что у Вас за интефейс - TUN100 ?
-
Это мой туннель в " прекрасное туда" GRE over IPSEC ( не обращайте внимания, это просто для примера , что вместо WAN1 по умолчанию , Вам надо указывать WAN2 принудительно в качестве маршрута для SIP и RTP) .
Т е в Вашем случае - вместо моего 192.168.1.96 - ваш адрес сервера
вместо UDP - TCP
вместо 53 порта - порт 5060/5061
вместо Default gateway - интерфейс нужного вам провайдера -
Уважаемые коллеги, большое спасибо за советы. Теперь, вооружённый Вашими советами, я пытаюсь отработать конкретные шаги - сначала в дом. лаборатории а затем - на производстве.
Прилагаю картинки. Если какая ошибка - пожалуйста поправляйте
-
@strannik скажем там , вектор атаки выбран правильный .
ничего сложного нет
только не забудьте про проброс портов с wan 2 на 3cx сервер
вот мой вариант
-
@konstanti said in Два Интернет провайдера - Policy Routing:
вместо Default gateway - интерфейс нужного вам провайдера
Спасибо за пояснение. Я только-что показал скрин-шаты моих настроек. Если Вас не затруднит - посмотрите, пожалуйста - есть ли какие ошибки
-
@strannik все ответил чуть выше
-
@konstanti
Спасибо -
@strannik так как я - пользователь новый, не могу быстро отвечать ((( блокирует система ответы
Не за что , если что , обращайтесь -
Проброс к 3CX - так будет правильно ?
-
@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:
Проброс к 3CX - так будет правильно ?
- лучше укажи конкретный протокол udp поскольку в tcp будут задержки (зависит от конфига атс но лучше перестраховаться пусть лучше коннекта не будет чем будет плохой коннект).
- source address все таки лучше указывать если конечно на той стороне статический адрес (чтобы никто лишний без дела не вклинивался).
- source port лучше указать конкретный если известно.
- nat ports пусть уж лучше совпадает с source ports (хотя тоже зависит от настроек атс).
остальное вроде норм.
-
@igroykt я бы sourceports указал any - по-моему, тут косяк вылезет
мало ли с какого порта придет пакет
а вот destination - да ,надо
рабочий вариант
-
@konstanti а я бы не стал. мало ли что прилетит с той стороны. максимум какой нить диапазон портов не большой. в любом случае уточнился бы у провайдера услуги.
-
Спасибо за советы.
все проблемы: требования документации на 3CX: они требуют пробрасывать вот так:
а порты транслировать вот так:
-
@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.
Вот такая идея. Надеюсь, всё правильно
-
Доброго.
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/ Вот его советую.