RouterOS (MikroTik) instellingen

Voor mijn (glasvezel)verbinding met Freedom gebruik ik een eigen router van het merk MikroTik meet daarop hun eigen RouterOS. Het configureren wat lastiger dan met een Fritz!Box maar met wat uitzoekwerk is het wel te doen. Hierbij deel ik mijn configuratie in de hoop anderen op weg te helpen en er wellicht zelf ook iets aan te hebben mocht iemand verbeteringen hierop hebben.

Deze config is voor een exemplaar met 6 poorten, waarvan er één een SFP poort is waarin ik een geschikte module heb geschoven. Op ether1 kun je eventueel ook een conventionele koperkabel gebruiken. De ether2 en ether3 poorten zijn voor het interne netwerk, de ether4 of ether5 poort voor de TV ontvanger. Ik heb de IPTV box dus niet opgenomen in hetzelfde subnet als de rest van het interne netwerk (192.168.1.0/24) maar een eigen subnet (192.168.10.0/24) gegeven op een aparte poort.
Ik ga uit van een default configuratie.

Hopelijk heb ik alles goed gekopieerd/geplakt en niet te veel wegge-edit…

Interfaces

/interface ethernet
set [ find default-name=sfp1 ] \
    advertise=100M-half,100M-full,1000M-half,1000M-full \
    auto-negotiation=no \
    comment="WAN port (VLANS 4 & 6, SFP)" \
    l2mtu=1598 \
    loop-protect=off \
    mtu=1508 \
    name=ether0 \
    rx-flow-control=auto \
    tx-flow-control=auto
set [ find default-name=ether1 ] \
    comment="WAN port (VLANS 4 & 6)" \
    loop-protect=off \
    mtu=1508
set [ find default-name=ether2 ] comment=DMZ
set [ find default-name=ether3 ] comment=DMZ
set [ find default-name=ether4 ] comment=IPTV
set [ find default-name=ether5 ] comment=IPTV

/interface vlan
add interface=bridge-WAN \
    mtu=1500 \
    name=vlan1.4 \
    vlan-id=4
add interface=bridge-WAN \
    mtu=1508 \
    name=vlan1.6 \
    vlan-id=6

/ppp profile
set *0 \
    change-tcp-mss=no \
    only-one=yes \
    use-compression=yes \
    use-upnp=no

/interface pppoe-client
add add-default-route=yes \
    allow=pap \
    disabled=no \
    interface=vlan1.6 \
    keepalive-timeout=20 \
    max-mru=1500 \
    max-mtu=1500 \
    name=PPPoE \
    service-name="Freedom Internet" \
    use-peer-dns=yes \
    user=WANrouter1@freedom.nl \
    password=1234

/interface bridge
add arp=proxy-arp \
    auto-mac=no \
    igmp-snooping=yes \
    mtu=1500 \
    name=bridge-DMZ \
    protocol-mode=none
add igmp-snooping=yes \
    mtu=1500 \
    name=bridge-IPTV \
    protocol-mode=none
add mtu=1508 \
    name=bridge-WAN \
    protocol-mode=none

/interface bridge port
add bridge=bridge-DMZ interface=ether2
add bridge=bridge-DMZ interface=ether3
add bridge=bridge-IPTV interface=ether5
add bridge=bridge-IPTV interface=ether4
add bridge=bridge-WAN interface=ether1
add bridge=bridge-WAN interface=ether0

/interface list
add name=DMZ
add name=WAN
add name="WAN (IPTV)"
add name="LAN (IPTV)"

/interface list member
add interface=bridge-DMZ list=DMZ
add interface=PPPoE list=WAN
add interface=vlan1.4 list="WAN (IPTV)"
add interface=bridge-IPTV list="LAN (IPTV)"

IP instellingen:

/ip address
add address=192.168.1.254/24 interface=bridge-DMZ network=192.168.1.0
add address=192.168.10.1/24 interface=bridge-IPTV network=192.168.10.0

De DHCP instellingen:

/ip pool
add name=DMZ-dyn-pool \
    ranges=192.168.1.64/26
add name=IPTV-dyn-pool \
    ranges=192.168.10.64/26

/ip dhcp-client option
add code=60 \
    name=option60-vendorclass \
    value="'IPTV_RG'"

/ip dhcp-server option
add code=60 \
    name=option60-vendorclass \
    value="'IPTV_RG'"
add code=28 \
    name=option28-broadcast \
    value="'192.168.1.255'"
add code=28 \
    name=option28-broadcast-10 \
    value="'192.168.10.255'"

/ip dhcp-server option sets
add name=IPTV \
    options=option60-vendorclass,option28-broadcast-10
