RouterOS 7 firewall mangle connection és routing mark

Szóval, próbálok upgradelni 6.49-ről 7-re, talán már működőképes, de a történtek után azért vannak még fenntartásaim....

Viszont van egy markáns probléma, amit egyszerűen nem tudok megoldani (vagy még mindig valami bug): több internetkapcsolat (jelen esetben 3), connection és routing mark. Ugye 7-esben ezt a routingot rendesen megborították, úgyhogy ami korábban ment, az most nem megy... Illetve nem egészen, mindjárt vázolom.

Aminek mennie kell:

  • mindhárom kapcsolat él és online
  • mindhárom kapcsolaton működjön a bejövő kapcsolat (mikrotikre) és a port forwardok is, nyilván ott menjen a válasz, ahol bejött
  • a belső hálózatról prioritás alapján van sorrend, amíg az elsődleges megy, addig azon megy alapból minden, amikor megáll, akkor nyilván a másodlagoson, ha az is, akkor a harmadlagoson; mindemellett mindaddig amíg él a kapcsolat, addig az azon a neten menjen, amin elindult
  • legyen lehetőség dinamikusan netkapcsolat váltásra, tehát attól még hogy az elsődleges megy és az a default, mehet valaki a másodlagoson vagy harmadlagoson, ha akar

Ebből ami nem megy, az a kintről mikrotikre irányuló (ping, ssh, vpn) forgalom jelölése (vagyis nem feltétlen a jelölése), illetve a mikrotikről kifele menő forgalom jelölése (pl. dns).

Szóval a firewall mangle táblában történik a kapcsolatok jelölése, a routing mark beállítása. A jelenség pedig az, hogy kívülről pingelve a másodlagos vagy harmadlagos net ip-jét, az első ICMP-re megjön a válasz, a többire nem. Telepakolva logolásokkal a manglet arra jutottam, hogy az első packet végigmegy a mangle bejegyzésein ahogy kell, a többi viszont egyáltalán nem, illetve az első packetnél a connectionre beállított routing markot is lekulázza, és második icmp-től kezdődően simán az elsődlegesen küldené a választ.

Próbáltam keresni, elolvastam a doksit, televan szerintem életszerűtlen és/vagy számomra haszontalan példákkal, néztem fórumokat ahol mások is hasonlóra panaszkodnak.... megnéztem, nem jutottam előrébb és igazából nem is értem.

Egyelőre nem akarok ideömleszteni minden konfigot, kérdezzetek, kérjetek, aztán mutatom. :)

Hozzászólások

Nekem van egy tesztkonfigom 3 WAN kapcsolatra ROS7.4-re, de már nem tudnám elmagyarázni :D

Háát, elvileg kellene :), kicsit takarítottam pár felesleges meg privát infót.

Annyi, hogy azért van 6 felé osztva a PCC szabály, mert így be lehet lőni súlyozást, hogy az egyik ISP-hez mondjuk lehet hármat, a másikhoz kettőt a harmadikhoz egyet. Amikor próbáltam valamennyire érződött, hogy működik a dolog, de biztos lehet és kell is finomítani rajta. Valamint azért van külön az output-ra is, mert szerettem volna, hogy maga a router is a saját forgalmát (NTP/DNS/ésatöbbi) így ossza fel. A többire már nem emlékszem :D Akkor azon az eszközön azzal a ROS7.4 bétával működött :D

Ja és DHCP kliens módban vannak az ISP lábak, de úgy rémlik PPP-hez nem kellett volna sokat módosítani.

# jun/24/2022 14:24:18 by RouterOS 7.4beta4
# model = 951G-2HnD
# bridge és interface beállítások, módosítani kell adott eszközhöz!!!!
/interface bridge
add name=bridge
/interface ethernet
set [ find default-name=ether3 ] name=ISP1
set [ find default-name=ether4 ] name=ISP2
set [ find default-name=ether5 ] name=ISP3
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=pool1 ranges=192.168.88.10-192.168.88.20
/ip dhcp-server
add address-pool=pool1 interface=bridge name=server1
/routing table
add disabled=no fib name=ISP1
add disabled=no fib name=ISP2
add disabled=no fib name=ISP3
/interface bridge port
add bridge=bridge interface=ether1
add bridge=bridge interface=ether2
/ip settings
set allow-fast-path=no
/interface detect-internet
set internet-interface-list=WAN lan-interface-list=LAN wan-interface-list=WAN
/interface list member
add interface=bridge list=LAN
add interface=ISP1 list=WAN
add interface=ISP2 list=WAN
add interface=ISP3 list=WAN
add interface=ISP3 list=WAN
/ip address
add address=192.168.88.1/24 interface=bridge network=192.168.88.0
/ip dhcp-client
add add-default-route=no interface=ISP1 script="{\
    \n   \r\
    \n:if (\$bound=1) do={\r\
    \n/ip route set [find where comment=\"ISP1_VALIDATE\"] gateway=\$\"gateway-a\
    ddress\"\r\
    \n#/ip route set [find where comment=\"ISP1\"] gateway=\$\"gateway-address\"\
    \_distance=1  disabled=no\r\
    \n} else={\r\
    \n#/ip route set [find where comment=\"ISP1\"] disabled=yes\r\
    \n/ip route set [find where comment=\"ISP1_VALIDATE\"] gateway=0.0.0.0\r\
    \n}\
    \n    \r\
    \n/system script run dhcp_sn_ISP1\r\
    \n/ip firewall connection remove [find connection-mark=\"CONN1\"]\
    \n    \r\
    \n/ip firewall connection remove [find connection-mark=\"CONN2\"]\
    \n    \r\
    \n/ip firewall connection remove [find connection-mark=\"CONN3\"]\
    \n\r\
    \n}" use-peer-dns=no use-peer-ntp=no
