Segmentar mi Red con VLANs

Muy buenas!

Disculpa @pokoyo pero he visto este script que has compartido con un usuario para crear su Red con VLANs y lo he visto muy útil para transformar una configuración básica a base de bridges a una segmentada con VLANs (no sé pero siempre me ha costado comprender esta parte de las VLANS jeje, pero tal como explicas lo veo factible en mi red).

Mi equipo RB4011 tiene estos bridges:

- bridge-lan (mi red principal)
- bridge-guests (mi red de invitados)
- bridge-iptv (para propagar la red paco-pepe por mi LAN)
- bridge-vpn (para una vpn tipo rw del tipo IPSEC con certificados que tengo de backup a wireguard)

Entiendo que es el mismo proceso creando VLANs para todas las subredes y meterlas dentro del bridge principal, ¿verdad? además de habilitar la vlan-lan para que mi CAPsMAN funcione bien.

Siguiendo tu recomendación, creo este hilo a ver si me puedes ayudar a pasar mi configuración actual a una red con VLANs, mi configuración es un poco más compleja de la habitual: varios bridges + CAPsMAN con 2 AP Mikrotik + túneles wireguard (con dos sites externos) y con protección OSPF, ahora funcionando todo de maravilla (gracias a tus manuales).

Te paso un export si te parece bien, he omitido algunos datos no importantes.

Bash:
# sep/20/2022 21:52:58 by RouterOS 7.5
# software id = YV0U-GUUY
#
# model = RB4011iGS+
# serial number =
/caps-man channel
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2412 name=channel-1
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2437 name=channel-6 tx-power=8
add band=5ghz-n/ac control-channel-width=20mhz extension-channel=XXXX \
    frequency=5500 name=channel-100
add band=5ghz-n/ac control-channel-width=20mhz extension-channel=XXXX \
    frequency=5580 name=channel-116
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2462 name=channel11

/interface bridge
add admin-mac=2C:C8:1B:03:46:F2 auto-mac=no name=bridge
add name=bridge-guests
add name=bridge-iptv igmp-snooping=yes
add name=bridge-vpn
add name=loopback protocol-mode=none

/interface ethernet
set [ find default-name=ether1 ] name=ether1-wan
set [ find default-name=ether2 ] name=ether2-nas
set [ find default-name=ether4 ] name=ether4-ap-salon
set [ find default-name=ether6 ] name=ether6-pc-despacho
set [ find default-name=ether10 ] name=ether10-ap-despacho
set [ find default-name=sfp-sfpplus1 ] disabled=yes

/interface wireguard
add listen-port=57591 mtu=1420 name=wg-ospf-to-apto
add listen-port=54321 mtu=1420 name=wg-ospf-to-map
add listen-port=57588 mtu=1420 name=wg-rw
add listen-port=57589 mtu=1420 name=wg-rw-iptv

/interface eoip
add local-address=10.252.252.1 mac-address=FE:5A:D4:C9:58:9A mtu=1500 name=\
    eoip-iptv-to-map remote-address=10.252.252.2 tunnel-id=1
add local-address=192.168.88.1 mac-address=02:AE:2A:8B:07:DE mtu=1500 name=\
    eoip-iptv-to-salon remote-address=192.168.88.2 tunnel-id=2
add local-address=10.252.252.1 mac-address=FE:4F:32:98:6A:85 mtu=1500 name=\
    eoip-to-apto remote-address=10.252.252.3 tunnel-id=0

/interface vlan
add interface=ether1-wan name=vlan20 vlan-id=20

/caps-man datapath
add bridge=bridge client-to-client-forwarding=yes local-forwarding=no name=\
    home-dp
add bridge=bridge-guests client-to-client-forwarding=no local-forwarding=no \
    name=guest-dp
add bridge=bridge-iptv client-to-client-forwarding=no local-forwarding=no \
    name=iptv-dp

/interface pppoe-client
add ac-name=ftth add-default-route=yes disabled=no interface=vlan20 max-mru=\
    1492 max-mtu=1492 name=pppoe-out1 service-name=ftth user=XXXXXXXXX@digi

/caps-man security
add authentication-types=wpa2-psk disable-pmkid=yes encryption=aes-ccm \
    group-encryption=aes-ccm group-key-update=23h59m59s name=\
    security-profile-lan
add authentication-types=wpa2-psk disable-pmkid=yes encryption=aes-ccm \
    group-encryption=aes-ccm group-key-update=1h name=security-profile-guest

/caps-man configuration
add channel=channel-1 comment="Salon" country=spain datapath=home-dp mode=\
    ap name=home-wifi-2ghz-ch1-cfg security=security-profile-lan ssid=MiWiFi
add channel=channel-6 comment=Despacho country=spain datapath=home-dp mode=ap \
    name=home-wifi-2ghz-ch6-cfg security=security-profile-lan ssid=MiWiFi
add channel=channel-100 comment=Despacho country=spain datapath=home-dp mode=\
    ap name=wifi-lan-5g-ch100 security=security-profile-lan ssid=MiWiFi_5G
