ограничение трафика при условии, что шлюз это роутер перед mikrotik'ом

RIP, OSFP, BGP, MPLS/VPLS
Ziko
Сообщения: 3
Зарегистрирован: 22 фев 2023, 16:43

ограничение трафика при условии, что шлюз это роутер перед mikrotik'ом

Сообщение Ziko »

Есть существующая сеть с роутером L3, который получает интернет и занимается маршрутизацией vlan'ов и раздачей DHCP. За роутером стоит коммутатор L3, и уже за ним идут коммутаторы L2. В разрыв между роутером и первым коммутатором ставлю mikrotik, с тем условием, что хочу переложить на него функции DHCP и ограничение скорости доступа в интернет для хостов.
Для теста создал на роутере vlan и на этом интерфейсе забил IP 10.10.118.1 будет выступать шлюзом. Дальше на mikrotik тоже создал такой же vlan, дал ему адрес 10.10.118.250, поднял DHCP которое задает шлюз хостам 10.10.118.1. Создал бридж в который запихнул этот vlan и 2 порта. Первый транковый порт смотрит на роутер, второй транковый на коммутатор. С этим все хорошо, хосты получают ip адреса, видят остальные доступные для них vlan'ы и ходят в интернет. Но проблема в том, что я не могу ограничить скорость доступа в интернет.
Попробовал маркировать для этого трафик но mikrotik его не видит. И тут у меня 2 варианта: 1 я не то делаю, что скорее всего, потому что не хочется верить, что mikrotik на это не способен. 2 mikrotik не маркирует пакеты и не ограничивает скорость хостам, потому что не является для них шлюзом.
Подскажите пожалуйста куда копать. С mikrotik'ом столкнулся второй раз в жизни, в первый была очень простая задача по сравнению с этой.

Код: Выделить всё

# RouterOS 6.48.6
# model = CRS317-1G-16S+
/interface bridge
add admin-mac=18:FD:74:0F:05:EE auto-mac=no dhcp-snooping=yes frame-types=\
    admit-only-vlan-tagged ingress-filtering=no name=B1 vlan-filtering=yes
/interface vlan
add interface=B1 name=NET vlan-id=22
add interface=B1 name=TT vlan-id=118
/interface lte apn
set [ find default=yes ] ip-type=ipv4 use-network-apn=no
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=117 ranges=10.10.117.1-10.10.117.220
add name=118 ranges=10.10.118.2-10.10.118.249
/ip dhcp-server
add add-arp=yes address-pool=118 interface=TT lease-time=1d10m name=TT-118
/port
set 0 name=serial0
/queue tree
add disabled=yes max-limit=20M name=Download parent=global
/queue type
add kind=pcq name=pcq-download-5M pcq-classifier=dst-address pcq-rate=5M
add kind=pcq name=pcq-upload-5M pcq-classifier=src-address pcq-rate=5M
add kind=pcq name=download-5Mb pcq-burst-rate=2M pcq-burst-threshold=768k \
    pcq-burst-time=32s pcq-classifier=dst-address pcq-rate=1M
add kind=pcq name=upload-5M pcq-burst-rate=2M pcq-burst-threshold=768k \
    pcq-burst-time=32s pcq-classifier=src-address pcq-rate=1M
/queue simple
add max-limit=100M/100M name=1 queue=ethernet-default/ethernet-default \
    target=TT
add dst=B1 max-limit=20M/20M name=2 packet-marks=QS-20M parent=1 queue=\
    default/default target=TT
/routing bgp template
set default disabled=no output.network=bgp-networks
/routing ospf instance
add disabled=no name=default-v2
/routing ospf area
add disabled=yes instance=default-v2 name=backbone-v2
/interface bridge filter
# in/out-bridge-port matcher not possible when interface (TT) is not slave
add action=mark-packet chain=forward in-interface=TT new-packet-mark=QS-20M-B \
    out-bridge=B1
/interface bridge port
add bridge=B1 frame-types=admit-only-vlan-tagged ingress-filtering=no \
    interface=sfp-sfpplus3
add bridge=B1 frame-types=admit-only-vlan-tagged ingress-filtering=no \
    interface=sfp-sfpplus1
/interface bridge settings
set use-ip-firewall=yes use-ip-firewall-for-vlan=yes
/ip neighbor discovery-settings
set discover-interface-list=!dynamic
/ip settings
set max-neighbor-entries=8192
/ipv6 settings
set disable-ipv6=yes max-neighbor-entries=8192
/interface bridge vlan
add bridge=B1 tagged=B1,sfp-sfpplus1,sfp-sfpplus3 vlan-ids=118
add bridge=B1 tagged=B1,sfp-sfpplus1,sfp-sfpplus3 vlan-ids=22
/interface ovpn-server server
set auth=sha1,md5
/ip address
add address=10.10.31.249/23 disabled=yes interface=NET network=10.10.30.0
add address=10.10.118.250/24 interface=TT network=10.10.118.0
/ip dhcp-client
add disabled=yes interface=ether1
/ip dhcp-server network
add address=10.10.118.0/24 dns-server=8.8.8.8,8.8.4.4 gateway=10.10.118.1
/ip firewall address-list
add address=10.10.118.0/24 list=TT-118
/ip firewall filter
add action=accept chain=input protocol=icmp
add action=accept chain=forward protocol=icmp
add action=accept chain=input connection-state=established,related
add action=accept chain=forward connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=drop chain=forward connection-state=invalid
add action=drop chain=input disabled=yes in-interface=ether1
add action=accept chain=forward disabled=yes in-interface=!ether1 \
    out-interface=ether1