add add-default-route=no interface=ISP2 script="{\
    \n    \r\
    \n:if (\$bound=1) do={\r\
    \n/ip route set [find where comment=\"ISP2_VALIDATE\"] gateway=\$\"gateway-a\
    ddress\"\r\
    \n#/ip route set [find where comment=\"ISP2\"] gateway=\$\"gateway-address\"\
    \_distance=2  disabled=no\r\
    \n} else={\r\
    \n#/ip route set [find where comment=\"ISP2\"] disabled=yes\r\
    \n/ip route set [find where comment=\"ISP2_VALIDATE\"] gateway=0.0.0.0\r\
    \n} \
    \n    \r\
    \n/system script run dhcp_sn_ISP2\r\
    \n#/ip firewall connection remove [find connection-mark=\"CONN1\"]\
    \n    \r\
    \n/ip firewall connection remove [find connection-mark=\"CONN2\"]\
    \n    \r\
    \n/ip firewall connection remove [find connection-mark=\"CONN3\"]\
    \n\r\
    \n}" use-peer-dns=no use-peer-ntp=no
add add-default-route=no interface=ISP3 script="{\
    \n   \r\
    \n:if (\$bound=1) do={\r\
    \n/ip route set [find where comment=\"ISP3_VALIDATE\"] gateway=\$\"gateway-a\
    ddress\"\r\
    \n#/ip route set [find where comment=\"ISP3\"] gateway=\$\"gateway-address\"\
    \_distance=3  disabled=no\r\
    \n} else={\r\
    \n#/ip route set [find where comment=\"ISP3\"] disabled=yes\r\
    \n/ip route set [find where comment=\"ISP3_VALIDATE\"] gateway=0.0.0.0\r\
    \n}\
    \n    \r\
    \n/system script run dhcp_sn_ISP3\r\
    \n#/ip firewall connection remove [find connection-mark=\"CONN1\"]\
    \n   \r\
    \n#/ip firewall connection remove [find connection-mark=\"CONN2\"]\
    \n    \r\
    \n/ip firewall connection remove [find connection-mark=\"CONN3\"]\
    \n\r\
    \n}" use-peer-dns=no use-peer-ntp=no
/ip dhcp-server network
add address=192.168.88.0/24 dns-server=192.168.88.1 gateway=192.168.88.1
/ip dns
set allow-remote-requests=yes max-udp-packet-size=1024 query-server-timeout=1s \
    query-total-timeout=5s servers=8.8.8.8,9.9.9.9,1.1.1.1
/ip firewall address-list
add address=192.168.88.0/24 list=local
add address=172.16.0.0/12 list=private
add address=192.168.0.0/16 list=private
add address=10.0.0.0/8 list=private
add address=127.0.0.0/8 list=private
add address=10.38.46.0/24 list=to_ISP1
add address=192.168.128.0/24 list=to_ISP1
add address=192.168.129.0/24 list=to_ISP1
add address=192.168.111.0/24 comment=ISP1 list=ISP_DHCP_NET
add address=192.168.109.0/24 comment=ISP2 list=ISP_DHCP_NET
/ip firewall filter
add action=accept chain=forward in-interface-list=LAN out-interface-list=LAN
add action=accept chain=forward connection-nat-state=dstnat in-interface-list=\
    LAN out-interface-list=WAN
add action=accept chain=forward connection-state=established,related,untracked \
    in-interface-list=WAN out-interface-list=LAN
add action=accept chain=forward connection-nat-state=dstnat in-interface-list=\
    WAN out-interface-list=LAN
add action=drop chain=forward in-interface-list=WAN log=yes log-prefix=BLOCK \
    out-interface-list=LAN
add action=accept chain=input in-interface-list=LAN
add action=accept chain=input connection-state=established,related \
    in-interface-list=WAN
add action=accept chain=input in-interface-list=WAN protocol=icmp
add action=drop chain=input in-interface-list=WAN
/ip firewall mangle
add action=accept chain=prerouting comment="LAN access" dst-address-type=local \
    in-interface-list=LAN
add action=accept chain=prerouting comment="ISP LAN access" connection-mark=\
    NON_ROUTE dst-address-type=local
add action=accept chain=output connection-mark=NON_ROUTE dst-address-type=local
add action=mark-connection chain=prerouting comment=ISP_LAN connection-mark=\
    no-mark dst-address-list=ISP_DHCP_NET in-interface-list=LAN \
    new-connection-mark=NON_ROUTE
add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface-list=WAN new-connection-mark=NON_ROUTE src-address-list=\
    ISP_DHCP_NET
add action=mark-connection chain=output connection-mark=no-mark \
    dst-address-list=ISP_DHCP_NET new-connection-mark=NON_ROUTE
add action=mark-connection chain=input connection-mark=no-mark \
    new-connection-mark=NON_ROUTE src-address-list=ISP_DHCP_NET
