2 интернета и 2 сети (RB2011)

Базовая функциональность RouterOS
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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
Проверьте конфигурацию и последовательность правил.

Что я сделал не так, что нет доступа к интернет.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 интернета и 2 сети (RB2011)

Сообщение Chupaka »

После взлома особо нет смысла делать сброс. Все настройки есть в /export. Чтобы быть совсем уверенным, нужно делать NetInstall.

Пинг на DNS-серверы с клиентов ходит?

Ну и опять вы делаете "запретим что-то, остальное разрешим" — и при попытке впоследствии добавить PPTP опять столкнётесь с той же проблемой, что там всё будет по умолчанию разрешено. Сделайте хотя бы Interface List и добавьте в него ваши WAN'ы, и уже его используйте вместо ether1,9.
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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 то галочки не должно быть!?
Получается что то не так в маршрутизации или скрипте?
Изображение
Последний раз редактировалось r136a8 10 фев 2019, 19:06, всего редактировалось 2 раза.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

Я вам что говорил? Настраиваете ОДНУ внутреннюю сеть и Police Based Routing на 2 аплинка, проверяете, появился ли интернет, а вы заного начали городить огород. Вывод команд в терминал, вы от меня не дождётесь, нет под рукой ни одного тестового микротика, чтоб на нём эмулировать вашу ситуацию. Направление обозначено.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение r136a8 »

Sir_Prikol писал(а): 10 фев 2019, 18:49 Я вам что говорил? Настраиваете ОДНУ внутреннюю сеть и Police Based Routing на 2 аплинка, проверяете, появился ли интернет, а вы заного начали городить огород. Вывод команд в терминал, вы от меня не дождётесь, нет под рукой ни одного тестового микротика, чтоб на нём эмулировать вашу ситуацию. Направление обозначено.
Спасибо, но я этого боюсь что не осилю. Та-как совсем не понимаю с чего начинать.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

Ну так именно из-за того, что вы "не осилите" у вас и получается такая каша.
Начните с азов, простейшая конфигурация и пошагово на увеличение. PBR не так сложен, как вы себе представляете, скриптами гораздо сложнее
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 интернета и 2 сети (RB2011)

Сообщение Chupaka »

Так, есть контакт. Пункт 5 не нужен — у вас этим занимается пункт 7 (но пункт 8 можно оставить — это уберёт Failover, при отваливании одного из провайдеров его клиенты просто перестанут работать).

Пинговать я просил ДНСы, а не 8.8.8.8. Они у вас, как вижу, 192.168.77/88.1?.. UPD: А, это адреса роутера, тогда в пункте 5 вообще ересь: роутер сам себе шлюз...

Add Default Route надо оставлять для доступа роутера в Интернет — как ещё он будет DNS-запросы выполнять...
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

Chupaka писал(а): 10 фев 2019, 19:50 Add Default Route надо оставлять для доступа роутера в Интернет — как ещё он будет DNS-запросы выполнять...
Там 2 аплинка, как раз не надо add default route, надо ручками маршруты прописать, иначе он будет ходить через первый поднятый, а второй простаивать будет. Хотя я человеку уже почти неделю пытаюсь втолковать, что ему нужен PBR в первую очередь, а уже потом локалку отстраивать :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 интернета и 2 сети (RB2011)

Сообщение Chupaka »

Не будет через первый поднятый, потому что клиентский трафик он маркирует :) А вот для трафика от самого роутера нужен маршрут в main — будет использоваться хоть какой для DNS, клиентский трафик всё равно распределится по каналам.

З.ы. Заметил ещё, что новосозданные Interface Lists тоже левые. Надо создать один лист (WANs, например).
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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 (правильный ли он у меня, правильно ли расположен согласно стандартных правил?)
Спасибо
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 интернета и 2 сети (RB2011)

Сообщение Chupaka »

Ну, если в правилах Action одинаковый - то зачем держать в Mangle два правила, если можно на одно заменить? А если разный - то не замените ведь. Вот у NAT везде action=masquerade, можно смело менять :)

На тему PPTP я имел в виду трафик, гуляющий внутри PPTP, а не пакеты самого PPTP-тоннеля. Давайте разделять эти понятия.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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

Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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 и т.д.?
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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х ванах
Последний раз редактировалось r136a8 11 фев 2019, 00:52, всего редактировалось 1 раз.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