add channel=channel-116 comment="Salon" country=spain datapath=home-dp \
    mode=ap name=wifi-lan-5g-ch116 security=security-profile-lan ssid=\
    MiWiFi_5G
add channel=channel-1 comment="Salon" country=spain datapath=guest-dp mode=\
    ap name=guest-wifi-2ghz-ch1-cfg security=security-profile-guest ssid=\
    INVITADOS
add channel=channel-6 comment=Despacho country=spain datapath=guest-dp mode=\
    ap name=guest-wifi-2ghz-ch6-cfg security=security-profile-guest ssid=\
    INVITADOS
add channel=channel11 country=spain datapath=iptv-dp mode=ap name=\
    iptv-wifi-2ghz-ch11-cfg security=security-profile-guest ssid=MiWiFi-IPTV

/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
add name=GRE

/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik

/ip ipsec policy group
add name=ike2-template-group

/ip ipsec profile
set [ find default=yes ] enc-algorithm=aes-256,aes-128,3des hash-algorithm=\
    sha256
add dh-group=modp2048,modp1536,modp1024 enc-algorithm=aes-256,aes-192,aes-128 \
    hash-algorithm=sha256 name=ike2-profile

/ip ipsec peer
add exchange-mode=ike2 name=ike2-peer passive=yes profile=ike2-profile \
    send-initial-contact=no

/ip ipsec proposal
set [ find default=yes ] auth-algorithms=sha256,sha1 enc-algorithms=\
    aes-256-cbc,aes-256-gcm,aes-192-cbc,aes-128-cbc pfs-group=modp2048
add auth-algorithms=sha512,sha256,sha1 enc-algorithms="aes-256-cbc,aes-256-ctr\
    ,aes-256-gcm,aes-192-ctr,aes-192-gcm,aes-128-cbc,aes-128-ctr,aes-128-gcm" \
    lifetime=8h name=ike2-proposal pfs-group=none

/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
add name=pool-guests ranges=192.168.66.2-192.168.66.254
add name=pool-vpn ranges=192.168.68.10-192.168.68.254

/ip dhcp-server
add address-pool=default-dhcp interface=bridge lease-time=1h name=dhcp-bridge
add address-pool=pool-guests interface=bridge-guests name=dhcp-guests

/ip ipsec mode-config
add address-pool=pool-vpn address-prefix-length=32 name=\
    ike2-conf-road-warrior split-include=0.0.0.0/0

/port
set 0 name=serial0
set 1 name=serial1

/routing ospf instance
add disabled=no name=v2 router-id=10.252.252.1

/routing ospf area
add disabled=no instance=v2 name=backbone

/routing table
add fib name=tablarutas2

/system logging action
set 3 remote=192.168.88.247
add name=nas remote=192.168.88.247 syslog-facility=syslog target=remote

/caps-man manager
set enabled=yes

/caps-man manager interface
set [ find default=yes ] forbid=yes
add disabled=no interface=bridge

/caps-man provisioning
add action=create-dynamic-enabled comment=configuracion-5g-salon \
    hw-supported-modes=ac master-configuration=wifi-lan-5g-ch116 name-format=\
    prefix-identity name-prefix=5G radio-mac=2C:C8:1B:F2:A7:FE
add action=create-dynamic-enabled comment=configuracion-5g-despacho \
    hw-supported-modes=ac master-configuration=wifi-lan-5g-ch100 name-format=\
    prefix-identity name-prefix=5G radio-mac=2C:C8:1B:C6:69:8C
add action=create-dynamic-enabled comment=configuracion-2g-salon \
    hw-supported-modes=gn master-configuration=home-wifi-2ghz-ch1-cfg \
    name-format=prefix-identity name-prefix=2G radio-mac=2C:C8:1B:F2:A7:FD \
    slave-configurations=guest-wifi-2ghz-ch1-cfg,iptv-wifi-2ghz-ch11-cfg
add action=create-dynamic-enabled comment=configuracion-2g-despacho \
    hw-supported-modes=gn master-configuration=home-wifi-2ghz-ch6-cfg \
    name-format=prefix-identity name-prefix=2G radio-mac=2C:C8:1B:C6:69:8B \
    slave-configurations=guest-wifi-2ghz-ch6-cfg,iptv-wifi-2ghz-ch11-cfg

/interface bridge port
add bridge=bridge interface=ether2-nas
add bridge=bridge interface=ether4-ap-salon
add bridge=bridge interface=ether5
add bridge=bridge interface=ether6-pc-despacho
add bridge=bridge interface=ether7
add bridge=bridge interface=ether8
add bridge=bridge interface=ether9
add bridge=bridge interface=ether10-ap-despacho
add bridge=bridge interface=sfp-sfpplus1
add bridge=bridge interface=eoip-to-apto
add bridge=bridge-iptv interface=eoip-iptv-to-map
add bridge=bridge-iptv interface=eoip-iptv-to-salon
add bridge=bridge-iptv interface=ether3

/ip neighbor discovery-settings
set discover-interface-list=all