add action=mark-connection chain=output comment="GW Check" connection-mark=\
    no-mark connection-state=new dst-address-list=!private icmp-options=8:0-255 \
    new-connection-mark=NON_ROUTE protocol=icmp
add action=mark-connection chain=prerouting comment="Always to ISP1" \
    connection-mark=no-mark connection-state=new dst-address-list=to_ISP1 \
    in-interface-list=LAN new-connection-mark=CONN1-S
add action=mark-connection chain=prerouting comment="Incoming connections" \
    connection-mark=no-mark connection-state=new in-interface=ISP1 \
    new-connection-mark=CONN1-S passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new in-interface=ISP2 new-connection-mark=CONN2-S \
    passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new in-interface=ISP3 new-connection-mark=CONN3-S \
    passthrough=yes
add action=mark-connection chain=prerouting comment=\
    "Test rule - Connection mark" connection-mark=no-mark disabled=yes \
    dst-address=1.1.1.1 in-interface=bridge new-connection-mark=CONN3
add action=mark-connection chain=prerouting comment="PCC divide" \
    connection-mark=no-mark connection-state=new dst-address-type=!local \
    in-interface-list=LAN new-connection-mark=CONN1 passthrough=yes \
    per-connection-classifier=both-addresses:6/0
add action=mark-connection chain=output connection-mark=no-mark \
    connection-state=new dst-address-list=!private log-prefix=OUTI \
    new-connection-mark=CONN1 per-connection-classifier=src-port:6/0
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface-list=LAN \
    new-connection-mark=CONN1 per-connection-classifier=both-addresses:6/1
add action=mark-connection chain=output connection-mark=no-mark \
    connection-state=new dst-address-list=!private log-prefix=OUTI \
    new-connection-mark=CONN1 per-connection-classifier=src-port:6/1
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface-list=LAN \
    new-connection-mark=CONN2 per-connection-classifier=both-addresses:6/2
add action=mark-connection chain=output connection-mark=no-mark \
    connection-state=new dst-address-list=!private log-prefix=OUTI \
    new-connection-mark=CONN2 per-connection-classifier=src-port:6/2
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface-list=LAN \
    new-connection-mark=CONN2 passthrough=yes per-connection-classifier=\
    both-addresses:6/3
add action=mark-connection chain=output connection-mark=no-mark \
    connection-state=new dst-address-list=!private log-prefix=OUTI \
    new-connection-mark=CONN2 per-connection-classifier=src-port:6/3
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface-list=LAN \
    new-connection-mark=CONN3 per-connection-classifier=both-addresses:6/4
add action=mark-connection chain=output connection-mark=no-mark \
    connection-state=new dst-address-list=!private log-prefix=OUTI \
    new-connection-mark=CONN3 per-connection-classifier=src-port:6/4
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface-list=LAN \
    new-connection-mark=CONN3 passthrough=yes per-connection-classifier=\
    both-addresses:6/5
add action=mark-connection chain=output connection-mark=no-mark \
    connection-state=new dst-address-list=!private log-prefix=OUTI \
    new-connection-mark=CONN3 per-connection-classifier=src-port:6/5
add action=mark-routing chain=prerouting comment="Mark routing" \
    connection-mark=CONN1 in-interface-list=LAN new-routing-mark=ISP1 \
    passthrough=yes
add action=mark-routing chain=output connection-mark=CONN1 new-routing-mark=\
    ISP1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=CONN1-S \
    in-interface-list=LAN new-routing-mark=ISP1
add action=mark-routing chain=output connection-mark=CONN1-S new-routing-mark=\
    ISP1
add action=mark-routing chain=prerouting connection-mark=CONN2 \
    in-interface-list=LAN new-routing-mark=ISP2 passthrough=yes
add action=mark-routing chain=output connection-mark=CONN2 new-routing-mark=\
    ISP2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=CONN2-S \
    in-interface-list=LAN new-routing-mark=ISP2
add action=mark-routing chain=output connection-mark=CONN2-S new-routing-mark=\
    ISP2
add action=mark-routing chain=prerouting connection-mark=CONN3 \
    in-interface-list=LAN new-routing-mark=ISP3 passthrough=yes
add action=mark-routing chain=output connection-mark=CONN3 new-routing-mark=\
    ISP3 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=CONN3-S \
    in-interface-list=LAN new-routing-mark=ISP3
add action=mark-routing chain=output connection-mark=CONN3-S new-routing-mark=\
    ISP3
/ip firewall nat
add action=masquerade chain=srcnat comment=NAT ipsec-policy=out,none \
    out-interface-list=WAN
add action=dst-nat chain=dstnat comment="IP DMZ" disabled=yes \
    in-interface-list=WAN to-addresses=192.168.88.20
/ip route
add comment=ISP1_VALIDATE disabled=no distance=1 dst-address=8.8.8.8/32 \
    gateway=192.168.111.1 pref-src=0.0.0.0 routing-table=main scope=11 \
    suppress-hw-offload=no target-scope=10
add comment=ISP1_VALIDATE disabled=no distance=1 dst-address=208.67.222.222/32 \
    gateway=192.168.111.1 pref-src=0.0.0.0 routing-table=main scope=11 \
    suppress-hw-offload=no target-scope=10