add name=DMZ \
    options=option28-broadcast

/ip dhcp-server
add add-arp=yes \
    address-pool=DMZ-dyn-pool \
    bootp-support=none \
    dhcp-option-set=DMZ \
    disabled=no \
    interface=bridge-DMZ \
    name=dhcp-dmz
add add-arp=yes \
    address-pool=IPTV-dyn-pool \
    bootp-support=none \
    client-mac-limit=16 \
    dhcp-option-set=IPTV \
    disabled=no \
    interface=bridge-IPTV \
    lease-time=1h \
    name=dhcp-iptv

/ip dhcp-server network
add address=192.168.1.0/24 \
    comment=DMZ \
    dns-server=192.168.1.53 \
    domain=dmz.internal \
    gateway=192.168.1.254 \
    netmask=24
add address=192.168.10.0/24 \
    comment=IPTV \
    dhcp-option-set=IPTV \
    dns-server=192.168.1.53 \
    domain=iptv.internal \
    gateway=192.168.10.1 \
    netmask=24

Dit is de DHCP static lease voor de IPTV box (IP adres 192.168.10.126, het MAC adres hier is het MAC adres van jouw Amino; deze moet je hier aanpassen):

/ip dhcp-server lease
add address=192.168.10.126 \
    client-id=1:5c:f:0:1:2:3 \
    mac-address=5C:0F:00:01:02:03 \
    server=dhcp-iptv

Dit is voor IPTV DHCP uit VLAN 4:

/ip dhcp-client
add comment="DHCP on VLAN4 of WAN interface for IPTV, auto-add IP address to an address list for reverse NAT"
    dhcp-options=clientid,clientid_duid,hostname \
    disabled=no \
    interface=vlan1.4 \
    use-peer-dns=no \
    use-peer-ntp=no \
    script=":local addrlist \"iptv_dhcp_obtained\"\
    \n:local count [/ip firewall address-list print count-only where list=\$\"addrlist\"]\
    \n:if (\$bound=1) do={ \
    \n    :if (\$count = 0) do={\
    \n        /ip firewall address-list add address=\$\"lease-address\" comment=\"Auto-added on new lease\" list=\$\"addrlist\"\
    \n    } else={\
    \n        :if (\$count = 1) do={\
    \n            /ip firewall address-list set [ /ip firewall address-list find list=\$\"addrlist\" ] address=\$\"lease-address\"\
    \n        } else={\
    \n            :error \"Multiple addresses in address list: \$addrlist\"\
    \n        }\
    \n    }\
    \n}"

Firewal IPv4

/ip firewall address-list
add address=185.41.48.0/24 \
    list=for_iptv_wan
add address=185.24.175.0/24 \
    list=for_iptv_wan
add address=185.24.175.210 \
    list=contain_iptv_ip
add address=192.168.10.126 \
    list=contain_iptv_ip
add address=10.10.24.29 \
    comment="Auto-added on new lease" \
    list=iptv_dhcp_obtained

/ip firewall filter
add action=accept \
    chain=input \
    comment="Accept all connections to IPTV ports" \
    in-interface=bridge-IPTV
add action=accept \
    chain=input \
    comment="Accept unicast connections to vlan1.4" \
    in-interface=vlan1.4 \
    src-address-type=unicast
add action=accept \
    chain=input \
    comment="Accept connections from LAN and DMZ to DMZ" \
    in-interface=bridge-DMZ \
    src-address=192.168.0.0/16
add action=accept \
    chain=input \
    comment="defconf: accept established,related,untracked" \
    connection-state=established,related,untracked
add action=drop \
    chain=input \
    comment="Drop invalid connections" \
    connection-state=invalid \
    log=yes \
    log-prefix="drop invalid"
add action=drop \
    chain=input \
    comment="Drop all other connections to WAN ports" \
    in-interface-list=WAN \
    log=yes \
    log-prefix="drop WAN"
add action=drop \
    chain=input \
    comment="Drop all remaining connections, just to be sure"\
    log=yes\
    log-prefix=\
    "drop remaining"
add action=accept \
    chain=forward \
    comment="Forward unicast for IPTV" \
    out-interface=bridge-IPTV \
    src-address-type=unicast
add action=accept \
    chain=forward \
    in-interface=vlan1.4 \
    out-interface=bridge-IPTV
add action=fasttrack-connection \
    chain=forward \
    comment="defconf: fasttrack" \
    connection-state=established,related
add action=accept \
    chain=forward \
    comment="RTSP marked" \
    packet-mark=rtsp
add action=accept \
    chain=forward \
    comment="defconf: accept established,related, untracked" \
    connection-state=established,related,untracked
