TanodTools
RU

Генератор Address List для MikroTik

Вставьте IP-адреса, сети или диапазоны в любом сочетании и получите чистый скрипт address-list для RouterOS без дубликатов и с объединёнными смежными сетями.

Работает в браузере; ваши списки не покидают устройство

По одному в строке или через запятые. Текст после # или ; игнорируется.
Необязательно, например 1h, 1d или 1w.

Читает адреса IPv4 и IPv6, сети CIDR и диапазоны вида первый-последний; всё после # или ; в строке игнорируется. Большие списки (сотни тысяч записей) обрабатываются, но это занимает некоторое время. MikroTik и RouterOS являются товарными знаками SIA Mikrotīkls. Этот инструмент независим и не связан с MikroTik и не одобрен этой компанией.

Как создать address list для MikroTik

  1. Вставьте адреса: по одному в строке либо через запятые или пробелы. Сети (203.0.113.0/24) и диапазоны (198.51.100.10-198.51.100.20) тоже подходят.
  2. Задайте имя списка и при желании timeout или комментарий для каждой записи.
  3. Оставьте объединение включённым, чтобы записей было как можно меньше, затем скопируйте скрипт или скачайте файл .rsc и выполните /import file-name=list.rsc.

Address list в RouterOS

Address list — это именованный набор IP-адресов и сетей в разделе /ip firewall address-list (и /ipv6 firewall address-list для IPv6). Правила файрвола, NAT, mangle и raw могут сопоставлять весь список одним условием, благодаря чему наборы правил остаются короткими и быстрыми: RouterOS ищет принадлежность списку по дереву, а не перебирает по одному правилу на каждую сеть. Списки обычно используют для сетей управления, диапазонов клиентов, чёрных списков из фидов угроз и адресов, которые правило добавляет динамически через action=add-src-to-address-list.

В одном списке могут быть отдельные адреса, сети CIDR и диапазоны, а пересекающиеся записи допустимы, из-за чего импортированные фиды и становятся неряшливыми. Эта страница приводит список в порядок до того, как он попадёт на маршрутизатор: нормализует каждую запись (сеть, записанная с битами хоста, например 10.1.2.3/24, становится 10.1.2.0/24), удаляет точные дубликаты и при включённом объединении сводит всё к минимальному набору блоков CIDR. Для одиночного хоста скрипт использует простой адрес, как его выводит сам RouterOS.

Советы

Вопросы и ответы

Что делает объединение?

Оно сортирует все записи, соединяет пересекающиеся и соприкасающиеся адреса и сети и записывает результат наименьшим числом блоков CIDR, которые покрывают в точности те же адреса. 10.0.0.0/25 и 10.0.0.128/25 становятся 10.0.0.0/24, а отдельный адрес внутри уже имеющейся сети исчезает. Ничего, что не было покрыто раньше, не добавляется.

Почему диапазон превратился в несколько записей?

Диапазон вроде 10.0.0.5-10.0.0.20 не совпадает с границей одной сети, поэтому записывается блоками CIDR, которые покрывают его точно: 10.0.0.5/32, 10.0.0.6/31, 10.0.0.8/29, 10.0.0.16/30 и 10.0.0.20/32. RouterOS принимает и диапазоны, но записи CIDR легче читать и сравнивать.

Импорт останавливается на полпути с ошибкой «already have such entry». Почему?

RouterOS отказывается добавлять адрес, который уже есть в списке, а импорт останавливается на первой ошибке. Включите «Пропускать уже существующие записи»: тогда каждая строка оборачивается в :do { … } on-error={}, дубликаты пропускаются, и импорт продолжается. Или включите «Заменить список», чтобы сначала очистить его.

Как использовать список в правиле файрвола?

Сопоставляйте его через src-address-list= или dst-address-list=, например /ip firewall raw add chain=prerouting src-address-list=blocklist action=drop. Отбрасывание в таблице raw обходит отслеживание соединений, что дешевле для больших чёрных списков.

Мои списки загружаются на сервер?

Нет. Разбор и объединение выполняются в вашем браузере, ничего из вставленного никуда не отправляется.