add comment=ISP2_VALIDATE disabled=no distance=1 dst-address=8.8.4.4/32 \
    gateway=192.168.109.1 pref-src=0.0.0.0 routing-table=main scope=11 \
    suppress-hw-offload=no target-scope=10
add comment=ISP2_VALIDATE disabled=no distance=1 dst-address=208.67.220.220/32 \
    gateway=192.168.109.1 pref-src=0.0.0.0 routing-table=main scope=11 \
    suppress-hw-offload=no target-scope=10
add comment=ISP3_VALIDATE disabled=no distance=1 dst-address=9.9.9.9/32 \
    gateway=0.0.0.0 pref-src=0.0.0.0 routing-table=main scope=11 \
    suppress-hw-offload=no target-scope=10
add comment=ISP3_VALIDATE disabled=no distance=1 dst-address=9.9.9.10/32 \
    gateway=0.0.0.0 pref-src=0.0.0.0 routing-table=main scope=11 \
    suppress-hw-offload=no target-scope=10
add check-gateway=ping disabled=no distance=1 dst-address=10.254.10.1/32 \
    gateway=8.8.8.8 pref-src=0.0.0.0 routing-table=main scope=12 \
    suppress-hw-offload=no target-scope=11
add check-gateway=ping disabled=no distance=1 dst-address=10.254.10.1/32 \
    gateway=208.67.222.222 pref-src=0.0.0.0 routing-table=main scope=12 \
    suppress-hw-offload=no target-scope=11
add check-gateway=ping disabled=no distance=1 dst-address=10.254.20.2/32 \
    gateway=8.8.4.4 pref-src=0.0.0.0 routing-table=main scope=12 \
    suppress-hw-offload=no target-scope=11
add check-gateway=ping disabled=no distance=1 dst-address=10.254.20.2/32 \
    gateway=208.67.220.220 pref-src=0.0.0.0 routing-table=main scope=12 \
    suppress-hw-offload=no target-scope=11
add check-gateway=ping disabled=no distance=1 dst-address=10.254.30.3/32 \
    gateway=9.9.9.9 pref-src=0.0.0.0 routing-table=main scope=12 \
    suppress-hw-offload=no target-scope=11
add check-gateway=ping disabled=no distance=1 dst-address=10.254.30.3/32 \
    gateway=9.9.9.10 pref-src=0.0.0.0 routing-table=main scope=12 \
    suppress-hw-offload=no target-scope=11
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.254.10.1 pref-src=\
    0.0.0.0 routing-table=ISP1 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=10.254.20.2 pref-src=\
    0.0.0.0 routing-table=ISP1 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=3 dst-address=0.0.0.0/0 gateway=10.254.30.3 pref-src=\
    0.0.0.0 routing-table=ISP1 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.254.20.2 pref-src=\
    0.0.0.0 routing-table=ISP2 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=10.254.10.1 pref-src=\
    0.0.0.0 routing-table=ISP2 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=3 dst-address=0.0.0.0/0 gateway=10.254.30.3 pref-src=\
    0.0.0.0 routing-table=ISP2 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.254.30.3 pref-src=\
    0.0.0.0 routing-table=ISP3 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=10.254.10.1 pref-src=\
    0.0.0.0 routing-table=ISP3 scope=30 suppress-hw-offload=no target-scope=12
add disabled=no distance=3 dst-address=0.0.0.0/0 gateway=10.254.20.2 pref-src=\
    0.0.0.0 routing-table=ISP3 scope=30 suppress-hw-offload=no target-scope=12
add blackhole disabled=no distance=20 dst-address=208.67.220.220/32 gateway=\
    0.0.0.0 pref-src=0.0.0.0 routing-table=main scope=11 suppress-hw-offload=no \
    target-scope=10
add blackhole disabled=no distance=20 dst-address=208.67.222.222/32 gateway=\
    0.0.0.0 pref-src=0.0.0.0 routing-table=main scope=11 suppress-hw-offload=no \
    target-scope=10
add blackhole disabled=no distance=20 dst-address=8.8.8.8/32 gateway=0.0.0.0 \
    pref-src=0.0.0.0 routing-table=main scope=11 suppress-hw-offload=no \
    target-scope=10
add blackhole disabled=no distance=20 dst-address=9.9.9.9/32 gateway=0.0.0.0 \
    pref-src=0.0.0.0 routing-table=main scope=11 suppress-hw-offload=no \
    target-scope=10
add blackhole disabled=no distance=20 dst-address=9.9.9.10/32 gateway=0.0.0.0 \
    pref-src=0.0.0.0 routing-table=main scope=11 suppress-hw-offload=no \
    target-scope=10
add blackhole disabled=no distance=20 dst-address=8.8.4.4/32 gateway=0.0.0.0 \
    pref-src=0.0.0.0 routing-table=main scope=11 suppress-hw-offload=no \
    target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.254.10.1 pref-src=\
    0.0.0.0 routing-table=main scope=30 suppress-hw-offload=no target-scope=30
add disabled=no distance=3 dst-address=0.0.0.0/0 gateway=10.254.30.3 pref-src=\
    0.0.0.0 routing-table=main scope=30 suppress-hw-offload=no target-scope=30
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=10.254.20.2 pref-src=\
    0.0.0.0 routing-table=main scope=30 suppress-hw-offload=no target-scope=30