add action=accept \
    chain=forward \
    in-interface-list=!WAN \
    log-prefix="ping forward" \
    protocol=icmp
add action=accept \
    chain=forward \
    comment="Forward connections to multicast group" \
    protocol=igmp
add action=accept \
    chain=forward \
    comment="Forward DMZ -> WAN" \
    in-interface-list=DMZ \
    out-interface-list=WAN
add action=accept \
    chain=forward \
    dst-port=80 \
    in-interface-list=WAN \
    out-interface-list=DMZ \
    protocol=tcp
add action=accept \
    chain=forward \
    dst-port=443 \
    in-interface-list=WAN \
    out-interface-list=DMZ \
    protocol=tcp
add action=accept \
    chain=forward \
    comment="Outgoing connections" \
    in-interface=bridge-IPTV \
    protocol=udp
add action=accept \
    chain=forward \
    in-interface=bridge-IPTV \
    out-interface=PPPoE
add action=accept \
    chain=forward \
    in-interface=bridge-IPTV \
    out-interface=vlan1.4
add action=drop \
    chain=forward \
    comment="defconf: drop invalid" \
    connection-state=invalid \
    log=yes \
    log-prefix="drop invalid"
add action=drop \
    chain=forward \
    comment="Drop all the rest from IPTV zone" \
    in-interface=vlan1.4
add action=drop \
    chain=forward \
    comment="defconf: drop all from WAN not DSTNATed" \
    connection-nat-state=!dstnat \
    connection-state=new \
    in-interface-list=WAN
add action=drop \
    chain=forward \
    comment="Drop all the rest, to be sure" \
    log=yes \
    log-prefix="drop remaining"

/ip firewall mangle
add action=change-mss \
    chain=forward \
    comment="Change MSS for PPPoE out - for testing" \
    disabled=yes \
    new-mss=1428 \
    out-interface=PPPoE \
    passthrough=yes \
    protocol=tcp \
    tcp-flags=syn \
    tcp-mss=1429-65535
add action=mark-connection \
    chain=forward \
    comment="RTSP connection marking" \
    connection-mark=no-mark \
    layer7-protocol=rtsp \
    new-connection-mark=rtsp_conn \
    passthrough=yes
add action=mark-connection \
    chain=forward \
    comment="RTSP connection marking (RTSP over HTTP)" \
    connection-mark=no-mark \
    layer7-protocol=rtsp_http \
    new-connection-mark=rtsp_conn \
    passthrough=yes
add action=mark-packet \
    chain=prerouting \
    comment="RTSP - Connection based packet marking" \
    connection-mark=rtsp_conn \
    new-packet-mark=rtsp \
    passthrough=no

NAT rules IPv4 (vervang 45.1.2.3 door jouw eigen public IP adres, 192.168.10.126 is de IPTV box)

/ip firewall nat
add action=masquerade \
    chain=srcnat \
    comment="Masquerade for IPTV (no static IP)" \
    out-interface=vlan1.4
add action=dst-nat \
    chain=dstnat \
    comment="Any to-address (from VLAN4) -> IPTV box" \
    dst-address-list=iptv_dhcp_obtained \
    in-interface=vlan1.4 \
    to-addresses=192.168.10.126
add action=src-nat \
    chain=srcnat \
    comment="Masquerade replaced by source-NAT (preferred for static WAN-IP)" \
    out-interface=PPPoE \
    to-addresses=45.1.2.3
add action=dst-nat \
    chain=dstnat \
    dst-address=45.1.2.3 \
    dst-port=80 \
    in-interface=PPPoE \
    protocol=tcp \
    src-address=!192.168.0.0/16 \
    to-addresses=192.168.1.6 \
    to-ports=80
add action=dst-nat \
    chain=dstnat \
    dst-address=45.1.2.3 \
    dst-port=443 \
    in-interface=PPPoE \
    protocol=tcp \
    src-address=!192.168.0.0/16 \
    to-addresses=192.168.1.6 \
    to-ports=443
add action=dst-nat \
    chain=dstnat \
    dst-address=45.1.2.3 \
    in-interface=PPPoE \
    src-address=185.24.172.21 \
    to-addresses=192.168.10.126
add action=dst-nat \
    chain=dstnat \
    dst-address=45.1.2.3 \
    dst-port=!53 \
    in-interface=PPPoE \
    log=yes \
    log-prefix=UDP_destNAT \
    protocol=udp \
    to-addresses=192.168.10.126

IPv6 (vergeet niet jouw eigen IPv6 adressen en prefix hier in te vullen; 2a10:3781:abcd:: is bogus en bedoeld als voorbeeld):

