Страница 4 из 5
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 17:12
r136a8
Добрый день. Перенастроил полностью сеть с 0, чтобы убрать постороннее вмешательство после взлома. На данном этапе отказался от PPTP и родительского контроля.
Задача. Настройка двоих независимых провайдеров интернета на две независимых сети.
После всех нижеперечисленных действий нет интернета в обеих сетях, подозреваю что проблема в DNSтак-как Chrome пишет именно об этом.
Ping 8.8.8.8 в обеих сетей проходит (в командной строке через ПК)
https://prnt.sc/mj4je7
Моя последовательность действий
1. Сделал сброс настроек роутера (без стандартной конфигурации и создании резервной копии)
2. Создал два бриджа и объединил в них порты
3. Сделал настройку статического IP для обеих бриджей
https://prnt.sc/mj4xy7
4. Произвел настройку интернета в IP -> DHCP Client
https://prnt.sc/mj4xiv
5. Создал две новых таблицы маршрутизации с дефолтными маршрутами через каждый из каналов:
Код: Выделить всё
/ip route
add routing-mark=WAN-V gateway=192.168.77.1
add routing-mark=WAN-E gateway=192.168.88.1
6. Направил трафик от каждого сегмента в нужный аплинк
Код: Выделить всё
/ip firewall mangle
add chain=prerouting in-interface=bridge1-NET-V dst-address-type=!local action=mark-routing new-routing-mark=WAN-V
add chain=prerouting in-interface=bridge2-NET-E dst-address-type=!local action=mark-routing new-routing-mark=WAN-E
7. Прописал скрипты в DHCP Clint
Код: Выделить всё
:local rmark "WAN-V"
:local count [ /ip route print count-only where dst-address=0.0.0.0/0 routing-mark=$rmark ]
:if ($bound=1) do={
:local iface $interface
:local gw [ /ip dhcp-client get [ find interface=$"iface" ] gateway ]
:set gw "$gw%$iface"
:if ($count=0) do={
/ip route add gateway=$gw routing-mark=$rmark
} else={
if ($rmark="main") do={
/ip route set [ find dst-address=0.0.0.0/0 !routing-mark gateway!=$gw ] gateway=$gw
} else={
/ip route set [ find dst-address=0.0.0.0/0 routing-mark=$rmark gateway!=$gw ] gateway=$gw
}
}
} else={
:if ($rmark="main") do={
/ip route remove [ find dst-address=0.0.0.0/0 !routing-mark gateway~"%$interface\$" ]
} else={
/ip route remove [ find dst-address=0.0.0.0/0 routing-mark=$rmark type=unicast ]
}
}
Второй для
Код: Выделить всё
:local rmark "WAN-E"
:local count [ /ip route print count-only where dst-address=0.0.0.0/0 routing-mark=$rmark ]
:if ($bound=1) do={
:local iface $interface
:local gw [ /ip dhcp-client get [ find interface=$"iface" ] gateway ]
:set gw "$gw%$iface"
:if ($count=0) do={
/ip route add gateway=$gw routing-mark=$rmark
} else={
if ($rmark="main") do={
/ip route set [ find dst-address=0.0.0.0/0 !routing-mark gateway!=$gw ] gateway=$gw
} else={
/ip route set [ find dst-address=0.0.0.0/0 routing-mark=$rmark gateway!=$gw ] gateway=$gw
}
}
} else={
:if ($rmark="main") do={
/ip route remove [ find dst-address=0.0.0.0/0 !routing-mark gateway~"%$interface\$" ]
} else={
/ip route remove [ find dst-address=0.0.0.0/0 routing-mark=$rmark type=unicast ]
}
}
https://prnt.sc/mj4yiv
8. Добавил правило
Код: Выделить всё
/ip route
add type=unreachable routing-mark=WAN-V distance=250
add type=unreachable routing-mark=WAN-E distance=250
9. Настроил DNS
https://prnt.sc/mj4ynz
10. Настроил dhcp сервера для обоих провайдеров
https://prnt.sc/mj4yt3
11. Настроил firewall nat
Код: Выделить всё
/ip firewall nat
add action=masquerade chain=srcnat comment=WAN-V out-interface=ether1-WAN-V
add action=masquerade chain=srcnat comment=WAN-E out-interface=ether9-WAN-E
Добавил стандартные правила firewall filter
Код: Выделить всё
/ip firewall filter
add action=accept chain=forward connection-state=established,related
add action=drop chain=input comment="Drop access to DNS from WAN" dst-port=53 \
in-interface=ether1-WAN-V protocol=tcp
add action=drop chain=input comment="Drop access to DNS from WAN" dst-port=53 \
in-interface=ether9-WAN-E protocol=tcp
add action=drop chain=input dst-port=53 in-interface=ether1-WAN-V protocol=\
udp
add action=drop chain=input dst-port=53 in-interface=ether9-WAN-E protocol=\
udp
add action=accept chain=input comment="Allow PING (ICMP)" protocol=icmp
add action=accept chain=input comment="defconf: accept established,related" \
connection-state=established,related
add action=drop chain=input comment="defconf: drop all from WAN" \
in-interface=ether1-WAN-V
add action=drop chain=input comment="defconf: drop all from WAN" \
in-interface=ether9-WAN-E
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
connection-state=established,related routing-mark=main
add action=accept chain=forward comment="defconf: accept established,related" \
connection-state=established,related
add action=drop chain=forward comment="defconf: drop invalid" \
connection-state=invalid
add action=drop chain=forward comment=\
"defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
connection-state=new in-interface=ether1-WAN-V
add action=drop chain=forward comment=\
"defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
connection-state=new in-interface=ether9-WAN-E
Проверьте конфигурацию и последовательность правил.
Что я сделал не так, что нет доступа к интернет.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 17:42
Chupaka
После взлома особо нет смысла делать сброс. Все настройки есть в /export. Чтобы быть совсем уверенным, нужно делать NetInstall.
Пинг на DNS-серверы с клиентов ходит?
Ну и опять вы делаете "запретим что-то, остальное разрешим" — и при попытке впоследствии добавить PPTP опять столкнётесь с той же проблемой, что там всё будет по умолчанию разрешено. Сделайте хотя бы Interface List и добавьте в него ваши WAN'ы, и уже его используйте вместо ether1,9.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 17:51
r136a8
Chupaka писал(а): ↑10 фев 2019, 17:42
Пинг на DNS-серверы с клиентов ходит?
Да пинги с клиентов есть. 8.8.8.8 пингуется.
Chupaka писал(а): ↑10 фев 2019, 17:42
Сделайте хотя бы Interface List и добавьте в него ваши WAN'ы, и уже его используйте вместо ether1,9. А что с ним дальше делать, в чем он поможет?
Interface List сделал, вот так?
https://prnt.sc/mj5wox
Относительно доступности интернета. Вот что я заметил.
Если в даной кофигурации поставить галочку в "Add default route" то интернет появляется. Как я понимаю если использовать скрипт
viewtopic.php?f=2&t=323 то галочки не должно быть!?
Получается что то не так в маршрутизации или скрипте?
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 18:49
Sir_Prikol
Я вам что говорил? Настраиваете ОДНУ внутреннюю сеть и Police Based Routing на 2 аплинка, проверяете, появился ли интернет, а вы заного начали городить огород. Вывод команд в терминал, вы от меня не дождётесь, нет под рукой ни одного тестового микротика, чтоб на нём эмулировать вашу ситуацию. Направление обозначено.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 18:57
r136a8
Sir_Prikol писал(а): ↑10 фев 2019, 18:49
Я вам что говорил? Настраиваете ОДНУ внутреннюю сеть и Police Based Routing на 2 аплинка, проверяете, появился ли интернет, а вы заного начали городить огород. Вывод команд в терминал, вы от меня не дождётесь, нет под рукой ни одного тестового микротика, чтоб на нём эмулировать вашу ситуацию. Направление обозначено.
Спасибо, но я этого боюсь что не осилю. Та-как совсем не понимаю с чего начинать.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 19:03
Sir_Prikol
Ну так именно из-за того, что вы "не осилите" у вас и получается такая каша.
Начните с азов, простейшая конфигурация и пошагово на увеличение. PBR не так сложен, как вы себе представляете, скриптами гораздо сложнее
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 19:50
Chupaka
Так, есть контакт. Пункт 5 не нужен — у вас этим занимается пункт 7 (но пункт 8 можно оставить — это уберёт Failover, при отваливании одного из провайдеров его клиенты просто перестанут работать).
Пинговать я просил ДНСы, а не 8.8.8.8. Они у вас, как вижу, 192.168.77/88.1?.. UPD: А, это адреса роутера, тогда в пункте 5 вообще ересь: роутер сам себе шлюз...
Add Default Route надо оставлять для доступа роутера в Интернет — как ещё он будет DNS-запросы выполнять...
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 19:58
Sir_Prikol
Chupaka писал(а): ↑10 фев 2019, 19:50
Add Default Route надо оставлять для доступа роутера в Интернет — как ещё он будет DNS-запросы выполнять...
Там 2 аплинка, как раз не надо add default route, надо ручками маршруты прописать, иначе он будет ходить через первый поднятый, а второй простаивать будет. Хотя я человеку уже почти неделю пытаюсь втолковать, что ему нужен PBR в первую очередь, а уже потом локалку отстраивать
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 20:01
Chupaka
Не будет через первый поднятый, потому что клиентский трафик он маркирует
А вот для трафика от самого роутера нужен маршрут в main — будет использоваться хоть какой для DNS, клиентский трафик всё равно распределится по каналам.
З.ы. Заметил ещё, что новосозданные Interface Lists тоже левые. Надо создать один лист (WANs, например).
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 21:44
r136a8
Chupaka писал(а): ↑10 фев 2019, 20:01
Надо создать один лист (WANs, например).
После создания Interface List "WANs" мне нужно оредактировать правила в firewall - filter rulers. Вмнсто 2х правил теперь будет одно (я удаляю в двух правилах "In. intrface" далее уадаляю одно правило в том что стается 1м из двух в "In. interface List" выбираю свой созданный Interface List "WANs"?
Как я понял это относится только к firewall - filter rulers или к "Mangle" тоже (но я себе подозреваю что нет)?
Относительно PPTP что вы говорили. Сейчас согласно моего firewall Rulers он блокирован. Но чтобы его разблокировать мне нужно будет добавить вверху firewall Rulers следующие правила:
Код: Выделить всё
add action=accept chain=input comment="Open PPTP" dst-port=1723 in-interface=\
ether9-WAN-E protocol=tcp
add action=accept chain=input comment="Open PPTP" dst-port=1723 in-interface=\
ether1-WAN-V protocol=tcp
add action=accept chain=input comment="Open PPTP" in-interface=ether1-WAN-V \
protocol=gre
add action=accept chain=input comment="Open PPTP" in-interface=ether9-WAN-E \
protocol=gre
правильно?
Относительно firewall Rulers (правильный ли он у меня, правильно ли расположен согласно стандартных правил?)
Спасибо
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 22:36
Chupaka
Ну, если в правилах Action одинаковый - то зачем держать в Mangle два правила, если можно на одно заменить? А если разный - то не замените ведь. Вот у NAT везде action=masquerade, можно смело менять
На тему PPTP я имел в виду трафик, гуляющий внутри PPTP, а не пакеты самого PPTP-тоннеля. Давайте разделять эти понятия.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 10 фев 2019, 23:02
Sir_Prikol
Может это поможет, то уже на потуги смотреть не комильфо
Надеюсь разжёвывать что делает скрипт не надо? В 2-х словах 2 аплинка по dhcp, одна сеть, load balancing. С маршрутами и проверками
Код: Выделить всё
# wait for interfaces
:local count 0;
:while ([/interface ethernet find] = "") do={
:if ($count = 30) do={
:log warning "Unable to find ethernet interfaces";
/quit;
}
:delay 1s;
:set count ($count +1);
};
# Ports
:global wan1name "";
:global wan2name "";
:global tmp1name "";
:global tmp2name "";
:foreach k in=[/interface ethernet find] do={
if ($tmp1name = "") do={
:set tmp1name [/interface ethernet get $k name];
} else {
:if ($tmp2name = "") do={
:set tmp2name [/interface ethernet get $k name];
}
}
}
/interface list add name=WAN comment="WAN ports"
/ip firewall nat add chain=srcnat out-interface-list=WAN ipsec-policy=out,none action=masquerade comment="masquerade"
:set wan1name ($tmp1name."-wan");
/interface ethernet set [find name="$tmp1name"] name="$wan1name" comment="isp1"
:set wan2name ($tmp2name."-wan2");
/interface ethernet set [find name="$tmp2name"] name="$wan2name" comment="isp2"
/interface bridge add name=bridge-local disabled=no auto-mac=yes protocol-mode=rstp;
:delay 1s;
/interface list add name=LAN comment="LAN ports"
:local bMACIsSet 0;
:foreach p in=[/interface ethernet find where !(name~"wan" || name~"bridge")] do={
:local tmpPortName [/interface ethernet get $p name];
:if ($bMACIsSet = 0) do={
:if ([/interface get $p type] = "ether") do={
/interface bridge set "bridge-local" auto-mac=no admin-mac=[/interface ethernet get $tmpPortName mac-address];
:set bMACIsSet 1;
}
}
/interface bridge port add bridge="bridge-local" interface="$tmpPortName";
/interface list member add list=LAN interface=$tmpPortName
}
# WiFi setup
/interface wireless security-profiles set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk eap-methods="" mode=dynamic-keys supplicant-identity="moja_setj" wpa-pre-shared-key="mojparolj" wpa2-pre-shared-key="mojparolj"
:foreach p in=[/interface wireless find] do={
:local tmpWName [/interface wireless get $p name];
:local tmpBand [:pick [/interface wireless get $p band] 0 1];
:if ($tmpBand = "5") do={
/interface wireless set $p band=5ghz-a/n/ac channel-width=20/40mhz-Ce wireless-protocol=802.11 frequency=auto mode=ap-bridge ssid="moja_setj" distance=indoors disabled=no
} else {
/interface wireless set $p band=2ghz-b/g/n channel-width=20/40mhz-Ce wireless-protocol=802.11 frequency=auto mode=ap-bridge ssid="moja_setj" distance=indoors disabled=no
}
/interface bridge port add bridge=bridge-local interface=$tmpWName
/interface list member add list=LAN interface=$tmpWName
}
# LAN
/ip address add address=192.168.99.1/24 disabled=no interface=bridge-local
/ip pool add name=pool-lan ranges=192.168.99.2-192.168.99.254
/ip dhcp-server add address-pool=pool-lan interface=bridge-local name=dhcp-lan disable=no
/ip dhcp-server network add address=192.168.99.0/24 dns-server=192.168.99.1 gateway=192.168.99.1
# ISP1
/ip dhcp-client add dhcp-options=hostname,clientid interface=$wan1name add-default-route=no use-peer-dns=no disabled=no
/interface list member add list=WAN interface=$wan1name
# ISP2
/ip dhcp-client add dhcp-options=hostname,clientid interface=$wan2name add-default-route=no use-peer-dns=no disabled=no
/interface list member add list=WAN interface=$wan2name
# Recursive
/ip route add dst-address=8.8.8.8 gateway=127.0.0.1 distance=1 scope=30 comment=isp1
/ip route add dst-address=8.8.4.4 gateway=127.0.0.1 distance=1 scope=30 comment=isp2
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=1 check-gateway=ping target-scope=30
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=2 check-gateway=ping target-scope=30
/ip firewall mangle add action=mark-connection chain=input in-interface=$wan1name new-connection-mark=isp1in_c passthrough=yes
/ip firewall mangle add action=mark-connection chain=input in-interface=$wan2name new-connection-mark=isp2in_c passthrough=yes
/ip firewall mangle add action=mark-routing chain=output connection-mark=isp1in_c new-routing-mark=isp1 passthrough=no
/ip firewall mangle add action=mark-routing chain=output connection-mark=isp2in_c new-routing-mark=isp2 passthrough=no
/ip route add dst-address=0.0.0.0/0 gateway=127.0.0.1 distance=1 routing-mark=isp1 comment=isp1
/ip route add dst-address=0.0.0.0/0 gateway=127.0.0.1 distance=1 routing-mark=isp2 comment=isp2
# Load balancing
/ip firewall mangle add in-interface=bridge-local dst-address-type=!local action=mark-routing chain=prerouting new-routing-mark=isp1lb per-connection-classifier=both-addresses:2/0 comment=isp1-20
/ip firewall mangle add in-interface=bridge-local dst-address-type=!local action=mark-routing chain=prerouting new-routing-mark=isp2lb per-connection-classifier=both-addresses:2/1 comment=isp2-21
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=1 check-gateway=ping target-scope=30 routing-mark=isp1lb
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=2 check-gateway=ping target-scope=30 routing-mark=isp1lb
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=1 check-gateway=ping target-scope=30 routing-mark=isp2lb
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=2 check-gateway=ping target-scope=30 routing-mark=isp2lb
/system scheduler add disabled=no interval=30s name=CheckGateway on-event=CheckGateway
/system script add name=CheckGateway owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive source="#Name: CheckGateway v.1\r\
\n#Created by MikroTik configuration wizard (www.mikrotikwizard.com)\r\
\n:local debug false;\r\
\n# isp1 \r\
\n:if ([/interface find comment=isp1] != \"\") do={\r\
\n:local wan1 [/interface get [find comment=isp1] name];\r\
\n:if ( [/ip dhcp-client get [find interface=\$wan1] status] = \"bound\") do={\r\
\n:local NewGW [/ip dhcp-client get [find interface=\$wan1] gateway];\r\
\n:foreach g in=[/ip route find where comment=isp1] do={\r\
\n:local OldGW [/ip route get \$g gateway];\r\
\n:if (\$OldGW!=\$NewGW) do={\r\
\n/ip route set \$g gateway=\$NewGW;\r\
\n:log info \"CheckGateway: isp1 change gateway from \$OldGW to \$NewGW\";\r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: isp1 route is not change \$OldGW / \$NewGW\";}\r\
\n}\r\
\n} \r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: interface \$wan1 is not ready\";}\r\
\n}\r\
\n} else {\r\
\n:log warning \"CheckGateway: ERROR isp1 interface NOT found\";\r\
\n}\r\
\n \r\
\n# isp2 \r\
\n:if ([/interface find comment=isp2] != \"\") do={\r\
\n:local wan2 [/interface get [find comment=isp2] name];\r\
\n:if ( [/ip dhcp-client get [find interface=\$wan2] status] = \"bound\") do={\r\
\n:local NewGW [/ip dhcp-client get [find interface=\$wan2] gateway];\r\
\n:foreach g in=[/ip route find where comment=isp2] do={\r\
\n:local OldGW [/ip route get \$g gateway];\r\
\n:if (\$OldGW!=\$NewGW) do={\r\
\n/ip route set \$g gateway=\$NewGW;\r\
\n:log info \"CheckGateway: isp2 change gateway from \$OldGW to \$NewGW\";\r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: isp2 route is not change \$OldGW / \$NewGW\";}\r\
\n}\r\
\n} \r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: interface \$wan2 is not ready\";}\r\
\n}\r\
\n} else {\r\
\n:log warning \"CheckGateway: ERROR isp2 interface NOT found\";\r\
\n}\r\
\n \r\
"
# DNS
/ip dns set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4
/ip dns static add address=192.168.99.1 name=router
# Firewall Input
/ip firewall filter add chain=input action=accept connection-state=established,related,untracked comment="Accept established,related,untracked"
/ip firewall filter add chain=input action=drop connection-state=invalid comment="Drop invalid"
/ip firewall filter add chain=input action=accept protocol=icmp comment="Accept ICMP"
/ip firewall filter add chain=input action=accept in-interface=bridge-local comment="Accept all from bridge-local"
/ip firewall filter add chain=input action=accept src-address-list=ManageIP comment="Accept access for ManageIP group"
/ip firewall filter add chain=input action=drop comment="Drop all other"
# Firewall Forward
/ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related disabled=yes comment="fasttrack"
/ip firewall filter add chain=forward action=accept connection-state=established,related,untracked comment="accept established,related,untracked"
/ip firewall filter add action=drop chain=forward connection-state=invalid comment="Drop invalid"
/ip firewall address-list add address=192.168.99.0/24 list=Internet
/ip firewall filter add chain=forward action=accept in-interface=bridge-local out-interface=$wan1name src-address-list=Internet connection-state=new comment="Accept Internet via ISP1 for Internet group"
/ip firewall address-list add address=192.168.99.0/24 list=Internet2
/ip firewall filter add chain=forward action=accept in-interface=bridge-local out-interface=$wan2name src-address-list=Internet2 connection-state=new comment="Accept Internet via ISP2 for Internet2 group"
/ip firewall filter add chain=forward action=drop comment="Drop all other"
# Other
/system clock set time-zone-autodetect=yes
/ip cloud set ddns-enabled=yes update-time=yes
/ip neighbor discovery-settings set discover-interface-list=LAN
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN
/system identity set name="MyRouter"
# End
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 00:41
r136a8
Sir_Prikol писал(а): ↑10 фев 2019, 23:02
Может это поможет, то уже на потуги смотреть не комильфо
Надеюсь разжёвывать что делает скрипт не надо? В 2-х словах 2 аплинка по dhcp, одна сеть, load balancing. С маршрутами и проверками
Код: Выделить всё
# wait for interfaces
:local count 0;
:while ([/interface ethernet find] = "") do={
:if ($count = 30) do={
:log warning "Unable to find ethernet interfaces";
/quit;
}
:delay 1s;
:set count ($count +1);
};
# Ports
:global wan1name "";
:global wan2name "";
:global tmp1name "";
:global tmp2name "";
:foreach k in=[/interface ethernet find] do={
if ($tmp1name = "") do={
:set tmp1name [/interface ethernet get $k name];
} else {
:if ($tmp2name = "") do={
:set tmp2name [/interface ethernet get $k name];
}
}
}
/interface list add name=WAN comment="WAN ports"
/ip firewall nat add chain=srcnat out-interface-list=WAN ipsec-policy=out,none action=masquerade comment="masquerade"
:set wan1name ($tmp1name."-wan");
/interface ethernet set [find name="$tmp1name"] name="$wan1name" comment="isp1"
:set wan2name ($tmp2name."-wan2");
/interface ethernet set [find name="$tmp2name"] name="$wan2name" comment="isp2"
/interface bridge add name=bridge-local disabled=no auto-mac=yes protocol-mode=rstp;
:delay 1s;
/interface list add name=LAN comment="LAN ports"
:local bMACIsSet 0;
:foreach p in=[/interface ethernet find where !(name~"wan" || name~"bridge")] do={
:local tmpPortName [/interface ethernet get $p name];
:if ($bMACIsSet = 0) do={
:if ([/interface get $p type] = "ether") do={
/interface bridge set "bridge-local" auto-mac=no admin-mac=[/interface ethernet get $tmpPortName mac-address];
:set bMACIsSet 1;
}
}
/interface bridge port add bridge="bridge-local" interface="$tmpPortName";
/interface list member add list=LAN interface=$tmpPortName
}
# WiFi setup
/interface wireless security-profiles set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk eap-methods="" mode=dynamic-keys supplicant-identity="moja_setj" wpa-pre-shared-key="mojparolj" wpa2-pre-shared-key="mojparolj"
:foreach p in=[/interface wireless find] do={
:local tmpWName [/interface wireless get $p name];
:local tmpBand [:pick [/interface wireless get $p band] 0 1];
:if ($tmpBand = "5") do={
/interface wireless set $p band=5ghz-a/n/ac channel-width=20/40mhz-Ce wireless-protocol=802.11 frequency=auto mode=ap-bridge ssid="moja_setj" distance=indoors disabled=no
} else {
/interface wireless set $p band=2ghz-b/g/n channel-width=20/40mhz-Ce wireless-protocol=802.11 frequency=auto mode=ap-bridge ssid="moja_setj" distance=indoors disabled=no
}
/interface bridge port add bridge=bridge-local interface=$tmpWName
/interface list member add list=LAN interface=$tmpWName
}
# LAN
/ip address add address=192.168.99.1/24 disabled=no interface=bridge-local
/ip pool add name=pool-lan ranges=192.168.99.2-192.168.99.254
/ip dhcp-server add address-pool=pool-lan interface=bridge-local name=dhcp-lan disable=no
/ip dhcp-server network add address=192.168.99.0/24 dns-server=192.168.99.1 gateway=192.168.99.1
# ISP1
/ip dhcp-client add dhcp-options=hostname,clientid interface=$wan1name add-default-route=no use-peer-dns=no disabled=no
/interface list member add list=WAN interface=$wan1name
# ISP2
/ip dhcp-client add dhcp-options=hostname,clientid interface=$wan2name add-default-route=no use-peer-dns=no disabled=no
/interface list member add list=WAN interface=$wan2name
# Recursive
/ip route add dst-address=8.8.8.8 gateway=127.0.0.1 distance=1 scope=30 comment=isp1
/ip route add dst-address=8.8.4.4 gateway=127.0.0.1 distance=1 scope=30 comment=isp2
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=1 check-gateway=ping target-scope=30
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=2 check-gateway=ping target-scope=30
/ip firewall mangle add action=mark-connection chain=input in-interface=$wan1name new-connection-mark=isp1in_c passthrough=yes
/ip firewall mangle add action=mark-connection chain=input in-interface=$wan2name new-connection-mark=isp2in_c passthrough=yes
/ip firewall mangle add action=mark-routing chain=output connection-mark=isp1in_c new-routing-mark=isp1 passthrough=no
/ip firewall mangle add action=mark-routing chain=output connection-mark=isp2in_c new-routing-mark=isp2 passthrough=no
/ip route add dst-address=0.0.0.0/0 gateway=127.0.0.1 distance=1 routing-mark=isp1 comment=isp1
/ip route add dst-address=0.0.0.0/0 gateway=127.0.0.1 distance=1 routing-mark=isp2 comment=isp2
# Load balancing
/ip firewall mangle add in-interface=bridge-local dst-address-type=!local action=mark-routing chain=prerouting new-routing-mark=isp1lb per-connection-classifier=both-addresses:2/0 comment=isp1-20
/ip firewall mangle add in-interface=bridge-local dst-address-type=!local action=mark-routing chain=prerouting new-routing-mark=isp2lb per-connection-classifier=both-addresses:2/1 comment=isp2-21
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=1 check-gateway=ping target-scope=30 routing-mark=isp1lb
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=2 check-gateway=ping target-scope=30 routing-mark=isp1lb
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=1 check-gateway=ping target-scope=30 routing-mark=isp2lb
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=2 check-gateway=ping target-scope=30 routing-mark=isp2lb
/system scheduler add disabled=no interval=30s name=CheckGateway on-event=CheckGateway
/system script add name=CheckGateway owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive source="#Name: CheckGateway v.1\r\
\n#Created by MikroTik configuration wizard (www.mikrotikwizard.com)\r\
\n:local debug false;\r\
\n# isp1 \r\
\n:if ([/interface find comment=isp1] != \"\") do={\r\
\n:local wan1 [/interface get [find comment=isp1] name];\r\
\n:if ( [/ip dhcp-client get [find interface=\$wan1] status] = \"bound\") do={\r\
\n:local NewGW [/ip dhcp-client get [find interface=\$wan1] gateway];\r\
\n:foreach g in=[/ip route find where comment=isp1] do={\r\
\n:local OldGW [/ip route get \$g gateway];\r\
\n:if (\$OldGW!=\$NewGW) do={\r\
\n/ip route set \$g gateway=\$NewGW;\r\
\n:log info \"CheckGateway: isp1 change gateway from \$OldGW to \$NewGW\";\r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: isp1 route is not change \$OldGW / \$NewGW\";}\r\
\n}\r\
\n} \r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: interface \$wan1 is not ready\";}\r\
\n}\r\
\n} else {\r\
\n:log warning \"CheckGateway: ERROR isp1 interface NOT found\";\r\
\n}\r\
\n \r\
\n# isp2 \r\
\n:if ([/interface find comment=isp2] != \"\") do={\r\
\n:local wan2 [/interface get [find comment=isp2] name];\r\
\n:if ( [/ip dhcp-client get [find interface=\$wan2] status] = \"bound\") do={\r\
\n:local NewGW [/ip dhcp-client get [find interface=\$wan2] gateway];\r\
\n:foreach g in=[/ip route find where comment=isp2] do={\r\
\n:local OldGW [/ip route get \$g gateway];\r\
\n:if (\$OldGW!=\$NewGW) do={\r\
\n/ip route set \$g gateway=\$NewGW;\r\
\n:log info \"CheckGateway: isp2 change gateway from \$OldGW to \$NewGW\";\r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: isp2 route is not change \$OldGW / \$NewGW\";}\r\
\n}\r\
\n} \r\
\n} else {\r\
\nif (\$debug) do={:log info \"CheckGateway: interface \$wan2 is not ready\";}\r\
\n}\r\
\n} else {\r\
\n:log warning \"CheckGateway: ERROR isp2 interface NOT found\";\r\
\n}\r\
\n \r\
"
# DNS
/ip dns set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4
/ip dns static add address=192.168.99.1 name=router
# Firewall Input
/ip firewall filter add chain=input action=accept connection-state=established,related,untracked comment="Accept established,related,untracked"
/ip firewall filter add chain=input action=drop connection-state=invalid comment="Drop invalid"
/ip firewall filter add chain=input action=accept protocol=icmp comment="Accept ICMP"
/ip firewall filter add chain=input action=accept in-interface=bridge-local comment="Accept all from bridge-local"
/ip firewall filter add chain=input action=accept src-address-list=ManageIP comment="Accept access for ManageIP group"
/ip firewall filter add chain=input action=drop comment="Drop all other"
# Firewall Forward
/ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related disabled=yes comment="fasttrack"
/ip firewall filter add chain=forward action=accept connection-state=established,related,untracked comment="accept established,related,untracked"
/ip firewall filter add action=drop chain=forward connection-state=invalid comment="Drop invalid"
/ip firewall address-list add address=192.168.99.0/24 list=Internet
/ip firewall filter add chain=forward action=accept in-interface=bridge-local out-interface=$wan1name src-address-list=Internet connection-state=new comment="Accept Internet via ISP1 for Internet group"
/ip firewall address-list add address=192.168.99.0/24 list=Internet2
/ip firewall filter add chain=forward action=accept in-interface=bridge-local out-interface=$wan2name src-address-list=Internet2 connection-state=new comment="Accept Internet via ISP2 for Internet2 group"
/ip firewall filter add chain=forward action=drop comment="Drop all other"
# Other
/system clock set time-zone-autodetect=yes
/ip cloud set ddns-enabled=yes update-time=yes
/ip neighbor discovery-settings set discover-interface-list=LAN
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN
/system identity set name="MyRouter"
# End
Спасибо. Установил немного разобрался, но не до конца. Несколько вопросов.
1. После перезагрузки нет доступа к роутеру. Доступ в "Neighbors" установил на "all" в users пользователя добавил.
2. По WiFi интернет есть с wan2, если сделать еще одну виртуальную AP как на ней сделать интернет с wan1.
3. Относительно локальной сети, как предоставить к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 00:42
r136a8
Chupaka писал(а): ↑10 фев 2019, 22:36
Ну, если в правилах Action одинаковый - то зачем держать в Mangle два правила, если можно на одно заменить? А если разный - то не замените ведь. Вот у NAT везде action=masquerade, можно смело менять
На тему PPTP я имел в виду трафик, гуляющий внутри PPTP, а не пакеты самого PPTP-тоннеля. Давайте разделять эти понятия.
Обьеденил только правила из firewall rules (1-2; 3-4; 7-8; 12-13) а таке 2 правила из NAT. В Mangle обьеденить немогу так как там бриджи (или мне для них также нудно создать Interface lists?) Можно ли указать список интерфейсов в качестве участника bridge?
Правила fasttrack отключил так-как скорость по локольной сети режит в 2 раза по 2х ванах
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 00:51
Sir_Prikol
r136a8 писал(а): ↑11 фев 2019, 00:41
Спасибо. Установил немного разобрался, но не до конца. Несколько вопросов.
1. После перезагрузки нет доступа к роутеру. Доступ в "Neighbors" установил на "all" в users пользователя добавил.
2. По WiFi интернет есть с wan2, если сделать еще одну виртуальную AP как на ней сделать интернет с wan1.
3. Относительно локальной сети, как предоставить к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Вообще-то это скрипт настройки рутера с нуля, а у вас там опять куча намешанных правил.
Может не надо вам самому заниматься настройкой? Найдите человека у себя в городе, дайте ему денег, за 30-40 минут вам всё настроят.
Очередной раз замечаю, что вы бездумно всё вместе в одну кучу сваливаете. И те советы что даёт вам мой коллега (причём советы абсолютно действенные) и те советы что даю вам я (что не является истиной в последней инстанции).
Вы-же, перед тем, как применять данные правила, подучили-бы вообще принцип маршрутизации.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 00:55
r136a8
Sir_Prikol писал(а): ↑11 фев 2019, 00:51
r136a8 писал(а): ↑11 фев 2019, 00:41
Спасибо. Установил немного разобрался, но не до конца. Несколько вопросов.
1. После перезагрузки нет доступа к роутеру. Доступ в "Neighbors" установил на "all" в users пользователя добавил.
2. По WiFi интернет есть с wan2, если сделать еще одну виртуальную AP как на ней сделать интернет с wan1.
3. Относительно локальной сети, как предоставить к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Вообще-то это скрипт настройки рутера с нуля, а у вас там опять куча намешанных правил.
Может не надо вам самому заниматься настройкой? Найдите человека у себя в городе, дайте ему денег, за 30-40 минут вам всё настроят.
Очередной раз замечаю, что вы бездумно всё вместе в одну кучу сваливаете. И те советы что даёт вам мой коллега (причём советы абсолютно действенные) и те советы что даю вам я (что не является истиной в последней инстанции).
Вы-же, перед тем, как применять данные правила, подучили-бы вообще принцип маршрутизации.
Именно это я и сделал. Сделал полный спрос и накатил все с полного нуля. Вот и появилось несколько вопросов. Таким образом пробую и изучаю данную конфигурацию.
Спасибо.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 01:01
Sir_Prikol
Скрипт абслютно рабочий и живой. Запустил, получил настройки - работает. Из принципа один из своих рутеров сбросил и проверил. Я вообще не понимаю, что у вас там НЕ работает. И причём здесь вообще виртуальные AP
офтоп
Тут на форуме бегает один человек, которому лень гуглить и вики читать, уж не обессудте, вы из той-же породы, то что вы пытаетесь сделать неделю - делается за час с перекурами.
Я тоже не безгрешен, мою ошибку искали часа 2-3, напрямую на живой системе, хотя это был не баг а фича, но это отдельная история.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 01:05
r136a8
Sir_Prikol писал(а): ↑11 фев 2019, 01:01
Скрипт абслютно рабочий и живой. Запустил, получил настройки - работает. Из принципа один из своих рутеров сбросил и проверил. Я вообще не понимаю, что у вас там НЕ работает. И причём здесь вообще виртуальные AP
Работает спасибо. Вопросов нет. Разбираюсь и изучаю (мне не лень, все интересно я только начинаю осваивать) за, что Вам большое спасибо.
Важное сейчас для меня не могу понять, как предоставить, к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Спасибо
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 01:17
Chupaka
Так, давайте, может, не будем делать из этого форума Руборд, где всё в одной теме перемешано и нифига не понятно, о чём сейчас речь?
Если надо резко спрыгнуть на другую тему (например, сброс всего, до чего мы дошли за 11 страниц, и настройка с нуля совершенно другим скриптом) - лучше всё же создать отдельный топик...
r136a8 писал(а): ↑11 фев 2019, 01:05
как предоставить, к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Для начала - более полно формулировать мысли. Как идентифицировать пользователя_1? Это IP, или конкретный компьютер (например, по MAC в DHCP-сервере), или ещё что-то?
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 01:20
Sir_Prikol
Рубоард делать не будем - это точно.
Так, мы пришли к тому, что интернет получили с обоих аплинков и в мир вышла вся сеть?
Теперь надо размаркировать внутреннюю сеть, так как сказал коллега, что означает пользователь 1-х
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 01:21
r136a8
Chupaka писал(а): ↑11 фев 2019, 01:17
Так, давайте, может, не будем делать из этого форума Руборд, где всё в одной теме перемешано и нифига не понятно, о чём сейчас речь?
Если надо резко спрыгнуть на другую тему (например, сброс всего, до чего мы дошли за 11 страниц, и настройка с нуля совершенно другим скриптом) - лучше всё же создать отдельный топик...
r136a8 писал(а): ↑11 фев 2019, 01:05
как предоставить, к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Для начала - более полно формулировать мысли. Как идентифицировать пользователя_1? Это IP, или конкретный компьютер (например, по MAC в DHCP-сервере), или ещё что-то?
Согласен.
Полагаю больше по IP. Определенному IP #1 интернет от wan1, IP #2 интернет от wan2.
Я выбираю DHCP Server определенный IP назначаю его "Make Static" чтоб был уже закреплен за пользователем/устройством.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 01:46
Chupaka
Хм... К слову, скрипт то ли недоделанный, то ли кем-то укороченный. Там есть адрес-лист Internet2, и вроде как ему фильтром разрешён доступ через WAN2, но при этом правил mangle, которые бы отправляли этот трафик только через WAN2, нет. Работает только балансировка через PCC.
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 12:04
Sir_Prikol
Изначально скрипт и выводился для PCC. Чтобы получить интернет с двух аплинков. Если оно есть, дальше вступает в силу настройка локалки. Это к тому, что после этого скрипта мы получили сам интернет с фаером, дальше уже внутрянка, это отдельная история
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 12:06
Chupaka
Ну, значит, кто-то начал его доделывать до разделения - но не доделал
Re: 2 интернета и 2 сети (RB2011)
Добавлено: 11 фев 2019, 12:11
Sir_Prikol
Это, скорее всего, я переборщил с копированием, не хотел до разделения дойти, так как у меня свои задачи