/ip upnp
set enabled=yes
/ip upnp interfaces
add interface=bridge type=internal
add interface=ISP3 type=external
add interface=ISP2 type=external
add interface=ISP1 type=external
add interface=ISP3 type=external
/system clock
set time-zone-name=Europe/Budapest
/system routerboard settings
set silent-boot=yes
/system script
add dont-require-permissions=no name=dhcp_sn_ISP1 owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":lo\
    cal iflist \"WAN\"\r\
    \n:local fwlist \"ISP_DHCP_NET\"\r\
    \n:local ifname \"ISP1\"\r\
    \n/ip firewall address-list remove [find where list=\$fwlist && comment=\$if\
    name]\r\
    \n:foreach addressid in=[/ip address find where interface=\$ifname] do={\r\
    \n    :local ifaddr [/ip address get \$addressid address]\r\
    \n    /ip firewall address-list add list=\$fwlist address=\$ifaddr comment=\
    \$ifname\r\
    \n}\r\
    \n"
add dont-require-permissions=no name=dhcp_sn_ISP2 owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":lo\
    cal iflist \"WAN\"\r\
    \n:local fwlist \"ISP_DHCP_NET\"\r\
    \n:local ifname \"ISP2\"\r\
    \n/ip firewall address-list remove [find where list=\$fwlist && comment=\$if\
    name]\r\
    \n:foreach addressid in=[/ip address find where interface=\$ifname] do={\r\
    \n    :local ifaddr [/ip address get \$addressid address]\r\
    \n    /ip firewall address-list add list=\$fwlist address=\$ifaddr comment=\
    \$ifname\r\
    \n}\r\
    \n"
add dont-require-permissions=no name=dhcp_sn_ISP3 owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":lo\
    cal iflist \"WAN\"\r\
    \n:local fwlist \"ISP_DHCP_NET\"\r\
    \n:local ifname \"ISP3\"\r\
    \n/ip firewall address-list remove [find where list=\$fwlist && comment=\$if\
    name]\r\
    \n:foreach addressid in=[/ip address find where interface=\$ifname] do={\r\
    \n    :local ifaddr [/ip address get \$addressid address]\r\
    \n    /ip firewall address-list add list=\$fwlist address=\$ifaddr comment=\
    \$ifname\r\
    \n}\r\
    \n"

Nem hagyom figyelmen kívül... Épp ezért nem piszkáltuk még sehol bottal se a 7-est. Ez az első teszt. Gondoltam már eltelt annyi idő, hogy a szar bugokat javították. Ezek szerint nem....

Mikrotik IRC-en is jártam már többször a problémával, ott többnyire elintézték azzal, hogy a 6-os halott bro, belinkelt 1-2 wikit meg fórumot, hogy így kell, takarodjak olvasni. Én meg hiába mondtam, hogy kurvára nem megy, és leszarom bro, de a 6-os működik...

"Sose a gép a hülye."

Na igen a fejlesztők fejlesztenek, de normális frissen tartott manuálra már nem telik, bezzeg a bajszos szemüveges köcsögre, aki játssza a lett mesemondót a youtube-on, na rá telik :(

De pl a cake-t meg ott hagyták félkészen, egy figyelmeztetéssel, hogy nehogy a cake-n belül állítsd be a sávszelet (az auto sebesség dettó :( , pedig az lenne a poén) mert szarrá fagyhat a kernel, vagy minimum a szülő interfész (na ezt viszont nem írják :D )

Ez a figyelmeztetés merre van? A help-en nem látom.

Nekem az fáj leginkább, hogy nincs még LTS ág a 7es verzión, így sokkal később jutunk el egy stabil release-hez. :/

Fura dolog ez a YT,  ha nem lenne rá igény, nyilván nem tolnának bele erőforrást sem. De manapság már "menő" burkoló sem tudsz lenni, ha nincs saját csatornád róla...rtfm?...öregszünk, vagy a világ változik.

"The only valid measurement of code quality: WTFs/min"

Rögtönöztem egy ilyet:

https://ibb.co/CwYsTG3

Ezt használja:

https://ibb.co/y4Gd8gH

De simán az "Autorate ingress" se százas még simple queue-ként használva se, amikre nem hoz figyelmeztetést. Vagy nem állítunk be semmilyen sebességet magánál a Queue Type-nál, vagy használunk helyette más ütemezőt.

Egy konfigot vagy a releváns részletet azért megoszthatnád, úgy valamivel könnyebb lenne ötletelni, mi lehet a gond.

Mélyebben most nem gondolnék bele, hol mászhat el, de amin el szokott, az pl. a megfelelő mangle sorok esetén a passthrough opció hiánya (1. csomag connection mark után még tovább kell mennie és már az alapján a packet-et route mark-olni. Ha nincs passthrough, ez nem történik meg). Illetve a router-re/-ről közlekedő csomagoknak külön input/output chain-be kell felvenni ugyanazokat a mark szabályokat, nem elég a prerouting/postrouting.

"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"

Mindenkinek: ma este talán eljutok oda, hogy konfigrészletet adjak... :)

"Sose a gép a hülye."

Mindenkinek köszi, aki ránéz. :)