/ipv6 address
add address=2a10:3781:abcd:1::254 \
    interface=bridge-DMZ
add address=2a10:3781:abcd:10::254 \
    interface=bridge-IPTV

/ipv6 dhcp-client
add add-default-route=yes \
    interface=PPPoE \
    pool-name=global_pool \
    request=prefix \
    use-peer-dns=no

/ipv6 firewall filter
add action=add-src-to-address-list \
    address-list=ipv6_in_use \
    address-list-timeout=1m \
    chain=forward comment="Note actively used IPv6 addresses for 1 minute" \
    dst-address=!2a10:3781:abcd::/48 \
    src-address=2a10:3781:abcd::/48
add action=add-dst-to-address-list \
    address-list=ipv6_addresses_contacted \
    address-list-timeout=1m \
    chain=forward \
    dst-address=!2a10:3781:abcd::/48 \
    src-address=2a10:3781:abcd::/48
add action=accept \
    chain=input \
    comment="Accept ping6" \
    in-interface-list=WAN \
    protocol=icmpv6
add action=accept \
    chain=input \
    in-interface=bridge-DMZ
add action=accept \
    chain=forward \
    in-interface=PPPoE \
    out-interface=bridge-IPTV
add action=accept \
    chain=forward \
    in-interface=bridge-DMZ \
    out-interface=PPPoE
add action=accept \
    chain=forward \
    comment="Forward related connections" \
    connection-state=related \
    in-interface-list=WAN
add action=accept \
    chain=forward \
    comment="Forward established connections" \
    connection-state=established \
    in-interface-list=WAN
add action=accept \
    chain=forward \
    dst-address-list=ipv6_in_use \
    src-address-list=ipv6_addresses_contacted
add action=passthrough \
    chain=forward \
    in-interface-list=WAN \
    log=yes \
    src-address-list=!ipv6_addresses_contacted
add action=drop \
    chain=forward \
    comment="Drop traffic not destined for a used address" \
    dst-address-list=!ipv6_in_use \
    in-interface-list=WAN \
    log=yes \
    log-prefix=\
    drop_to_unused_ipv6-addr
add action=reject \
    chain=forward \
    in-interface-list=WAN \
    reject-with=icmp-no-route

/ipv6 firewall mangle
add action=change-mss \
    disabled=yes \
    chain=forward \
    comment="Change MSS for PPPoE out - for testing" \
    new-mss=clamp-to-pmtu \
    out-interface=PPPoE \
    passthrough=yes \
    protocol=tcp \
    tcp-flags=syn

Voor IPTV is IGMP proxy nodig:

/routing igmp-proxy
set quick-leave=yes

/routing igmp-proxy interface
add alternative-subnets=0.0.0.0/0 \
    interface=vlan1.4 \
    threshold=0 \
    upstream=yes
add interface=bridge-IPTV \
    threshold=0
6 likes

Dit is niet goed. Die optie moet op no staan.
Met versie 6 kom je er mee weg en werkt het toch nog, met versie 7 van RouterOS zorgt deze setting dat je IPv6 niet werkt.

Super, dank je :slight_smile:
Ik kan het bericht niet aanpassen maar zo is het ook duidelijk.

1 like

Hallo Roy,

Bedankt voor deze configuratie! Ik gebruik zelf ook een Mikrotik en heb alles werkend behalve “Begin gemist” op de TV ontvanger.
Volgens mij mis ik dan nog een stukje RTSP connection tracking. Ik zie dat je middels mangle rules wel de connection en packets markeert, maar ik mis in deze config wat je daar precies mee doet.
Kan je me hiermee verder helpen?

Alvast bedankt!

Volgens mij is begin gemist en terugkijken geen UDP verkeer maar TCP verkeer. Dit is dan ‘standaard’ verkeer zoals browsen via een browser op het internet.

Hoi,

Bedankt voor je snelle reactie!
Ik heb mijn TV ontvanger in een gescheiden VLAN zitten met volgens mij momenteel geen toegang tot het publieke internet, alleen richting VLAN4 op de SFP. Ik zal dat nog eens checken en kijken of het daarna wel werkt.

Hoi,

Ik heb hier nog eens naar gekeken maar het VLAN waar de tv ontvanger in zit heeft internettoegang. Dat was het dus helaas niet. Ik ben nog zoekende naar de oorzaak dus.

(post aangepast omdat het onzin was :slight_smile: )

@remivandijk , ik weet het weer: ik heb het ook niet voor elkaar gekregen met RTSP connection marking. In plaats daarvan heb ik, omdat ik toch maar één Amino heb, een NAT set aangemaakt. Het gaat om dit stukje:

/ip firewall nat
add action=masquerade chain=srcnat comment="Masquerade for IPTV" out-interface=vlan1.4
add action=dst-nat chain=dstnat comment="IPTV to-address (DHCP acquired from VLAN4) -> 192.168.10.126" dst-address-list=iptv_dhcp_obtained in-interface=vlan1.4 to-addresses=192.168.10.126

192.168.10.126 is het IP adres wat de Amino box krijgt; dit krijgt 'ie via DHCP op basis van zijn MAC.
Het IP adres wat ik op VLAN4 krijg, komt middels een script in address list “iptv_dhcp_obtained”.

Het was de bedoeling dat ik het werkend kreeg zonder een vaste NAT set, maar nu het op deze manier werkt, heb ik het nooit meer afgemaakt. Die connection en packet marking is in deze opzet overbodig.

Overigens heb ik heel lang zitten foutzoeken terwijl het terugkijken zelf niet goed werkt(e); dit maakt het werken aan een echt goede oplossing frustrerend. Hier thuis wordt er al genoeg gemopperd als TV niet goed werkt, laat taan als ik aan het experimenteren sla…

1 like

Ik heb zelf ook een paar Mikrotiks en waarom zend je het niet het niet aan het hele subnet of een adres reeks?

Alleen diegene die de poort heeft openstaan in de statefull firewall neemt het pakket aan. Een soort ‘local cast’.

/ip firewall nat
add action=masquerade chain=srcnat comment="Masquerade for IPTV" out-interface=vlan1.4
add action=dst-nat chain=dstnat comment="IPTV to-address (DHCP acquired from VLAN4) -> 192.168.10.126" dst-address-list=iptv_dhcp_obtained in-interface=vlan1.4 to-addresses=192.168.10.0

Of nauwkeuriger: to-addresses= 192.168.10.126-192.168.10.128 en hier krijgen 126,127 en 128 het pakket.

Als je ook de vlan intern gebruikt dan is alles daarop al een Amino box.

@anon54082171, ik heb maar één Amino, dus dat gaat bij mij niet veel veranderen. Daarnaast is die NAT set voor met name begin gemist; dat bekijk je doorgaans niet op twee schermen simultaan. Een tweede Amino krijgt (denk ik; ik kan het niet testen) een nieuw 10.10. adres waarvoor dan toch weer een extra NAT regel moet worden toegevoegd. Voor live TV is er de IGMP proxy en dat zal al wel werken met een tweede Amino.

Hoi Roy,

Sorry voor de extreem late reactie hierop maar ik ben zojuist nog eens bezig geweest met jouw suggestie in de opmerking.
Middels een dst-nat regel richting mijn IPTV box met statische DHCP lease is het nu inderdaad gelukt!

Ik heb ook maar 1 IPTV box dus dit is voor mij een prima werkbare oplossing.

Bedankt voor je tijd en moeite!

Fijn dat het werkt. En zelf heb ik ook niet alles in één keer werkend gekregen maar met met z’n allen komen we er wel uit :slight_smile:

1 like

Sinds RouterOS 7.5beta4 zit er een RTSP helper in. Vooral voor IPTV is dit te gebruiken als je dat kunt defineren op poort nummer.

No, a helper will act as all other helpers (under ip/firewall/service-port/) without creating dynamic NAT rules.

Omdat poorten kunnen overlappen kun met “Available from” IP adressen filteren. Zelf VRF is beschikbaar al filter.

Ik draai zelf een oudere versie en ik weet niet of je meer dan één poort dirrct kunt defineren of via meer regels.

Dank voor de tip. Als ik tijd heb ga ik eens kijken of ik dat aan de praat krijg :slight_smile:

Dank voor je voorbeeld @Roy. Ik heb 'm onder ROS 7.6 op een ax3 iets anders (en alleen voor internet want geen TV). Heb verder de standaard firewall regels aangehouden. Met deze config hoef je niet zelf je ranges in te typen maar vraagt hij de prefix op bij Freedom.

/interface vlan
add interface=ether1 mtu=1508 name=bridge-WAN vlan-id=6
/interface pppoe-client
add add-default-route=yes allow=pap disabled=no interface=bridge-WAN max-mru=1500 max-mtu=1500 name=pppoe-client service-name=“Freedom Internet” use-peer-dns=yes user=fake@freedom.nl
/ip firewall nat
add action=masquerade chain=srcnat comment=“defconf: masquerade” ipsec-policy=out,none out-interface=pppoe-client
/ipv6 address
add from-pool=global_pool interface=bridge
/ipv6 dhcp-client
add interface=pppoe-client pool-name=global_pool pool-prefix-length=48 request=prefix

