ДОброе утро! Преамбула: 1. Есть внутреннюю сеть 192.168.2.0/24, в которой выделен отдельно компьютер MyPhone с адресом 192.168.2.6 и группа компьютеров 192.168.2.20-192.168.2.100, которые нужно обрабатывать группой, без выделения отдельных IP адресов 2. Провайдер выделяет динамический адрес из пула 192.168.1.0/24 3. МАршрутизатор - Mikrotik RB951G-2HnD. Дефолтные интерфейсы переименованы. Интерфейс WAN (ether1) маршрутизатора работает на провайдера. Интерфейс LAN2 (ether2) работает на внутреннюю сеть. На нем работает DHCP-сервер, который раздает адреса во внутреннюю сеть. Компьютеру MyPhone он по МАС-адресу выдает IP 192.168.2.6, а группе компьютеров дает адреса и вносит их в список адресов DHCP_Users. В принципе, как конфигурировать маршрутизатор, я разобрался. Вплоть до того, что HTB, реализующее сложный алгоритм ограничения скоростей, для статического адреса компьютера (в данном случае это 192.168.2.6), работает и четко ограничивает. Однако возникла загвоздка с группой. Что я делаю сейчас в программе: 1. Объявляю пул адресов DHCP-сервера для группы компьютеров /ip pool add name=DHCP_Users ranges=192.168.2.22-192.168.2.100 2. Подключаю DHCP-сервер с установленным пулом /ip dhcp-server add address-pool=DHCP_Users authoritative=after-2sec-delay bootp-support=static disabled=no interface=LAN2 lease-time=8h name=ChernomorNet 3. В блоке PREROUTING маркирую все соединения по интерфейсу WAN и именую их InputConnections # Входные соединения /ip firewall mangle add action=mark-connection chain=prerouting comment=Incoming disabled=no \ in-interface=WAN connection-state=new,established,related new-connection-mark=InputConnections passthrough=yes 4. В блоке FORWARD выделяю из всех входящих только соединение, относящееся к компьютеру MyPhone, и маркирую его # Входящий траффик /ip firewall mangle add chain=forward action=mark-connection connection-mark=InputConnections disabled=no dst-address=192.168.2.6 new-connection-mark=InputMyPhone comment="My phone" passthrough=yes 5. Потом в нем маркирую пакеты add chain=forward action=mark-packet connection-mark=InputMyPhone new-packet-mark=In-Pack-Phone passthrough=yes 6. По непонятной мне причине HTB отказывается использовать пакеты In-Pack-Phone в Queue Tree, поэтому приходится их перемаркировать в блоке POSTROUTING. add chain=postrouting action=mark-packet packet-mark=In-Pack-Phone new-packet-mark=InputPacketsToMyPhone passthrough=yes После этого они идут в Queue Tree, где и используются. С этой цепочкой вопросов не возникает. ТЕперь пытаюсь сделать то же самое для группы DHCP_Users 7. МАркирую соединение в блоке FORWARD # Входящий траффик /ip firewall mangle add chain=forward action=mark-connection connection-mark=InputConnections disabled=no \ dst-address-list=DHCP_Users new-connection-mark=InputDHCPUsers comment="DHCPUsers" passthrough=yes И вот тут все, затык. Никакой реакции, маршрутизатор показывает постоянный нуль, компьютер из группы пишет, что доступа в интернет нет. В чем моя ошибка? Или я что-то не учел и не добавил?
Самым простым выходом было б повводить по переменной на каждый компьютер списка DHCP_Users и сделать статический список по аналогии с компьютером MyPhone. Но раз в команде маркировки фигурирует dst-address-list, то должно быть более простое решение моей задачи. Подскажите
Потому что Queues сидят в Postrouting и в Input. Я вообще цели не понял у вас. Вы чего добиться хотите?
Я сделал сложное дерево Queue Tree по ограничению траффика от конкретных машин со статическими адресами и групп компьютеров с динамическими адресами, задаваемыми DHCP-сервером МИкротика. Для статических адресов дерево нормально работает, четко ограничивая скорость. Но для динамических адресов почему-то не работает. показывает нули. Вот и пытаюсь понять, где я накосячил