/interface detect-internet
set detect-interface-list=WAN wan-interface-list=WAN

/interface l2tp-server server
set authentication=mschap2 default-profile=*4 use-ipsec=yes

/interface list member
add interface=bridge list=LAN
add interface=pppoe-out1 list=WAN
add interface=wg-ospf-to-apto list=LAN
add interface=wg-ospf-to-map list=LAN
add interface=wg-ospf-to-apto list=GRE
add interface=wg-ospf-to-map list=GRE
add interface=wg-rw list=LAN

/interface ovpn-server server
set auth=sha1,md5

/interface wireguard peers
add allowed-address=10.10.0.2/32,::/0 comment="Xiaomi" \
    interface=wg-rw public-key="9JG2GZWsWb8FQUXSbE/y0w2x0kVFYCsILdOBkIsk+w0="
add allowed-address=10.10.0.3/32,::/0 comment="Portatil ASUS" interface=wg-rw \
    public-key="Rp/q1moOM52j8v7VRdhJm7je5v2pYmMxIwmx1SCAamU="
add allowed-address=0.0.0.0/0 endpoint-address=apto.dominio.es endpoint-port=\
    57591 interface=wg-ospf-to-apto public-key=\
    "6AdpC0Hw/CwTBKsR6LSGiJqLJvcA6PySDwNH2kUNDQg="
add allowed-address=0.0.0.0/0 endpoint-address=map.dominio.es endpoint-port=\
    54321 interface=wg-ospf-to-map public-key=\
    "OQbISZH2QhwB3FoUjvETde3Ypl2KPkUV9IZoG096+VE="
add allowed-address=10.40.0.2/32,::/0 comment="Nono" interface=wg-rw-iptv \
    public-key="9xz87CGnG5AaIb539GNiz40/vERjAfb1uvPHrmEaxm8="
add allowed-address=10.10.0.4/32,::/0 comment="USA" interface=wg-rw public-key=\
    "A4Oz8Ko2tDZrdFdMf6KEsW17AVDlbOtVfcYaY35GKSc="
add allowed-address=10.40.0.3/32,::/0 comment="Xiaomi" \
    interface=wg-rw-iptv public-key=\
    "k+95fuw2GFHbe7lKyGtxwIr/PN7FlhDjE8sxwy6R0zw="

/ip address
add address=192.168.88.1/24 interface=bridge network=192.168.88.0
add address=10.10.0.1/24 interface=wg-rw network=10.10.0.0
add address=172.17.20.1/30 interface=wg-ospf-to-apto network=172.17.20.0
add address=172.17.0.2/30 interface=wg-ospf-to-map network=172.17.0.0
add address=192.168.66.1/24 interface=bridge-guests network=192.168.66.0
add address=10.252.252.1 interface=loopback network=10.252.252.1
add address=10.40.0.1/24 interface=wg-rw-iptv network=10.40.0.0
add address=192.168.68.1/24 comment=vpn-loopback interface=bridge-vpn \
    network=192.168.68.0

/ip cloud
set ddns-enabled=yes update-time=no

/ip dhcp-server lease
# Datos omitidos

/ip dhcp-server network
add address=192.168.66.0/24 dns-server=1.1.1.2,1.0.0.2 gateway=192.168.66.1
add address=192.168.88.0/24 dns-server=192.168.88.23,192.168.88.1 domain=lan \
    gateway=192.168.88.1
# 192.168.88.23 -> Pihole

/ip dns
set allow-remote-requests=yes servers=1.1.1.1,1.0.0.1

/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan
add address=192.168.88.23 name=pi.lan
add address=192.168.88.247 name=nas.lan

/ip firewall address-list
# Datos omitidos

/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=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="allow ipsec" dst-port=500,4500 \
    protocol=udp
add action=accept chain=input protocol=ipsec-esp
add action=accept chain=input comment="vpn: allow wireguard-rw" dst-port=\
    57588 protocol=udp
add action=accept chain=input comment="vpn: allow wireguard-rw-iptv" \
    dst-port=57589 protocol=udp
add action=accept chain=input comment="vpn: allow wireguard" dst-port=57591 \
    protocol=udp
add action=accept chain=input comment="vpn: allow wireguard" dst-port=54321 \
    protocol=udp
add action=accept chain=input comment="iptv: allow gre for eoip" \
    in-interface-list=GRE protocol=gre
add action=accept chain=input comment=\
    "allow access to router HQ from IPSec tunnel" ipsec-policy=in,ipsec \
    src-address=192.168.68.0/24
add action=drop chain=input comment="deny access to router from USA" \
    src-address=10.10.0.4
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
    in-interface-list=!LAN
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 hw-offload=yes
add action=accept chain=forward comment=\
    "defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="access from USA only to WAN" \
    out-interface-list=!WAN src-address=10.10.0.4
add action=drop chain=forward comment="guests: block guests" \
    out-interface-list=!WAN src-address=192.168.66.0/24
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