r136a8 писал(а): 11 фев 2019, 00:41
Спасибо. Установил немного разобрался, но не до конца. Несколько вопросов.
1. После перезагрузки нет доступа к роутеру. Доступ в "Neighbors" установил на "all" в users пользователя добавил.
2. По WiFi интернет есть с wan2, если сделать еще одну виртуальную AP как на ней сделать интернет с wan1.
3. Относительно локальной сети, как предоставить к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Вообще-то это скрипт настройки рутера с нуля, а у вас там опять куча намешанных правил.
Может не надо вам самому заниматься настройкой? Найдите человека у себя в городе, дайте ему денег, за 30-40 минут вам всё настроят.

Очередной раз замечаю, что вы бездумно всё вместе в одну кучу сваливаете. И те советы что даёт вам мой коллега (причём советы абсолютно действенные) и те советы что даю вам я (что не является истиной в последней инстанции).

Вы-же, перед тем, как применять данные правила, подучили-бы вообще принцип маршрутизации.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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 минут вам всё настроят.

Очередной раз замечаю, что вы бездумно всё вместе в одну кучу сваливаете. И те советы что даёт вам мой коллега (причём советы абсолютно действенные) и те советы что даю вам я (что не является истиной в последней инстанции).

Вы-же, перед тем, как применять данные правила, подучили-бы вообще принцип маршрутизации.
Именно это я и сделал. Сделал полный спрос и накатил все с полного нуля. Вот и появилось несколько вопросов. Таким образом пробую и изучаю данную конфигурацию.
Спасибо.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

Скрипт абслютно рабочий и живой. Запустил, получил настройки - работает. Из принципа один из своих рутеров сбросил и проверил. Я вообще не понимаю, что у вас там НЕ работает. И причём здесь вообще виртуальные AP

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

Я тоже не безгрешен, мою ошибку искали часа 2-3, напрямую на живой системе, хотя это был не баг а фича, но это отдельная история.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение r136a8 »

Sir_Prikol писал(а): 11 фев 2019, 01:01 Скрипт абслютно рабочий и живой. Запустил, получил настройки - работает. Из принципа один из своих рутеров сбросил и проверил. Я вообще не понимаю, что у вас там НЕ работает. И причём здесь вообще виртуальные AP
Работает спасибо. Вопросов нет. Разбираюсь и изучаю (мне не лень, все интересно я только начинаю осваивать) за, что Вам большое спасибо.
Важное сейчас для меня не могу понять, как предоставить, к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Спасибо
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 интернета и 2 сети (RB2011)

Сообщение Chupaka »

Так, давайте, может, не будем делать из этого форума Руборд, где всё в одной теме перемешано и нифига не понятно, о чём сейчас речь? :) Если надо резко спрыгнуть на другую тему (например, сброс всего, до чего мы дошли за 11 страниц, и настройка с нуля совершенно другим скриптом) - лучше всё же создать отдельный топик...
r136a8 писал(а): 11 фев 2019, 01:05 как предоставить, к примеру пользователю_1 интернет с wan1, а пользователю 2 интернет с wan2 и т.д.?
Для начала - более полно формулировать мысли. Как идентифицировать пользователя_1? Это IP, или конкретный компьютер (например, по MAC в DHCP-сервере), или ещё что-то?
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

Рубоард делать не будем - это точно. :)

Так, мы пришли к тому, что интернет получили с обоих аплинков и в мир вышла вся сеть?

Теперь надо размаркировать внутреннюю сеть, так как сказал коллега, что означает пользователь 1-х
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
r136a8
Сообщения: 201
Зарегистрирован: 04 дек 2017, 00:01

Re: 2 интернета и 2 сети (RB2011)

Сообщение 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" чтоб был уже закреплен за пользователем/устройством.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 интернета и 2 сети (RB2011)

Сообщение Chupaka »

Хм... К слову, скрипт то ли недоделанный, то ли кем-то укороченный. Там есть адрес-лист Internet2, и вроде как ему фильтром разрешён доступ через WAN2, но при этом правил mangle, которые бы отправляли этот трафик только через WAN2, нет. Работает только балансировка через PCC.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

Изначально скрипт и выводился для PCC. Чтобы получить интернет с двух аплинков. Если оно есть, дальше вступает в силу настройка локалки. Это к тому, что после этого скрипта мы получили сам интернет с фаером, дальше уже внутрянка, это отдельная история
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 интернета и 2 сети (RB2011)

Сообщение Chupaka »

Ну, значит, кто-то начал его доделывать до разделения - но не доделал :)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 интернета и 2 сети (RB2011)

Сообщение Sir_Prikol »

Это, скорее всего, я переборщил с копированием, не хотел до разделения дойти, так как у меня свои задачи :)
Дома: CCR2004 (7-ISP(GPON)белый IP)