Dat is handig!
De reden dat ik ze handmatig heb ingevuld is dat ik mijn IPv6 subnet heb opgedeeld. Eens kijken of ik de opgevraagde prefix ook automatisch kan verdelen over de subnets.

Hoi Roy
Dit is interessant, ik zit erover na te denken om mijn Mikrotik hEX S te gaan gebruiken omdat ik op deze manier PoE in de meterkast kan doen.
Mag ik vragen welke SFP-module je hebt gebruikt? Ik heb er een paar geprobeerd - die allemaal werken met Freedom (ofwel in een mediaconvertor met TP Link Omada, of rechtstreeks in een Edge Router X) - die allemaal niet werken in mijn Mikrotik

Momenteel zit er eentje van Draytek in. Die werkte in een keer. Tenminste, nadat ik er achter kwam dat “auto-negotiation” uit moet staan. Ik heb ook met succes een module van FS.com geprobeerd.

Roy, welke SFP’s heb je gebruikt ? ik moet er nog ene aanschaffen.
Hierbij ook mijn Mikrotik config/export ( gebaseerd op eerdere posts ) met wifi ac erbij (Ubiquti)


via winbox
[admin@404RouterOS] > export
# feb/20/2023 15:42:01 by RouterOS 6.49.7
#
# model = RB4011iGS+5HacQ2HnD
/interface bridge
add mtu=1508 name=bridge-DMZ protocol-mode=none
add mtu=1508 name=bridge-GUEST protocol-mode=none
add mtu=1508 name=bridge-IOT protocol-mode=none
add igmp-snooping=yes mtu=1500 name=bridge-IPTV protocol-mode=none
add name=bridge-OVPN
add mtu=1508 name=bridge-WAN protocol-mode=none
/interface vlan
add interface=bridge-IOT mtu=1508 name=vlan1.2 vlan-id=2
add interface=bridge-WAN name=vlan1.4 vlan-id=4
add interface=bridge-WAN mtu=1508 name=vlan1.6 vlan-id=6
add interface=bridge-GUEST mtu=1508 name=vlan1.9 vlan-id=9
add interface=ether5 name=vlan1.9.5 vlan-id=9
/interface pppoe-client
add add-default-route=yes allow=pap disabled=no interface=vlan1.6 keepalive-timeout=20 max-mru=1500 max-mtu=1500 name=PPPoE password=pwd service-name="Freedom Internet" use-peer-dns=yes user=user@freedom.nl
/interface ethernet switch port
set 0 default-vlan-id=0
set 1 default-vlan-id=0
set 2 default-vlan-id=0
set 3 default-vlan-id=0
set 4 default-vlan-id=0
set 5 default-vlan-id=0
set 6 default-vlan-id=0
set 7 default-vlan-id=0
set 8 default-vlan-id=0
set 9 default-vlan-id=0
set 10 default-vlan-id=0
set 11 default-vlan-id=0
/interface list
add name=DMZ
add name=WAN
add name="WAN (IPTV)"
add name="LAN (IPTV)"
add name=IOT
add name="LAN (IOT)"
add name=GUEST
add name="WAN (GUEST)"
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
add authentication-types=wpa2-psk mode=dynamic-keys name=guest supplicant-identity="" wpa2-pre-shared-key=pwd
add authentication-types=wpa-psk,wpa2-psk mode=dynamic-keys name=name supplicant-identity="" wpa-pre-shared-key=pwd wpa2-pre-shared-key=pwd
/interface wireless
set [ find default-name=wlan1 ] band=5ghz-a/n/ac channel-width=20/40mhz-Ce disabled=no frequency=5220 installation=indoor mode=ap-bridge security-profile=name ssid=name wps-mode=disabled
set [ find default-name=wlan2 ] band=2ghz-b/g/n disabled=no security-profile=name ssid=Wifi_SWDNDZUSFT wps-mode=disabled
add disabled=no keepalive-frames=disabled mac-address=1A:FD:74:8E:31:BB master-interface=wlan1 multicast-buffering=disabled name=guest security-profile=guest ssid=guest1 vlan-id=9 vlan-mode=use-tag wds-cost-range=0 wds-default-cost=0 wps-mode=disabled
/ip dhcp-client option
add code=60 name=option60-vendorclass value="'IPTV_RG'"
/ip dhcp-server option
add code=60 name=option60-vendorclass value="'IPTV_RG'"
add code=28 name=option28-broadcast value="'192.168.1.255'"
add code=28 name=option28-broadcast-10 value="'192.168.10.255'"
add code=28 name=option28-broadcast-20 value="'10.0.0.255'"
add code=28 name=option28-broadcast-90 value="'192.168.168.255'"
/ip dhcp-server option sets
add name=IPTV options=option60-vendorclass,option28-broadcast-10
add name=DMZ options=option28-broadcast
add name=IOT options=option28-broadcast
add name=GUEST options=option28-broadcast-90
/ip pool
add name=DMZ-dyn-pool ranges=192.168.1.64/26
add name=IPTV-dyn-pool ranges=192.168.10.64/26
add name=IOT-dyn-pool ranges=10.0.0.25-10.0.0.250
add name=GUEST-dyn-pool ranges=192.168.168.64/26
add name=OVPN-dyn-pool ranges=10.0.2.100-10.0.2.200
/ip dhcp-server
add add-arp=yes address-pool=DMZ-dyn-pool bootp-support=none dhcp-option-set=DMZ disabled=no interface=bridge-DMZ name=dhcp-dmz
add add-arp=yes address-pool=IPTV-dyn-pool bootp-support=none client-mac-limit=16 dhcp-option-set=IPTV disabled=no interface=bridge-IPTV lease-time=1h name=dhcp-iptv
add add-arp=yes address-pool=IOT-dyn-pool bootp-support=none dhcp-option-set=IOT disabled=no interface=bridge-IOT lease-time=1d name=dhcp-iot
# DHCP server can not run on slave interface!
add add-arp=yes address-pool=GUEST-dyn-pool bootp-support=none dhcp-option-set=GUEST disabled=no interface=vlan1.9.5 lease-time=1d name=dhcp-guest
/ppp profile
set *0 change-tcp-mss=no only-one=yes use-compression=yes use-upnp=no
set *FFFFFFFE bridge=bridge-OVPN dns-server=10.0.0.181,1.1.1.1 local-address=10.0.20.1 remote-address=OVPN-dyn-pool
/interface bridge port
add bridge=bridge-WAN interface=ether1
add bridge=bridge-IOT interface=ether6
add bridge=bridge-IOT interface=ether5
add bridge=bridge-IPTV interface=ether4
add bridge=bridge-DMZ interface=ether3
add bridge=bridge-IOT interface=ether7
add bridge=bridge-IOT interface=ether8
add bridge=bridge-IOT interface=ether9
add bridge=bridge-IOT interface=wlan1
add bridge=bridge-IOT interface=wlan2
add bridge=bridge-GUEST interface=vlan1.9.5
add bridge=bridge-GUEST interface=guest
/interface list member
add interface=bridge-DMZ list=DMZ
add interface=PPPoE list=WAN
add interface=vlan1.4 list="WAN (IPTV)"
add interface=bridge-IPTV list="LAN (IPTV)"
add interface=bridge-IOT list="LAN (IOT)"
add interface=bridge-GUEST list=GUEST
add interface=guest list=GUEST
add interface=vlan1.9 list=GUEST
add interface=vlan1.9 list="WAN (GUEST)"
/interface ovpn-server server
set certificate=vpn2 cipher=blowfish128,aes128,aes192,aes256 default-profile=default-encryption enabled=yes require-client-certificate=yes
/interface wireless cap
set discovery-interfaces=ether5 interfaces=wlan1
/ip address
add address=192.168.1.254/24 interface=bridge-DMZ network=192.168.1.0
add address=192.168.10.1/24 interface=bridge-IPTV network=192.168.10.0
add address=10.0.0.1/24 interface=bridge-IOT network=10.0.0.0
add address=192.168.168.254/24 interface=bridge-GUEST network=192.168.168.0
add address=10.0.2.1/24 interface=bridge-OVPN network=10.0.2.0
/ip dhcp-client
add comment="DHCP on VLAN4 of WAN interface for IPTV, auto-add IP address to an address list for reverse NAT" interface=vlan1.4
add comment="DHCP on VLAN4 of WAN interface for IPTV, auto-add IP address to an address list for reverse NAT" dhcp-options=clientid,clientid_duid,hostname disabled=no interface=vlan1.4 script=":local addrlist \"iptv_dhcp_obtained\"\
    \n:local count [/ip firewall address-list print count-only where list=\$\"addrlist\"]\
    \n:if (\$bound=1) do={ \
    \n    :if (\$count = 0) do={\
    \n        /ip firewall address-list add address=\$\"lease-address\" comment=\"Auto-added on new lease\" list=\$\"addrlist\"\
    \n    } else={\
    \n        :if (\$count = 1) do={\
    \n            /ip firewall address-list set [ /ip firewall address-list find list=\$\"addrlist\" ] address=\$\"lease-address\"\
    \n        } else={\
    \n            :error \"Multiple addresses in address list: \$addrlist\"\
    \n        }\
    \n    }\
    \n}" use-peer-dns=no use-peer-ntp=no