/ip firewall nat
add action=masquerade chain=srcnat comment=hairpin-nat dst-address=\
    192.168.88.0/24 src-address=192.168.88.0/24
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    ipsec-policy=out,none out-interface-list=WAN
add action=dst-nat chain=dstnat comment=NAS-Open-80 dst-address-list=\
    public-ip dst-port=80 protocol=tcp to-addresses=192.168.88.247
add action=dst-nat chain=dstnat comment="SysLog Server NAS" dst-port=514 \
    protocol=udp to-addresses=192.168.88.247

/ip firewall raw
add action=drop chain=prerouting comment="Blacklistl" \
    src-address-list=Blacklist

/ip ipsec identity
add auth-method=digital-signature certificate=vpn-server comment=mobile \
    generate-policy=port-strict match-by=certificate mode-config=\
    ike2-conf-road-warrior peer=ike2-peer policy-template-group=\
    ike2-template-group remote-certificate=mobile@router.dominio.es

/ip ipsec policy
add comment=road-warrior dst-address=192.168.68.0/24 group=\
    ike2-template-group proposal=ike2-proposal src-address=0.0.0.0/0 \
    template=yes

/ip ipsec settings
set xauth-use-radius=yes

/ip route
add disabled=no distance=111 dst-address=192.168.2.0/24 gateway=172.17.20.2 \
    pref-src=0.0.0.0 routing-table=main scope=30 suppress-hw-offload=no \
    target-scope=10
add disabled=no distance=111 dst-address=192.168.1.0/24 gateway=172.17.0.1 \
    pref-src=0.0.0.0 routing-table=main scope=30 suppress-hw-offload=no \
    target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=172.17.0.1 pref-src=\
    0.0.0.0 routing-table=tablarutas2 scope=30 suppress-hw-offload=no \
    target-scope=10

/ip service
# Datos omitidos

/ip smb shares
add comment="default share" directory=/pub name=pub

/ip smb users
add name=guest

/ipv6 address
add from-pool=pool6 interface=bridge
add from-pool=pool6 interface=wg-rw

/ipv6 dhcp-client
add interface=pppoe-out1 pool-name=pool6 rapid-commit=no request=\
    address,prefix use-peer-dns=no

/ipv6 firewall address-list
# Datos omitidos

/ipv6 firewall filter
# Datos omitidos

/ipv6 nd
set [ find default=yes ] disabled=yes
add interface=bridge ra-interval=20s-1m
add interface=wg-rw ra-interval=20s-1m

/radius incoming
set accept=yes

/routing ospf interface-template
add area=backbone disabled=no interfaces=wg-ospf-to-map networks=\
    172.17.0.0/30 type=ptp
add area=backbone disabled=no interfaces=wg-ospf-to-apto networks=\
    172.17.20.0/30 type=ptp
add area=backbone disabled=no networks=\
    192.168.88.0/24,10.10.0.0/24,10.252.252.0/24 passive

/routing rule
add action=lookup src-address=10.40.0.2 table=tablarutas2
add action=lookup disabled=no src-address=10.40.0.3/32 table=tablarutas2

/system clock
set time-zone-autodetect=no time-zone-name=Europe/Madrid

/system identity
set name=Despacho

/system logging
set 3 action=disk disabled=yes
add action=nas topics=error,critical,interface,info,warning

/system ntp client
set enabled=yes

/system ntp server
set broadcast=yes enabled=yes manycast=yes

/system ntp client servers
add address=hora.roa.es

/system routerboard settings
set auto-upgrade=yes

/system scheduler
# Datos omitidos

/system script
# Datos omitidos

/tool e-mail
# Datos omitidos

/tool mac-server
set allowed-interface-list=LAN

/tool mac-server mac-winbox
set allowed-interface-list=LAN

/tool netwatch
# Datos omitidos

/tool sniffer
set file-limit=10000KiB file-name=sniffer memory-limit=1000KiB

No tengo ninguna prisa, cuando buenamente puedas.

Gracias de antemano.
S@lu2.
 
Última edición:
Del esquema que montamos en su día en OSPF, este sería el nodo A, ¿verdad? (consumidor de IPTV)

Saludos!
 
Del esquema que montamos en su día en OSPF, este sería el nodo A, ¿verdad? (consumidor de IPTV)

Saludos!
Si, efectivamente.
OSPF.jpg

S@lu2.
 
De los bridges que tienes
Código:
/interface bridge
add admin-mac=2C:C8:1B:03:46:F2 auto-mac=no name=bridge
add name=bridge-guests
add name=bridge-iptv igmp-snooping=yes
add name=bridge-vpn
add name=loopback protocol-mode=none

bridge-vpn lo puedes suprimir directamente, no hace nada (IKEv2 no necesita un bridge para trabajar). El de loopback lo vamos a mantener, ya que lo usas como extremo de los EoIP y lo anuncias en OSPF. Y, con el de ITPV te doy dos opcones: o lo mantenemos y dejaríamos el bridge principal con hardware offloading + vlans y este con snooping, o definimos una nueva vlan para iptv y metemos las tres (lan, guests e iptv) en el bridge principal, perdiendo el hardware offloading (tienes equipo de sobra, no lo vas a notar).