[a@B] /ip/firewall/mangle> print
Flags: X - disabled, I - invalid; D - dynamic 
 0  D ;;; special dummy rule to show fasttrack counters
      chain=prerouting action=passthrough 

 1  D ;;; special dummy rule to show fasttrack counters
      chain=forward action=passthrough 

 2  D ;;; special dummy rule to show fasttrack counters
      chain=postrouting action=passthrough 

 3    ;;; WAN1-es listas eszkozok fixen WAN1 fele
      chain=prerouting action=mark-connection new-connection-mark=WAN1_conn passthrough=yes connection-state=new src-address-list=WAN1-net-list dst-address-list=!private-addresses 

 4    ;;; WAN2-es listas eszkozok fixen WAN2 fele
      chain=prerouting action=mark-connection new-connection-mark=WAN2_conn passthrough=yes connection-state=new src-address-list=WAN2-net-list dst-address-list=!private-addresses 

 5    ;;; WAN3-es listas eszkozok fixen WAN3 fele
      chain=prerouting action=mark-connection new-connection-mark=WAN3_conn passthrough=yes connection-state=new src-address-list=WAN3-net-list dst-address-list=!private-addresses 

 6    ;;; ========== INPUT connections ==========
      chain=input action=passthrough 

 7 X  chain=input action=mark-connection new-connection-mark=WAN1_conn passthrough=yes connection-state=new connection-mark=no-mark in-interface=telekom 

 8 X  chain=input action=mark-connection new-connection-mark=WAN2_conn passthrough=yes connection-state=new connection-mark=no-mark in-interface=net-portal 

 9 X  chain=input action=mark-connection new-connection-mark=WAN3_conn passthrough=yes connection-state=new connection-mark=no-mark in-interface=ether4 

10    ;;; ========== OUTPUT connections ==========
      chain=output action=passthrough 

11 X  chain=output action=mark-connection new-connection-mark=WAN2_conn passthrough=yes connection-state=new connection-mark=no-mark out-interface=net-portal log=yes log-prefix="YYYYY: " 

12 X  chain=output action=mark-connection new-connection-mark=WAN1_conn passthrough=yes connection-state=new connection-mark=no-mark out-interface=telekom log=yes log-prefix="YYYYY: " 

13 X  chain=output action=mark-connection new-connection-mark=WAN3_conn passthrough=yes connection-state=new connection-mark=no-mark out-interface=ether4 log=yes log-prefix="YYYYY: " 

14    ;;; ========== WAN -> LAN forwardok ==========
      chain=forward action=passthrough 

15    chain=forward action=mark-connection new-connection-mark=WAN1_conn passthrough=yes connection-state=new connection-mark=no-mark in-interface=telekom 

16    chain=forward action=mark-connection new-connection-mark=WAN2_conn passthrough=yes connection-state=new connection-mark=no-mark in-interface=net-portal 

17    chain=forward action=mark-connection new-connection-mark=WAN3_conn passthrough=yes connection-state=new connection-mark=no-mark in-interface=ether4 

18    ;;; ========== LAN -> WAN forwardok ==========
      chain=forward action=passthrough 

19    chain=forward action=mark-connection new-connection-mark=WAN1_conn passthrough=yes connection-state=new connection-mark=no-mark out-interface=telekom 

20    chain=forward action=mark-connection new-connection-mark=WAN2_conn passthrough=yes connection-state=new connection-mark=no-mark out-interface=net-portal 

21    chain=forward action=mark-connection new-connection-mark=WAN3_conn passthrough=yes connection-state=new connection-mark=no-mark out-interface=ether4 

22    ;;; ========== Connection mark -> Routing mark ==========
      chain=output action=passthrough 

23    chain=output action=mark-routing new-routing-mark=WAN1 passthrough=yes connection-mark=WAN1_conn log=yes log-prefix="XXXXX: " 

24    chain=output action=mark-routing new-routing-mark=WAN2 passthrough=yes connection-mark=WAN2_conn log=yes log-prefix="XXXXX: " 

25    chain=output action=mark-routing new-routing-mark=WAN3 passthrough=yes connection-mark=WAN3_conn log=yes log-prefix="XXXXX: " 

26    chain=prerouting action=mark-routing new-routing-mark=WAN1 passthrough=yes connection-mark=WAN1_conn 

27    chain=prerouting action=mark-routing new-routing-mark=WAN2 passthrough=yes connection-mark=WAN2_conn 

28    chain=prerouting action=mark-routing new-routing-mark=WAN3 passthrough=yes connection-mark=WAN3_conn 

[a@B] /ip/firewall/mangle> /routing/table print    
Flags: D - dynamic; X - disabled, I - invalid; U - used 
 0 D   name="main" fib 

 1     name="WAN1" fib 

 2     name="WAN2" fib 

 3     name="WAN3" fib 