/ip dhcp-server lease
add address=192.168.10.126 client-id=1:5c:f:0:1:2:3 mac-address=5C:0F:00:01:02:03 server=dhcp-iptv
/ip dhcp-server network
add address=10.0.0.0/24 comment=IOT dhcp-option-set=IOT dns-server=10.0.0.225 domain=404-not.found gateway=10.0.0.1 netmask=24 ntp-server=10.0.0.1
add address=192.168.1.0/24 comment=DMZ dns-server=10.0.0.181 domain=dmz.internal gateway=192.168.1.254 netmask=24
add address=192.168.10.0/24 comment=IPTV dhcp-option-set=IPTV dns-server=10.0.0.181 domain=iptv.internal gateway=192.168.10.1 netmask=24
add address=192.168.168.0/24 comment=GUEST dns-server=8.8.8.8 domain=guest.internal gateway=192.168.168.254 netmask=24
/ip dns
set servers=10.0.0.225
/ip firewall address-list
add address=100.65.14.129 comment="Auto-added on new lease" list=iptv_dhcp_obtained
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=fasttrack-connection chain=forward comment="DNS fasttrack TCP" disabled=yes dst-port=53 protocol=tcp
add action=fasttrack-connection chain=forward comment="DNS fasttrack UDP" disabled=yes dst-port=53 protocol=udp
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list="!LAN (IOT)"
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=accept chain=input comment="OVPN pass" dst-port=1194 protocol=tcp
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-list=WAN
add action=accept chain=forward in-interface=vlan1.9 out-interface=bridge-WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="Masquerade for IPTV (no static IP)" out-interface=vlan1.4
add action=dst-nat chain=dstnat comment="Any to-address (from VLAN4) -> IPTV box" dst-address-list=iptv_dhcp_obtained in-interface=vlan1.4 to-addresses=192.168.10.126
add action=src-nat chain=srcnat comment="Masquerade replaced by source-NAT (preferred for static WAN-IP)" out-interface=PPPoE to-addresses=45.142.146.243
add action=dst-nat chain=dstnat dst-address=45.142.146.243 dst-port=80 in-interface=PPPoE protocol=tcp src-address=!192.168.0.0/16 to-addresses=192.168.1.6 to-ports=80
add action=dst-nat chain=dstnat dst-address=45.142.146.243 dst-port=443 in-interface=PPPoE protocol=tcp src-address=!192.168.0.0/16 to-addresses=192.168.1.6 to-ports=443
add action=dst-nat chain=dstnat dst-address=45.142.146.243 in-interface=PPPoE src-address=185.24.172.21 to-addresses=192.168.10.126
add action=dst-nat chain=dstnat dst-address=45.142.146.243 dst-port=!53 in-interface=PPPoE log=yes log-prefix=UDP_destNAT protocol=udp to-addresses=192.168.10.126
add action=masquerade chain=srcnat out-interface=bridge-WAN
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set irc disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
/ppp secret
add name=weening2 password=pwd profile=default-encryption remote-address=10.0.20.101
/system clock
set time-zone-name=Europe/Amsterdam
/system identity
set name=404RouterOS
/system leds
add interface=wlan2 leds=wlan2_signal1-led,wlan2_signal2-led,wlan2_signal3-led,wlan2_signal4-led,wlan2_signal5-led type=wireless-signal-strength
add interface=wlan2 leds=wlan2_tx-led type=interface-transmit
add interface=wlan2 leds=wlan2_rx-led type=interface-receive
/system ntp client
set enabled=yes primary-ntp=62.204.66.235 secondary-ntp=154.51.12.220
/system ntp server
set broadcast=yes broadcast-addresses=10.0.0.1 enabled=yes
[admin@404RouterOS] > 

Zowel Draytek als FS werken bij mij. Maar Mikrotik zelf heeft ze ook en die zouden natuurlijk zeker moeten werken. Het enige waar je op moet letten is dat je “auto-negotiation” uit zet bij de interface instellingen.
Ik heb even vluchtig door jouw setup gelopen en het valt me op dat je de MTU op de interfaces op 1508 hebt gezet; ik weet niet of dat nodig is maar ik ga dat eens goed uitzoeken want dat moet ik dan eventueel ook bij mij aanpassen.
Verder vind ik het zelf handig om mijn lokale address space overal in hetzelfde bovenliggende subnet te houden, dus ofwel 192.168.0.0/16 (en daar weer subnets uit) ofwel 10.0.0.0/8 maar dat is persoonlijke voorkeur.