Probamos si quieres maneniendo el bridge-iptv por separado, y el salto de meter este último como VLAN siempre lo puedes dar a posteriori. Los EoIP se tratarían idéntico a un puerto ethernet en cuanto a vlans, se les asignaría una cualquiera como untagged en el puerto ether3 y en el EoIP, tal que cuando ese tráfico entre en el bridge se taguee con dicha VLAN para que no se mezcle con el resto.

Con ese planteamiento, tendríamos como resultado los siguientes bridges y VLANs
  • bridge
    • vlan-lan (tagged bridge, untagged todos los puertos salvo ether3)
    • vlan-guests (tagged bridge)
  • bridge-iptv
  • loopback

En tu caso, y aprovechando que tienes un bridge de loopback, no vamos a ser tan conservadores, y vamos a migrar de golpe. Intenta ver si tienes acceso al router por winbox desde la MAC de ese bridge y, si lo tienes, subes el fichero .rsc con las instrucciones que te paso y lo ejecutas desde ahí:
Código:
# Creamos las dos vlans que representarán tu red: lan y guests
/interface vlan
add interface=bridge name=vlan-lan vlan-id=88
add interface=bridge name=vlan-guests vlan-id=66 arp=reply-only

# Las direccionamos, cambiando las interfaces actuales por vlans
/ip address
set [find interface=bridge] interface=vlan-lan
set [find interface=bridge-guests] interface=vlan-guests

# Editamos los servidores DHCP
/ip dhcp-server
set [find name=dhcp-bridge] interface=vlan-lan
set [find name=dhcp-guests] interface=vlan-guests add-arp=yes

# Seteamos guests como /32 (sin broadcast)
/ip dhcp-server network
set [find gateway=192.168.66.1] netmask=32

# Asignamos todos los puertos a la nueva VLAN 88 (puedes meter alguno en la 66 para probar)
/interface bridge port
set [find interface=ether2-nas] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether4-ap-salon] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether5] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether6-pc-despacho] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether7] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether8] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether9] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether10-ap-despacho] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=sfp-sfpplus1] frame-types=admit-only-untagged-and-priority-tagged pvid=88

# Tratamos a vlan-lan como ahora al bridge
/interface list member
set [find interface=bridge] interface=vlan-lan

# Damos de alta las vlans a filtrar en el bridge.
/interface bridge vlan
add bridge=bridge comment=lan tagged=bridge vlan-ids=88
add bridge=bridge comment=guests tagged=bridge vlan-ids=66

# Modificamos los datapath de CAPsMAN, para que ahora trabajen con vlans
/caps-man datapath
set [find name=home-dp] bridge=bridge client-to-client-forwarding=yes local-forwarding=no \
  vlan-mode=use-tag vlan-id=88
set [find name=guest-dp] bridge=bridge client-to-client-forwarding=no local-forwarding=no \
  vlan-mode=use-tag vlan-id=66

# Permitimos que sobre la nueva intervaz vlan-lan corra CAPsMAN
/caps-man manager interface
add disabled=no interface=vlan-lan

# Habilitamos el bridge vlan filtering
/interface bridge
set 0 frame-types=admit-only-vlan-tagged vlan-filtering=yes

Cuando lo apliques dime, que te paso un par de cambios más para el firewall y las listas de interfaces, y así lo simplificas un poco.

Saludos!
 
De los bridges que tienes
Código:
/interface bridge
add admin-mac=2C:C8:1B:03:46:F2 auto-mac=no name=bridge
add name=bridge-guests
add name=bridge-iptv igmp-snooping=yes
add name=bridge-vpn
add name=loopback protocol-mode=none

bridge-vpn lo puedes suprimir directamente, no hace nada (IKEv2 no necesita un bridge para trabajar). El de loopback lo vamos a mantener, ya que lo usas como extremo de los EoIP y lo anuncias en OSPF. Y, con el de ITPV te doy dos opcones: o lo mantenemos y dejaríamos el bridge principal con hardware offloading + vlans y este con snooping, o definimos una nueva vlan para iptv y metemos las tres (lan, guests e iptv) en el bridge principal, perdiendo el hardware offloading (tienes equipo de sobra, no lo vas a notar).

Probamos si quieres maneniendo el bridge-iptv por separado, y el salto de meter este último como VLAN siempre lo puedes dar a posteriori. Los EoIP se tratarían idéntico a un puerto ethernet en cuanto a vlans, se les asignaría una cualquiera como untagged en el puerto ether3 y en el EoIP, tal que cuando ese tráfico entre en el bridge se taguee con dicha VLAN para que no se mezcle con el resto.

Con ese planteamiento, tendríamos como resultado los siguientes bridges y VLANs
  • bridge
    • vlan-lan (tagged bridge, untagged todos los puertos salvo ether3)
    • vlan-guests (tagged bridge)
  • bridge-iptv
  • loopback