[a@B] /ip/firewall/mangle> /ip route/print det
Flags: D - dynamic; X - disabled, I - inactive, A - active; c - connect, s - static, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn, m - modem, y - bgp-mpls-vpn; H - hw-offloaded; 
+ - ecmp 
   DAv   dst-address=0.0.0.0/0 routing-table=main pref-src="" gateway=telekom immediate-gw=telekom distance=10 scope=30 target-scope=10 vrf-interface=telekom suppress-hw-offload=no 

   D d   dst-address=0.0.0.0/0 routing-table=main pref-src="" gateway=89.134.67.254 immediate-gw=89.134.67.254%ether4 distance=20 scope=30 target-scope=10 vrf-interface=ether4 
         suppress-hw-offload=no 

   D v   dst-address=0.0.0.0/0 routing-table=main pref-src="" gateway=net-portal immediate-gw=net-portal distance=30 scope=30 target-scope=10 vrf-interface=net-portal 
         suppress-hw-offload=no 

   DAc + dst-address=10.0.0.0/24 routing-table=main gateway=br2 immediate-gw=br2 distance=0 scope=10 suppress-hw-offload=no local-address=10.0.0.3%br2 

   DAc + dst-address=10.0.0.0/24 routing-table=main gateway=br2 immediate-gw=br2 distance=0 scope=10 suppress-hw-offload=no local-address=10.0.0.2%br2 

   DAc + dst-address=10.0.0.0/24 routing-table=main gateway=br2 immediate-gw=br2 distance=0 scope=10 suppress-hw-offload=no local-address=10.0.0.1%br2 

   DAc   dst-address=10.0.40.9/32 routing-table=main gateway=net-portal immediate-gw=net-portal distance=0 scope=10 suppress-hw-offload=no local-address=91.147.235.39%net-portal 

   DAc   dst-address=89.134.64.0/22 routing-table=main gateway=ether4 immediate-gw=ether4 distance=0 scope=10 suppress-hw-offload=no local-address=89.134.66.87%ether4 

   DAc   dst-address=145.236.238.139/32 routing-table=main gateway=telekom immediate-gw=telekom distance=0 scope=10 suppress-hw-offload=no local-address=91.120.133.208%telekom 

   DAc   dst-address=192.168.34.0/24 routing-table=main gateway=br34 immediate-gw=br34 distance=0 scope=10 suppress-hw-offload=no local-address=192.168.34.1%br34 

   DAc   dst-address=192.168.134.0/24 routing-table=main gateway=br134 immediate-gw=br134 distance=0 scope=10 suppress-hw-offload=no local-address=192.168.134.1%br134 

   DAc   dst-address=192.168.234.0/24 routing-table=main gateway=br234 immediate-gw=br234 distance=0 scope=10 suppress-hw-offload=no local-address=192.168.234.1%br234 

52  As   dst-address=0.0.0.0/0 routing-table=WAN1 pref-src="" gateway=telekom immediate-gw=telekom distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

53  As   dst-address=192.168.34.0/24 routing-table=WAN1 pref-src="" gateway=br34 immediate-gw=br34 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

54  As   dst-address=192.168.134.0/24 routing-table=WAN1 pref-src="" gateway=br134 immediate-gw=br134 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

55  As   dst-address=192.168.234.0/24 routing-table=WAN1 pref-src="" gateway=br234 immediate-gw=br234 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

56  As   dst-address=0.0.0.0/0 routing-table=WAN2 pref-src="" gateway=net-portal immediate-gw=net-portal distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

57  As   dst-address=192.168.34.0/24 routing-table=WAN2 pref-src="" gateway=br34 immediate-gw=br34 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

58  As   dst-address=192.168.134.0/24 routing-table=WAN2 pref-src="" gateway=br134 immediate-gw=br134 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

59  As   dst-address=192.168.234.0/24 routing-table=WAN2 pref-src="" gateway=br234 immediate-gw=br234 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

60  As   dst-address=0.0.0.0/0 routing-table=WAN3 pref-src="" gateway=89.134.67.254 immediate-gw=89.134.67.254%ether4 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

61  As   dst-address=192.168.34.0/24 routing-table=WAN3 pref-src="" gateway=br34 immediate-gw=br34 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

62  As   dst-address=192.168.134.0/24 routing-table=WAN3 pref-src="" gateway=br134 immediate-gw=br134 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

63  As   dst-address=192.168.234.0/24 routing-table=WAN3 pref-src="" gateway=br234 immediate-gw=br234 distance=1 scope=30 target-scope=10 suppress-hw-offload=no 

[a@B] /ip/firewall/mangle>

Az ip route kimenetből kivettem a nem releváns sorokat (egy csomó static meg dynamic route). Így van az, hogy LAN -> WAN irány, illetve a WAN -> LAN irány megy. Ha a mangle-nél a 7,8,9-et engedélyezem, akkor van az, hogy kintről mikrotikre első ping megjön, a többi utána nem. Az output meg emlékeim szerint egyáltalán nem megy, de ezt most nem akarom távolról kipróbálni, nehogy kizárjam magam, talán majd holnap.

Ami még talán lényeges a fast-path, ki van kapcsolva természetesen:

[a@B] /ip/settings> print
             ip-forward: yes
         send-redirects: yes
    accept-source-route: no
       accept-redirects: no
       secure-redirects: yes
              rp-filter: no
         tcp-syncookies: no
   max-neighbor-entries: 8192
            arp-timeout: 30s
        icmp-rate-limit: 10
         icmp-rate-mask: 0x1818
            route-cache: yes
        allow-fast-path: no
  ipv4-fast-path-active: no
 ipv4-fast-path-packets: 0
   ipv4-fast-path-bytes: 0
  ipv4-fasttrack-active: no
 ipv4-fasttrack-packets: 0
   ipv4-fasttrack-bytes: 0
[a@B] /ip/settings>

"Sose a gép a hülye."

Szia!