add action=drop chain=forward
/ip firewall mangle
add action=mark-packet chain=forward in-interface=B1 new-packet-mark=QS-20M \
    out-interface=TT passthrough=no src-address-list=TT-118
add action=mark-packet chain=forward dst-address-list=TT-118 in-interface=TT \
    new-packet-mark=QS-20M out-interface=B1 passthrough=no
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/system clock
set time-zone-name=Europe/Minsk
/system identity
set name=RouterOS
/system package update
set channel=long-term
/system routerboard settings
set boot-os=router-os
Последний раз редактировалось Ziko 24 фев 2023, 15:52, всего редактировалось 1 раз.
Аватара пользователя
Chupaka
Сообщения: 4089
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: ограничение трафика при условии, что шлюз это роутер перед mikrotik'ом

Сообщение Chupaka »

Здравствуйте.

Из документации:
use-ip-firewall (yes | no; Default: no)
Force bridged traffic to also be processed by prerouting, forward, and postrouting sections of IP routing (see more details on Packet Flow article). This does not apply to routed traffic. This property is required in case you want to assign Simple Queues or global Queue Tree to traffic in a bridge. Property use-ip-firewall-for-vlan is required in case bridge vlan-filtering is used.
Видимо, ваш случай.
Ziko
Сообщения: 3
Зарегистрирован: 22 фев 2023, 16:43

Re: ограничение трафика при условии, что шлюз это роутер перед mikrotik'ом

Сообщение Ziko »

Здравствуйте,

Спасибо за наводку, пойду изучать
Ziko
Сообщения: 3
Зарегистрирован: 22 фев 2023, 16:43

Re: ограничение трафика при условии, что шлюз это роутер перед mikrotik'ом

Сообщение Ziko »

Chupaka писал(а): 24 фев 2023, 13:53
use-ip-firewall (yes | no; Default: no)
Force bridged traffic to also be processed by prerouting, forward, and postrouting sections of IP routing (see more details on Packet Flow article). This does not apply to routed traffic. This property is required in case you want to assign Simple Queues or global Queue Tree to traffic in a bridge. Property use-ip-firewall-for-vlan is required in case bridge vlan-filtering is used.
Видимо, ваш случай.
Как оказалось use-ip-firewall и последующая ловля пакетов в firewall mangle оказался не моим случаем. Так как это трафик L2 отключил на используемых портах HW Offload чем перенаправил трафик со Switch на CPU (Bridge) и после маркировки пакетов в Bridge Filters получилось ограничить скорость в Queue tree.
Выкладываю код настройки, может у кого-то будет похожая задача.

Код: Выделить всё

/interface bridge
add admin-mac=18:FD:74:0F:05:EE auto-mac=no dhcp-snooping=yes frame-types=\
    admit-only-vlan-tagged ingress-filtering=no name=B1 vlan-filtering=yes
/interface vlan
add interface=B1 name=TT vlan-id=118
/interface ethernet switch
set 0 l3-hw-offloading=yes
/interface ethernet switch port
set 0 l3-hw-offloading=no
set 2 l3-hw-offloading=no
set 3 l3-hw-offloading=no
/ip pool
add name=118 ranges=10.10.118.2-10.10.118.249
/ip dhcp-server
add add-arp=yes address-pool=118 interface=TT lease-time=1d10m name=TT-118
/port
set 0 name=serial0
/queue tree
add max-limit=90M name=1 parent=sfp-sfpplus1 queue=\
    default
add max-limit=21M name=2 packet-mark=QS-20M-F parent=1
add max-limit=90M name=3 parent=sfp-sfpplus3 queue=\
    default
add max-limit=21M name=4 packet-mark=QS-20M-F1 parent=3
/interface bridge filter
add action=mark-packet chain=forward in-interface=sfp-sfpplus1 mac-protocol=\
    vlan new-packet-mark=QS-20M-F1 out-interface=sfp-sfpplus3 vlan-id=118
add action=mark-packet chain=forward in-interface=sfp-sfpplus3 mac-protocol=\
    vlan new-packet-mark=QS-20M-F out-interface=sfp-sfpplus1 vlan-id=118
/interface bridge port
add bridge=B1 frame-types=admit-only-vlan-tagged hw=no ingress-filtering=no \
    interface=sfp-sfpplus3
add bridge=B1 frame-types=admit-only-vlan-tagged hw=no ingress-filtering=no \
    interface=sfp-sfpplus1
/ip neighbor discovery-settings
set discover-interface-list=!dynamic
/interface bridge vlan
add bridge=B1 tagged=B1,sfp-sfpplus1,sfp-sfpplus3 vlan-ids=118
/ip address
add address=10.10.118.250/24 interface=TT network=10.10.118.0
/ip dhcp-server network
add address=10.10.118.0/24 dns-server=8.8.8.8,8.8.4.4 gateway=10.10.118.1
Если у кого-то будут идеи по оптимизации буду рад идеям.