En tu caso, y aprovechando que tienes un bridge de loopback, no vamos a ser tan conservadores, y vamos a migrar de golpe. Intenta ver si tienes acceso al router por winbox desde la MAC de ese bridge y, si lo tienes, subes el fichero .rsc con las instrucciones que te paso y lo ejecutas desde ahí:
Código:
# Creamos las dos vlans que representarán tu red: lan y guests
/interface vlan
add interface=bridge name=vlan-lan vlan-id=88
add interface=bridge name=vlan-guests vlan-id=66 arp=reply-only

# Las direccionamos, cambiando las interfaces actuales por vlans
/ip address
set [find interface=bridge] interface=vlan-lan
set [find interface=bridge-guests] interface=vlan-guests

# Editamos los servidores DHCP
/ip dhcp-server
set [find name=dhcp-bridge] interface=vlan-lan
set [find name=dhcp-guests] interface=vlan-guests add-arp=yes

# Seteamos guests como /32 (sin broadcast)
/ip dhcp-server network
set [find gateway=192.168.66.1] netmask=32

# Asignamos todos los puertos a la nueva VLAN 88 (puedes meter alguno en la 66 para probar)
/interface bridge port
set [find interface=ether2-nas] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether4-ap-salon] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether5] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether6-pc-despacho] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether7] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether8] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether9] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether10-ap-despacho] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=sfp-sfpplus1] frame-types=admit-only-untagged-and-priority-tagged pvid=88

# Tratamos a vlan-lan como ahora al bridge
/interface list member
set [find interface=bridge] interface=vlan-lan

# Damos de alta las vlans a filtrar en el bridge.
/interface bridge vlan
add bridge=bridge comment=lan tagged=bridge vlan-ids=88
add bridge=bridge comment=guests tagged=bridge vlan-ids=66

# Modificamos los datapath de CAPsMAN, para que ahora trabajen con vlans
/caps-man datapath
set [find name=home-dp] bridge=bridge client-to-client-forwarding=yes local-forwarding=no \
  vlan-mode=use-tag vlan-id=88
set [find name=guest-dp] bridge=bridge client-to-client-forwarding=no local-forwarding=no \
  vlan-mode=use-tag vlan-id=66

# Permitimos que sobre la nueva intervaz vlan-lan corra CAPsMAN
/caps-man manager interface
add disabled=no interface=vlan-lan

# Habilitamos el bridge vlan filtering
/interface bridge
set 0 frame-types=admit-only-vlan-tagged vlan-filtering=yes

Cuando lo apliques dime, que te paso un par de cambios más para el firewall y las listas de interfaces, y así lo simplificas un poco.

Saludos!
Genial, voy a ponerme con ello y te cuento.

S@lu2.
 
De los bridges que tienes
Código:
/interface bridge
add admin-mac=2C:C8:1B:03:46:F2 auto-mac=no name=bridge
add name=bridge-guests
add name=bridge-iptv igmp-snooping=yes
add name=bridge-vpn
add name=loopback protocol-mode=none

bridge-vpn lo puedes suprimir directamente, no hace nada (IKEv2 no necesita un bridge para trabajar). El de loopback lo vamos a mantener, ya que lo usas como extremo de los EoIP y lo anuncias en OSPF. Y, con el de ITPV te doy dos opcones: o lo mantenemos y dejaríamos el bridge principal con hardware offloading + vlans y este con snooping, o definimos una nueva vlan para iptv y metemos las tres (lan, guests e iptv) en el bridge principal, perdiendo el hardware offloading (tienes equipo de sobra, no lo vas a notar).

Probamos si quieres maneniendo el bridge-iptv por separado, y el salto de meter este último como VLAN siempre lo puedes dar a posteriori. Los EoIP se tratarían idéntico a un puerto ethernet en cuanto a vlans, se les asignaría una cualquiera como untagged en el puerto ether3 y en el EoIP, tal que cuando ese tráfico entre en el bridge se taguee con dicha VLAN para que no se mezcle con el resto.

Con ese planteamiento, tendríamos como resultado los siguientes bridges y VLANs
  • bridge
    • vlan-lan (tagged bridge, untagged todos los puertos salvo ether3)
    • vlan-guests (tagged bridge)
  • bridge-iptv
  • loopback

En tu caso, y aprovechando que tienes un bridge de loopback, no vamos a ser tan conservadores, y vamos a migrar de golpe. Intenta ver si tienes acceso al router por winbox desde la MAC de ese bridge y, si lo tienes, subes el fichero .rsc con las instrucciones que te paso y lo ejecutas desde ahí:
Código:
# Creamos las dos vlans que representarán tu red: lan y guests
/interface vlan
add interface=bridge name=vlan-lan vlan-id=88
add interface=bridge name=vlan-guests vlan-id=66 arp=reply-only

# Las direccionamos, cambiando las interfaces actuales por vlans
/ip address
set [find interface=bridge] interface=vlan-lan
set [find interface=bridge-guests] interface=vlan-guests