"Sajnos" a 7-es váltást nem tudod elkerülni. Egyre több eszköz "v7 only". Másfél éve csak v7-et használok, van veled gond, ezt nem tagadom, de a 6-os felett elment az idő és a hardver is.

A configoddal kapcsolatban:

chain=forward action=passthrough
- ez a sor nem teljesen világos, miért is kell.

A mangle ágban a forwardban jelölöd meg a kapcsolatokat, csomagokat. Ezt ajánlás szerint a preroutingban kellene (ahogy bennyh  is megoldotta).

Felrakok több helyen működő mangle szabályokat (próbáltam értelemszerűen szétszedni), én ezekben interface-list-et használok.

/interface list
add name=LAN
add name=WAN1
add name=WAN2

/interface list member
add interface=bridge_LAN list=LAN
add interface=ether1 list=WAN1
add interface=lte1 list=WAN2

 

/ip firewall mangle
add action=mark-connection chain=input connection-state=new in-interface-list=WAN1 new-connection-mark=WAN1-incoming
add action=mark-connection chain=input connection-state=new in-interface-list=WAN2 new-connection-mark=WAN2-incoming

add action=mark-connection chain=prerouting in-interface-list=WAN1 new-connection-mark=WAN1-forward passthrough=yes
add action=mark-connection chain=prerouting in-interface-list=WAN2 new-connection-mark=WAN2-forward passthrough=yes

add action=mark-routing chain=prerouting connection-mark=WAN1-masq-connection in-interface-list=LAN new-routing-mark=WAN1-route
add action=mark-routing chain=prerouting connection-mark=WAN2-masq-connection in-interface-list=LAN new-routing-mark=WAN2-route
add action=mark-routing chain=prerouting connection-mark=WAN1-forward in-interface-list=LAN new-routing-mark=WAN1-route
add action=mark-routing chain=prerouting connection-mark=WAN2-forward in-interface-list=LAN new-routing-mark=WAN2-route

add action=mark-routing chain=output connection-mark=WAN1-incoming new-routing-mark=WAN1-route
add action=mark-routing chain=output connection-mark=WAN2-incoming new-routing-mark=WAN2-route
add action=mark-routing chain=output connection-mark=WAN1-forward new-routing-mark=WAN1-route passthrough=yes
add action=mark-routing chain=output connection-mark=WAN2-forward new-routing-mark=WAN2-route passthrough=yes

/routing table
add fib name=WAN1-route
add fib name=WAN2-route

/ip route
add distance=1 gateway=WAN1-interface routing-mark=WAN1-route
add distance=1 gateway=WAN2-interface routing-mark=WAN2-route

 

Ajánlom a Kalapos Laci által üzemeltetett Mikrotik facebook csoportot, jó velük a tapasztalat.

De a hardver nem új... Már úgy nem új, hogy nem olyan board, ami korábban nem volt.

chain=forward action=passthrough
- ez a sor nem teljesen világos, miért is kell.

Hogy legyen hova írni a commentet. :)

 

Próbáltam preroutinggal is, és úgy sem volt jó emlékeim szerint. Illetve preroutingnál még nincs out-interface még, a postroutinggal meg szintén mintha lett volna valami...

 

Nem tudom mi az a csoport, nem tudom ki az a Kalapos Laci, de amúgy se akarok ilyennel facebookra menni. Miért szeretik az emberek a facebookot (vagy tetszőleges ilyen "közösségi média" szart) olyan dolgokra használni, amire baromira nem való?

"Sose a gép a hülye."

"Sose a gép a hülye." - (hnsz2002)

"Nem tudom mi az a csoport, nem tudom ki az a Kalapos Laci, de amúgy se akarok ilyennel facebookra menni. Miért szeretik az emberek a facebookot (vagy tetszőleges ilyen "közösségi média" szart) olyan dolgokra használni, amire baromira nem való?"

Nem szeretem a Facebookot, de a szakmai csoportokban (zárt) általában kapok normális választ a fórumokkal ellentétben.

Kalapos Laci - Mikrotik oktató

 

A fenti konfigot kipróbáltam egy eszközön(v7.10) és teszi a dolgát.

Sok sikert a továbbiakhoz! : )

 

 

Értem, de teljesen alkalmatlan ilyenekre, nem lehet rendesen formázni a szöveget, egy rendes kódrészletet beilleszteni, rendesen válaszolni, a kereshetőségéről meg ne is beszéljük.

"Kalapos Laci - Mikrotik oktató"

Ezt közben megtaláltam, azt viszont nem, hogy melyik az "ő csoportja"

"A fenti konfigot kipróbáltam egy eszközön(v7.10) és teszi a dolgát."

Mármint az én konfigomat? Mert akkor frissítek egyet és megnézem.

"Sose a gép a hülye."

add action=mark-connection chain=prerouting in-interface-list=WAN1 new-connection-mark=WAN1-forward passthrough=yes
add action=mark-connection chain=prerouting in-interface-list=WAN2 new-connection-mark=WAN2-forward passthrough=yes

Itt nincs sem new, sem no-mark filter, szóval ezen minden eges csomag átfut... Nem szokott lefőni a CPU?

"Sose a gép a hülye."

Meguntam. Fasz kivan. Nem működik. Nem értem. Visszaraktam a 6.49-et. Majd talán 1-2 év múlva...

"Sose a gép a hülye."