Posted: Mon Oct 26, 2015 8:17 Post subject: Два провайдера без балансировки
Аппарат Netgear R7000.
Прошивка:
root@Ziggy's DD-WRT:~# uname -a
Linux Ziggy's DD-WRT 3.10.80 #389 SMP Thu Jun 18 22:32:27 CEST 2015 armv7l GNU/Linux
Есть два провода от двух провайдеров. У первого - выход в инет через L2TP, у второго прямой белый ай-пи.
Далее есть две Wi-Fi сети с разными клиентами. Охото реализовать схему, чтобы клиенты одно сети ходили в инет через первого провайдера, а клиенты второй сети соответственно через второго провайдера.
Что делаю.
1. Настраиваю через веб-интерфейс L2TP подключение к первому провайдеру.
2. На интерфейс br0 вешаю внутренний адрес 192.168.55.1 с dhcp.
3. Создаю сетку wl0, бриджую ее с br0.
Для клиентов одной беспроводной сети все в порядке, все работает.
Далее начинаются заморочки.
1. Создаю новый unbriged vlan - vlan3. Вешаю на него белый ай-пи из сети второго провайдера.
2. Ассоциирую с vlan3 выделенный порт - port1. Втыкаю в него провод от второго провайдера. Хотелось бы чтобы на L2 уровне сети провайдеров друг друга не видели.
3. Создаю br1. Вешаю на него внутренний адрес 192.168.56.1 со вторым dhcp.
4. Создаю вторую беспроводную сеть wl0.1. Бриджую ее с br1.
В итоге клинеты второй беспроводной сети могут подключиться и получить внутренний ай-пи. Дело осталось за выходом в инет именно через второго провайдера.
Предполагаю, что тут можно использовать source based routing? Т.ч. скриптик типа вот такого?
Code:
/jffs/routing.sh:
#!/bin/sh
##########
# убираем действующий дефолтный маршрут, иначе
# выдает ошибку при добавлении альтернативного
ip route delete default
# создаем для маршрутизации через второго провайдера
# таблицу и прописываем альтернативный дефолт
ip rule add from 192.168.56.0/24 table 200
ip route flush table 200
ip route add default via WAN2_GW_IP dev vlan3 table 200
# возвращаем основной дефолт для первого провайдера
ip route add default via WAN1_GW_IP dev ppp0
ip route flush cache
exit0
Далее опять не совсем понимаю как правильно включить NAT для второго провайдера? Что то типа такого?
Posted: Mon Oct 26, 2015 10:46 Post subject: Re: Два провайдера без балансиров
По умолчанию у вас есть br0 в котором все LAN+wi-fi, зачем что-то
Code:
3. Создаю сетку wl0, бриджую ее с br0.
По умолчанию все новые интерфейсы будут развязаны между собой.
Вы создали новый интерфейс vlan3 к нему подключили провайдера с белым IP.
По поводу br1 зачем его делать br1 если новый wi-fi и так имеет имя сетевого интерфейса (посмотреть через ifconfig) или через WEB GUI так же можно IP присвоить (Network Configuration - Unbridged и тут же есть Masquerade / NAT - Enable) это про новый wi-fi. Так же управление данным интерфейсом появиться на http://192.168.1.1/Networking.asp в окне Network Configuration с нужным именем, в окне ниже Multiple DHCP Server делаем настройки и в результате чего, так как DHCP и DNSMasq в одном флаконе, то получаем запись в конфиге для DNSMasq dhcp-option = ...3,...:
клиенты помимо IP могут получать и разные IP шлюза в зависимости к какой сети подключены.
http://192.168.1.1/Services.asp окно с DNSMasq можно добавлять опции в окне "Additional DNSMasq Options"
Далее так как подключен второй провайдер на vlan3 то естественно :
Posted: Mon Oct 26, 2015 12:07 Post subject: Re: Два провайдера без балансиров
vasek00 wrote:
По умолчанию у вас есть br0 в котором все LAN+wi-fi, зачем что-то
Да верно, тут все само собой так и получилось.
Quote:
Вы создали новый интерфейс vlan3 к нему подключили провайдера с белым IP.
По поводу br1 зачем его делать br1 если новый wi-fi и так имеет имя сетевого интерфейса (посмотреть через ifconfig) или через WEB GUI так же можно IP присвоить (Network Configuration - Unbridged и тут же есть Masquerade / NAT - Enable) это про новый wi-fi.
Я тоже так сначала хотел сделать. А потом подумал, что вполне возможно беспроводных сетей будет больше чем одна для каждого провайдера (например одна в диапазоне 2ГГц и вторая - в 5 ГГц). При таком раскладе я так понимаю бриджи как раз и нужны?
Quote:
клиенты помимо IP могут получать и разные IP шлюза в зависимости к какой сети подключены.
Все верно, я про это не забыл. У меня клиенты в зависимости от сетки получают нужные шлюзы и ДНСы.
Quote:
Далее так как подключен второй провайдер на vlan3 то естественно :
Posted: Mon Oct 26, 2015 12:48 Post subject: Re: Два провайдера без балансиров
Пробую в Administration / Commands / Firewall вот такие команды добавлять (yyy.xxx это я только тут заменил, чтоб не светить реальные адреса )):
ip route delete default
ip rule add from 192.168.56.0/24 table 200
ip route flush table 200
ip route add default via 92.54.yyy.xxx dev vlan3 table 200
ip route add default via 77.223.yyy.ххх dev ppp0
ip route add 10.0.0.1 via 92.54.yyy.xxx dev vlan3
ip route flush cache
iptables -t nat -I POSTROUTING 1 -o vlan3 -j SNAT --to-source 92.54.yyy.ххх
После ребута не вижу никаких изменений в таблице роутинга ( Никакого второго дефолтного маршрута не появляется.
И что еще смущает вот эти команды ничего не показывают:
ip route list table table 200
ip rule show
Статичный маршрут "ip route add 10.0.0.1" заработал, но только с самого роутера. С клиентов не идет, видимо NAT все же не включился.
Posted: Mon Oct 26, 2015 13:08 Post subject: Re: Два провайдера без балансиров
Большая часть функций ip route у меня пропала уже после релиза 17201.
Так же какие либо изменения в router/iproute2/ip датированы в релизе 18762/4years и в iproute в релизе 19925/3years.
Posted: Mon Oct 26, 2015 13:26 Post subject: Re: Два провайдера без балансиров
vasek00 wrote:
Большая часть функций ip route у меня пропала уже после релиза 17201.
Так же какие либо изменения в router/iproute2/ip датированы в релизе 18762/4years и в iproute в релизе 19925/3years.
Что-то у вас все как-то сложно.
Да вроде наборот хотел как проще. )
По умолчанию со всех клиентов натить через родной дефолтный шлюз.
А для клиентов из определенной подсети натить через альтернативный псевдо-шлюз.
В актуальных прошивках получается без вариантов такое реализовать?
строчка dhcp-option=..3,... говорим что для клиентов сети [имя_wi-fi2] шлюзом будет 192.168.2.1.
далее прописать маршрут, что для клиентов 192.168.2.0/24 шлюзом сделать IP шлюза Инет2.
Осталось только разрешить iptables для интерфейса [имя_wi-fi2] на доступ к vlan3, примеры много раз уже писалось на данном форуме, можно воспользоваться поиском (там так же использовался vlan3).
после того как будет отлажено в ручную, можно приступать к автоматизации процесса при перезапуске и по контролю соединений, так как например при пропадании Инет1 будет автоматом восстанавливаться, а для vlan3 нет, но и так же в некоторых случаях будут пропадать настройки, так как возможны остановки и запуски сервисов опять, все зависит от цикла восстановления соединения.
так же NAT так как стоит использовать в настройках
Code:
-A POSTROUTING -s 192.168.2.1/24 -o [интерфейс_WAN] -j SNAT --to-source [IP_WAN]
Не совсем понял в чем будет отличие между этими двумя правилами?
Quote:
DHCP для wi-fi2 настроен так же через WEB
С dhcp все ОК, работает правильно для обоих локальных сетей.
Quote:
Осталось только разрешить iptables для интерфейса [имя_wi-fi2] на доступ к vlan3, примеры много раз уже писалось на данном форуме, можно воспользоваться поиском (там так же использовался vlan3).
default via 77.223.xxx.xxx dev ppp0 scope link
10.0.0.1 via 92.54.xxx.1 dev vlan3
10.0.0.70 via 10.3.9.3 dev vlan2
10.3.9.0/24 dev vlan2 proto kernel scope link src 10.3.9.81
77.223.xxx.xxx dev ppp0 scope link
92.54.xxx.xxx/23 dev vlan3 proto kernel scope link src 92.54.98.155
127.0.0.0/8 dev lo scope link
169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1
192.168.55.0/24 dev br0 proto kernel scope link src 192.168.55.1
192.168.56.0/24 dev br1 proto kernel scope link src 192.168.56.1
По идее должен заработать NAT с клиентов сети 56.00/24 до адреса 10.0.0.1 второго
провайдера и до адресов 92.54.xxx.xxx/23. Но чего то мешает...
default via 77.223.xxx.xxx dev ppp0 scope link
10.0.0.1 via 92.54.xxx.1 dev vlan3
10.0.0.70 via 10.3.9.3 dev vlan2
10.3.9.0/24 dev vlan2 proto kernel scope link src 10.3.9.81
77.223.xxx.xxx dev ppp0 scope link
92.54.xxx.xxx/23 dev vlan3 proto kernel scope link src 92.54.98.155
127.0.0.0/8 dev lo scope link
169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1
192.168.55.0/24 dev br0 proto kernel scope link src 192.168.55.1
192.168.56.0/24 dev br1 proto kernel scope link src 192.168.56.1
По идее должен заработать NAT с клиентов сети 56.00/24 до адреса 10.0.0.1 второго
провайдера и до адресов 92.54.xxx.xxx/23. Но чего то мешает...
ppp0 (77.хх.хх.71) <--> br0 (192.168.55.1)
vlan2 (10.3.9.81) <--> br0 настройки по умолчанию так как он WAN порт
vlan3 (92.хх.хх.155) <--> br1 (192.168.56.1)