# Editamos los servidores DHCP
/ip dhcp-server
set [find name=dhcp-bridge] interface=vlan-lan
set [find name=dhcp-guests] interface=vlan-guests add-arp=yes

# Seteamos guests como /32 (sin broadcast)
/ip dhcp-server network
set [find gateway=192.168.66.1] netmask=32

# Asignamos todos los puertos a la nueva VLAN 88 (puedes meter alguno en la 66 para probar)
/interface bridge port
set [find interface=ether2-nas] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether4-ap-salon] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether5] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether6-pc-despacho] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether7] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether8] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether9] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=ether10-ap-despacho] frame-types=admit-only-untagged-and-priority-tagged pvid=88
set [find interface=sfp-sfpplus1] frame-types=admit-only-untagged-and-priority-tagged pvid=88

# Tratamos a vlan-lan como ahora al bridge
/interface list member
set [find interface=bridge] interface=vlan-lan

# Damos de alta las vlans a filtrar en el bridge.
/interface bridge vlan
add bridge=bridge comment=lan tagged=bridge vlan-ids=88
add bridge=bridge comment=guests tagged=bridge vlan-ids=66

# Modificamos los datapath de CAPsMAN, para que ahora trabajen con vlans
/caps-man datapath
set [find name=home-dp] bridge=bridge client-to-client-forwarding=yes local-forwarding=no \
  vlan-mode=use-tag vlan-id=88
set [find name=guest-dp] bridge=bridge client-to-client-forwarding=no local-forwarding=no \
  vlan-mode=use-tag vlan-id=66

# Permitimos que sobre la nueva intervaz vlan-lan corra CAPsMAN
/caps-man manager interface
add disabled=no interface=vlan-lan

# Habilitamos el bridge vlan filtering
/interface bridge
set 0 frame-types=admit-only-vlan-tagged vlan-filtering=yes

Cuando lo apliques dime, que te paso un par de cambios más para el firewall y las listas de interfaces, y así lo simplificas un poco.

Saludos!
Bueno, lo he aplicado y en principio bastante bien con algunos detalles que te expongo:

- Todas las interfaces físicas (ethernet) bien.
- La interfaz ether3 que está en el bridge-iptv funcionando bien.
- Las interfaces EoIP levantadas, no he tenido que configurar nada en éstas.
- Todas las interfaces inalámbricas bien, funcionan, solo he visto que en los APs, CAPsMAN ha duplicado las interfaces virtuales.

winbox64_mZc8f3Z3PD.jpg


En AP-Despacho por ejemplo me salen las interfaces así. Deberían tener la de 2G, 5G, INVITADOS e IPTV, estas dos últimas aparecen duplicadas.

winbox64_yMg1B7iaLX.jpg


- En IPv6 he tenido que borrar la IP del Bridge y crear una en la interfaz vlan-lan, ahora ya si propaga el prefijo por los dispositivos conectados.
- OSPF funciona bien pero la Red 192.168.88.0/24 aunque si está publicada en Despacho, en mAP y Apartamento no se alcanza por OSPF.

winbox64_htxbt9isw2.jpg

En Apartamento no se alcanza por el lado despacho sino por la ruta estática creada como backup (AS)

winbox64_2pKjo0Hc9e.jpg


- He borrado bridge-vpn y quitada su IP correspondiente y todo bien.
- Después del cambio, entiendo que ya sobra el bridge-guests, verdad?

Bueno, por ahora es lo que he visto.

S@lu2.
 
Vale, apaga y enciende CAPsMAN y OSPF, y tendrás el problema de la duplicidad resuelto (o dale un reinicio al router, lo que más sencillo te sea). IPv6 no lo he considerado, así que donde antes tuvieras el bridge, ahora tendrás la vlan-lan, eso es. Y sí, ahora puedes borrar el bridge-guest, que a estas alturas debería estar sin puertos ni uso alguno.

Saludos!
 
Vale, apaga y enciende CAPsMAN y OSPF, y tendrás el problema de la duplicidad resuelto (o dale un reinicio al router, lo que más sencillo te sea). IPv6 no lo he considerado, así que donde antes tuvieras el bridge, ahora tendrás la vlan-lan, eso es. Y sí, ahora puedes borrar el bridge-guest, que a estas alturas debería estar sin puertos ni uso alguno.

Saludos!
- OSPF, apagando y encendiendo la "instance" ya entra la subred en el anillo, perfecto.
- En caso de CAPsMAN, ha sido necesario un reboot de los CAPs (re-provisionando desde CAPsMAN no se solucionaba). Ya queda OK.

Respecto a lo que has comentado:
Cuando lo apliques dime, que te paso un par de cambios más para el firewall y las listas de interfaces, y así lo simplificas un poco.

Ya me dices.

S@lu2.
 
Estoy probando también cambiar el bridge-iptv por la vlan 99 a ver como se comporta, pero aquí se me escapa algo porque no funciona. Estos son los pasos que he seguido:

Código:
/interface vlan
add interface=bridge name=vlan-iptv vlan-id=99

/interface bridge port
set [find interface=ether3] frame-types=admit-only-untagged-and-priority-tagged pvid=99

/interface bridge vlan
add bridge=bridge comment=iptv tagged=bridge untagged=eoip-iptv-to-map,eoip-iptv-to-salon,ether3 vlan-ids=99

/caps-man datapath
set [find name=iptv-dp] bridge=bridge client-to-client-forwarding=no local-forwarding=no \
  vlan-mode=use-tag vlan-id=99

¿Cómo lo ves?
Gracias de nuevo.

S@lu2.
 
Última edición:
Esa VLAN es ligeramente distinta. No la direccionas tú, sino que viene direccionada y "aparece" de la nada en el EoIP, así que no necesitas declararla como tal, sólo filtrarla en el bridge. La config para montarla sería muy parecida a la docables. El tráfico se taggearía a la entrada del bridge, así que esos puertos implicados (los dos EoIP y el ether3) irían con PVID=vlan que elijas, es decir, como tráfico untagged.

Ejemplo, con la vlan 99 que has planteado
Código:
/interface bridge
set [find name=bridge] igmp-snooping=yes

/interface bridge port
set [find interface=eoip-iptv-to-map] frame-types=admit-only-untagged-and-priority-tagged pvid=99 bridge=bridge
set [find interface=eoip-iptv-to-salon] frame-types=admit-only-untagged-and-priority-tagged pvid=99 bridge=bridge
set [find interface=ether3] frame-types=admit-only-untagged-and-priority-tagged pvid=99 bridge=bridge

/interface bridge vlan
add bridge=bridge tagged=bridge vlan-ids=99 comment=iptv

/caps-man datapath
set [find name=iptv-dp] bridge=bridge client-to-client-forwarding=no local-forwarding=no vlan-mode=use-tag vlan-id=99

Y, una vez hecho esto, sobraría el bridge-iptv.

Saludos!
 
Última edición:
Esa VLAN es ligeramente distinta. No la direccionas tú, sino que viene direccionada y "aparece" de la nada en el EoIP, así que no necesitas declararla como tal, sólo filtrarla en el bridge. La config para montarla sería muy parecida a la docables. El tráfico se taggearía a la entrada del bridge, así que esos puertos implicados (los dos EoIP y el ether3) irían con PVID=vlan que elijas, es decir, como tráfico untagged.

Ejemplo, con la vlan 99 que has planteado
Código:
/interface bridge
set [find name=bridge] igmp-snooping=yes

/interface bridge port
set [find interface=eoip-iptv-to-map] frame-types=admit-only-untagged-and-priority-tagged pvid=99 bridge=bridge
set [find interface=eoip-iptv-to-salon] frame-types=admit-only-untagged-and-priority-tagged pvid=99 bridge=bridge
set [find interface=ether3] frame-types=admit-only-untagged-and-priority-tagged pvid=99 bridge=bridge

/interface bridge vlan
add bridge=bridge tagged=bridge vlan-ids=99 comment=iptv

/caps-man datapath
set [find name=iptv-dp] bridge=bridge client-to-client-forwarding=no local-forwarding=no vlan-mode=use-tag vlan-id=99

Y, una vez hecho esto, sobraría el bridge-iptv.

Saludos!
Funciona perfecto! Muchas gracias compi.

Y ya por último porfa, ¿crees que haría falta algún cambio en el firewall tal y como lo tengo ahora después de meter esas VLANs?

Bash:
/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=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="allow ipsec" dst-port=500,4500 protocol=udp
add action=accept chain=input protocol=ipsec-esp
add action=accept chain=input comment="vpn: allow wireguard-rw" dst-port=57588 protocol=udp
add action=accept chain=input comment="vpn: allow wireguard-rw-iptv" dst-port=57589 protocol=udp
add action=accept chain=input comment="vpn: allow wireguard to apto" dst-port=57591 protocol=udp
add action=accept chain=input comment="vpn: allow wireguard to map" dst-port=54321 protocol=udp
add action=accept chain=input comment="iptv: allow gre for eoip" in-interface-list=GRE protocol=gre
add action=accept chain=input comment="allow access to router HQ from IPSec tunnel" ipsec-policy=in,ipsec src-address=\
    192.168.68.0/24
add action=accept chain=input comment="allow access to Winbox from Loopback" src-address=10.252.252.0/24
add action=drop chain=input comment="deny access to router from USA" src-address=10.10.0.4
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
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 hw-offload=\
    yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="access from USA only to WAN" out-interface-list=!WAN src-address=10.10.0.4
add action=drop chain=forward comment="guests: block guests" out-interface-list=!WAN src-address=192.168.66.0/24
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


S@lu2.
 
Intentaría aglutinar los puertos de wireguard en una sola regla. Todos los puertos, separados por coma. También puedes crear una lista de direcciones "admin" y la permites en input (por si el día de mañana entras desde otras IP's, no añadir más reglas) Así simplificarías algunas de ellas, reduciendo su número.

Saludos!
 
Arriba