Разное

Static dns mikrotik: Расширенная настройка DNS и DHCP в роутерах Mikrotik

Содержание

Настройка кэширующего DNS-сервера на роутере Mikrotik

В RouterOS есть простейший DNS-сервер, который, не смотря на свою простоту, может оказаться вполне применимым для небольших сетей.

Базовую настройку DNS можно выполнить в графическом интерфейсе WinBox:

1. Войдем в меню IP
2. Пункт DNS
3. В параметре Servers введем адреса DNS провайдера
4. Поставим галочку Allow Remote Requests (без нее сервер DNS не будет обрабатывать DNS-запросы клиентов)
5. Установим размер кэша DNS

6. И установим TTL для записей в кэше DNS, по истечению которого записи будут обновляться

Настроим статические записи DNS:

1. В DNS Settings нажимаем Static
2. В появившемся окне нажимаем +
3. Вводим DNS-адрес в поле Name
4. Вводим IP-адрес в поле Address
5. Устанавливаем TTL в соответствующее поле

Статические записи DNS позволяют ускорить работу DNS для часто используемых узлов, либо подменить узлы своими web-страницами (например, для запрещенных в вашей компании сайтов).

Рассмотрим кэш DNS чуть подробнее:

1. В DNS Settings нажимаем Cache. Перед нами предстанет список скэшированных DNS-записей. Обратите внимание: ранее введенные статические адреса тут присутствуют с флагом S (static) в виде записей типа A и PTR.
2. Если необходимо очистить кэш — жмем Flush Cache.

Более тонкая настройка DNS доступна только из консоли:

1. Запускаем терминал в меню
2. Входим в меню /ip dns. Чтобы увидеть все доступные команды внутри меню, набираем на клавиатуре ? — консоль выдаст все доступные команды и их описание. Аналогичная справка появляется и внутри подменю. Например, чтобы увидеть все команды в подменю set, необходимо набрать на клавиатуре set ?.

они это сделали / Хабр

Не прошло и 10 лет, как разработчики RoS (в stable 6.47) добавили функционал, который позволяет перенаправить DNS запросы в соответствии со специальными правилами. Если раньше надо было изворачиваться с Layer-7 правилами в firewall, то теперь это делается просто и изящно:

/ip dns static
add forward-to=192.168.88.3 regexp=".*\\.test1\\.localdomain" type=FWD
add forward-to=192.168.88.56 regexp=".*\\.test2\\.localdomain" type=FWD

Моему счастью нет предела!

Чем это нам грозит?

Как минимум, мы избавляемся от странных конструкций с NAT наподобие этой:


/ip firewall layer7-protocol
add comment="DNS Nat contoso. com" name=contoso.com regexp="\\x07contoso\\x03com"
/ip firewall mangle
add action=mark-packet chain=prerouting comment="mark dns contoso.com" dst-address-type=local dst-port=53 in-interface-list=DNSMASQ layer7-protocol=contoso.com new-packet-mark=dns-contoso.com passthrough=yes protocol=udp
add action=mark-packet chain=prerouting comment="mark dns contoso.com" dst-address-type=local dst-port=53 in-interface-list=DNSMASQ layer7-protocol=contoso.com new-packet-mark=dns-contoso.com passthrough=yes protocol=tcp
/ip firewall nat
add action=dst-nat chain=dstnat comment="DST-NAT dns contoso.com" dst-port=53 in-interface-list=DNSMASQ packet-mark=dns-contoso.com protocol=udp to-addresses=192.0.2.15
add action=dst-nat chain=dstnat comment="DST-NAT dns contoso.com" dst-port=53 in-interface-list=DNSMASQ packet-mark=dns-contoso.com protocol=tcp to-addresses=192.0.2.15
add action=masquerade chain=srcnat comment="mask dns contoso.com" dst-port=53 packet-mark=dns-contoso.com protocol=udp
add action=masquerade chain=srcnat comment="mask dns contoso. com" dst-port=53 packet-mark=dns-contoso.com protocol=tcp

И это не все, теперь можно прописать несколько серверов пересылки, что поможет сделать dns failover.

Интелектуальная обработка DNS даст возможность начать внедрение ipv6 в сеть компании. До этого я этого не делал, причина в том, что мне нужно было разрешать ряд dns имен в локальные адреса, а в ipv6 это было не сделать без довольно больших костылей.

Как настроить DNS на роутере MikroTik

Инструкция содержит описание по настройке DNS сервера в MikroTik, общие сведения о работе с DNS серверами: динамическими и Active Directory.

  1. Настройка DNS сервера
  2. Отключение динамического DNS
  3. Добавление DNS записей
  4. Очистка кэша
  5. Задать вопрос по настройке DNS сервера

Настройка сервисов на маршрутизаторах MikroTik: подключение интернета, DHCP, brige, VLAN, WiFi, Capsman, VPN, IpSec, PPTP, L2TP, Mangle, NAT, проброс портов, маршрутизация(routing), удаленное подключение и объединение офисов.

До настройки MikroTik DNS сервера

Разные конфигурации как локальной сети так и интернет подключений обязывают рассматривать подводные камни и проходить к неким ограничениям по настройке и использованию MikroTik в качестве DNS сервера. Подчеркнем самые распространенные случаи:

  1. В локальной сети присутствует Active Directory. В этом случае роль DNS сервера лучше передать DNS серверу, который работает в связке с AD. Это конфигурация будет обеспечивать обработку DNS запросов на одном сервере, без переадресации или промежуточного кеширования.
  2. Маршрутизатор(роутер) MikroTik имеет несколько Интернет подключений WAN. Нужно контролировать список DNS серверов, с которыми синхронизируется MikroTik и маршрутизацию, чтобы исключить ситуацию, когда обращение к DNS серверу провайдера №1 происходит по каналу интернет провайдера №2.
  3. Удаленные запросы. Этот пункт больше связан с настройкой FireWall, но упуская его из виду, можно значительно повысить нагрузку на маршрутизатор(роутер). Речь идет о запросах: гостевой сети с интерфейсов LAN и цепочки input на WAN интерфейсах.

Как настроить DNS сервер в MikroTik

Настройка находится в IP→DNS

/ip dns
set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4

Allow remote requests – разрешение на обработку удаленных DNS запросов. Т.е. если указать MikroTik в качестве DNS сервера, он обработает все поступающие запросы.

Поддержи автора статьи, сделай клик по рекламе ↓↓↓

Отключение Dynamic DNS серверов в MikroTik

Подключение типа dhcp client, pppoe client, LTE имеют активный параметр Use Peer DNS. Таким образом запись, которая доступна при подключении такого соединения передаёт динамический DNS сервер в соответствующий раздел RouterOS роутера MikroTik. Чтобы этого избежать, нужно отключить соответствующие опции в параметрах подключений, к примеру:

Отключение динамического DNS для DHCP клиента

Отключение динамического DNS для PPPOE соединения

Добавление в MikroTik DNS записей типа A, TXT, CNAME, MX

На роутере MikroTik функционирует полноценная служба DNS сервера, функционал которого включает использование статических записей.

Настройка находится в IP→DNS→Static

Очистка DNS кэша в MikroTik

При работе с любым сервером DNS, а в частности изменением старых записей, требуется очистить кэш DNS, чтобы клиент получил свежие записи. Данная очистка совершается через кнопку Flush Cache.

Настройка находится в IP→DNS→Cache→Flush Cache

Есть вопросы или предложения по настройке DNS сервера в MikroTik? Активно предлагай свой вариант настройки! Оставить комментарий

DNS в Mikrotik — Делюсь опытом

Кэширующий DNS в микротике это хорошо и просто.  Настраивается быстро, используется легко и непринужденно. Опишу на примере и чуток поделюсь опытом.

Итак, начнем. Если вы используете winbox, то первый этап выполняется в несколько кликов: IP->DNS. В появившемся окне указываете серверы пересылки, не забыв при этом поставить галку «Allow remote requests».

…или в терминале выполнить

/ip dns
set allow-remote-requests=yes servers=77.88.8.8,77.88.8.1,8.8.8.8



 

 

/ip dns

set allow-remote-requests=yes servers=77.88.8.8,77.88.8.1,8.8.8.8

Этого достаточно, чтобы Mikrotik стал принимать DNS-запросы из локальной сети, пересылать их на указанные серверы и возвращать IP-адреса любимых сайтов конечным пользователям в вашей локалке. Т.е. с этого момента вы можете указывать ваш роутер не только шлюзом но и сервером DNS в настройке соединения.

Конечно, не все запросы будут пересылаться, для этого есть кэш. Он же cache. О проблеме с кэшем (мелочь, а неприятно), с которой я столкнулся, напишу ниже.

Все работает, но… Есть моменты, на которых я хотел бы заострить внимание.

Давайте не будем использовать только дефолт. Обезопасим себя и роутер от лишнего и абсолютно ненужного траффика.

При такой дефолтной настройке mikrotik будет отвечать на DNS запросы по всем интерфейсам. (Конечно же в том случае, если вы еще не настроили firewall) Нужны ли такие «левые» запросы? Конечно нет.
Поэтому в настройке firewall до «всеобщего DROP» в цепочке INPUT надо либо явно указать интерфейсы, с которых принимать DNS запросы (по одному правилу на интерфейс), либо указать диапазон IP, с которого принимать эти запросы):

/ip firewall filter
# еще какие-то разрешающие правила
# разрешим DNS-запросы с интерфейса ether2, который «смотрит» в локалку
add chain=input comment=»Allow DNS from ether2″ dst-port=53 in-interface=ether2 protocol=udp
#мы уверены, что все нужное разрешили выше
#поэтому запретим весь остальной траффик в цепочке INPUT
add action=drop chain=input comment=»Drop Another INPUT»



 

 

/ip firewall filter

# еще какие-то разрешающие правила

# разрешим DNS-запросы с интерфейса ether2, который «смотрит» в локалку

add chain=input comment=»Allow DNS from ether2″ dst-port=53 in-interface=ether2 protocol=udp

#мы уверены, что все нужное разрешили выше

#поэтому запретим весь остальной траффик в цепочке INPUT

add action=drop chain=input comment=»Drop Another INPUT»

Либо разрешить DNS на всех интерфейсах, кроме «внешнего». Вот так, например:

# разрешим везде, кроме myISP, «внешнего» интерфейса
add chain=input comment=»Allow DNS from ether2″ dst-port=53 in-interface=!myISP protocol=udp



 

 

# разрешим везде, кроме myISP, «внешнего» интерфейса

add chain=input comment=»Allow DNS from ether2″ dst-port=53 in-interface=!myISP protocol=udp

Либо… Либо… Способов много, firewall заслуживает отдельной большой темы даже для базовой настройки. Поэтому углубляться я тут не буду. Просто изложу принципы.

Реклама:

Допустим, мы написали нужные правила, определили откуда можно присылать DNS-запросы, все остальное отсекли. И тут DNS перестал работать. Все верно, т.к. мы забыли очень важную вещь: мы забыли разрешить серверам пересылки отвечать нашему роутеру. Т.е. mikrotik получает запрос из локалки, пересылает запрос, например, гуглу (8. 8.8.8), гугл пытается ответить нашему роутеру и этот ответ отсекается последним правилом

/ip firewall filter
#…
#…
#…
#поэтому запретим весь остальной траффик в цепочке INPUT
# следующее правило отправит ответ гугла в небытие…
add action=drop chain=input comment=»Drop Another INPUT»



 

 

/ip firewall filter

#…

#…

#…

#поэтому запретим весь остальной траффик в цепочке INPUT

# следующее правило отправит ответ гугла в небытие…

add action=drop chain=input comment=»Drop Another INPUT»

Нехорошо. Надо разрешить. Добавляем еще правило перед последним. Здесь я разрешу только серверу 8.8.8.8 ответить на запрос нашего роутера. Это для примера. Можно не указывать src-address, если вы не хотите писать отдельное правило для каждого сервера.

add chain=input comment=»Allow DNS request» in-interface=myISP protocol=udp src-address=8. 8.8.8 src-port=53



 

 

add chain=input comment=»Allow DNS request» in-interface=myISP protocol=udp src-address=8.8.8.8 src-port=53

Обратите внимание, что надо указывать src-port=53 а не dst-port=53. Наш роутер обратится к 8.8.8.8 с произвольного порта, а вот гугл будет отвечать именно с 53-го.

В конечном виде правила будут выглядеть следующим образом.

/ip firewall filter
# еще какие-то правила
# …
# разрешим DNS-запросы с интерфейса ether2, который «смотрит» в локалку
# в первом примере было так:
# add chain=input comment=»Allow DNS from ether2″ dst-port=53 in-interface=ether2 protocol=udp
# здесь я поступлю немного по-другому. Запрещу DNS запросы со всех интерфейсов, кроме ether2
add action=drop chain=input comment=»Drop DNS from !ether2″ dst-port=53 in-interface=!ether2 protocol=udp
# теперь разрешу всем DNS-серверам отвечать своему роутеру (уберу src-address=8. 8.8.8)
add chain=input comment=»Allow DNS request» in-interface=myISP protocol=udp src-port=53
#теперь мы точно уверены, что все нужное разрешили выше
#поэтому запретим весь остальной траффик в цепочке INPUT
add action=drop chain=input comment=»Drop Another INPUT»



 

 

/ip firewall filter

# еще какие-то правила

# …

# разрешим DNS-запросы с интерфейса ether2, который «смотрит» в локалку

# в первом примере было так:

# add chain=input comment=»Allow DNS from ether2″ dst-port=53 in-interface=ether2 protocol=udp

# здесь я поступлю немного по-другому. Запрещу DNS запросы со всех интерфейсов, кроме ether2

add action=drop chain=input comment=»Drop DNS from !ether2″ dst-port=53 in-interface=!ether2 protocol=udp

# теперь разрешу всем DNS-серверам отвечать своему роутеру (уберу src-address=8.8.8.8)

add chain=input comment=»Allow DNS request» in-interface=myISP protocol=udp src-port=53

#теперь мы точно уверены, что все нужное разрешили выше

#поэтому запретим весь остальной траффик в цепочке INPUT

add action=drop chain=input comment=»Drop Another INPUT»

Кто-то пытливый обратил внимание, что в примерах отсутствуют action=accept. Accept используется по-умолчанию. Поэтому, когда мы хотим что-то разрешить, явно указывать «разрешаю» не обязательно.

Реклама:

Если у вас в локалке есть какие-то ресурсы, которым вы хотите присвоить имя, то вы можете добавить запись IP->DNS->Static. Когда это нужно? Да повсеместно. Например, у вас в сети есть файловый сервер или другой внутренний-ресурс, который постоянно мигрирует по разным IP-адресам и вам лень каждый раз перенастраивать подключение у каждого клиента.

Нажимаете «Static» и устанавливаете взаимосвязь между IP и именем хоста. Чтобы не листать наверх, вот вам еще раз рисунок из начала страницы:

Увидите следующее окно и, нажимая «+», добавляйте свои записи. Вот, собственно:

 

Или через терминал:

/ip dns static
add address=192.168.1.5 name=file-serv-1.lcl
add address=192.168.1.7 name=media-serv-1.lcl
add address=192.168.1.6 name=file-serv-2.lcl



 

 

/ip dns static

add address=192. 168.1.5 name=file-serv-1.lcl

add address=192.168.1.7 name=media-serv-1.lcl

add address=192.168.1.6 name=file-serv-2.lcl

Гораздо легче будет потом жить. Ваши пользователи будут обращаться к file-serv-1.lcl, а вы втихую менять его IP на микротике в случае переезда сервера.

Есть еще кнопка Cache, нажав которую, вы увидите, что в данный момент закешировал mikrotik и сможете этот кеш очистить, нажав в открывшемся окне Flush cache.

С настройкой вкратце все. Теперь мелкая неприятность, с которой я как-то столкнулся. Кроется она во взаимодействии кэша DNS микротика и статических записей. Не знаю, на каких версиях это еще проявляется, я словил на CCR1036-8G-2S+ RouterOS v6.15. Может, я вообще единственный, кто это наблюдал. Но, тем не менее, поделюсь. Вдруг кому поможет.

Если сменился IP хоста и вам надо отредактировать статическую запись, то лучше удалить старую и создать новую. Если просто отредактировать существующую, то в кэше могут остаться старые записи и ни кнопка Flush cache не поможет, ни /ip dns cache flush через терминал.

Глюк проявляется не систематически, но как-то раз заставил меня изрядно напрячь мозг, прежде чем я понял, в чем дело. Проверяйте кэш после редактирования статических записей. Если видите старое в дополнение к новому, то надо заново создать старую запись и удалить ее. Тогда она также удалится и из кэша.

Реклама:

Читайте также

MikroTik Split or Forwarding DNS

В логах беты версии 6.47 увидел что есть изменения в работе DNS сервера на MikroTik.

Ну что-же интересно, необходимо проверить, работу и посмотреть что к чему.

Решил не использовать GNS, а взял с полки специально для тестов HAP ac2 и естественно обновил на последнюю beta версию.

IP адрес маршрутизатора с бета версией 172.20.17.100

Естественно по наитию пошли смотреть в /ip dns static

И видим нововведения, ну что же надо разобраться и проверить.

Не только A но и другие типы записей.

Раньше нем было доступно только A и AAAA записи для IPv4 и соответственно IPv6, как видим сейчас стало значительно больше.

Ну что-же давайте проверим все эти записи.

Проверять мы будет работу с помощью nsloopkup.

CNAME

Тип ссылки, когда мы говорим, что для данной записи ищи значение в другой записи.

/ip dns static> 
add type=CNAME name=test.mikrotik.me cname=blabla.mikrotik.me 

Проверка.

[email protected] ~ % nslookup -type=cname test.mikrotik.me 172.20.17.100 
Server:     172.20.17.100
Address:    172.20.17.100#53

Non-authoritative answer:
test.mikrotik.me    canonical name = blabla.mikrotik.me.

Работает!!!

MX

Записи MX необходимы для корректной работы, а точнее поиска сервера для получения почты по протоколу SMTP.

Создадим две записи для вымышленного домена, с разными весами.

[[email protected]] /ip dns static> 
add type=MX name=mail.com mx-exchange=1.1.1.1 mx-preference=10
add type=MX name=mail.com mx-exchange=2.2.2.2 mx-preference=20 

Проверка.

[email protected] ~ % nslookup -type=mx mail.com 172.20.17.100 
Server:     172.20.17.100
Address:    172.20.17.100#53

Non-authoritative answer:
mail.com    mail exchanger = 10 1.1.1.1.
mail.com    mail exchanger = 20 2.2.2.2.

Работает!!!

NS

Когда вам надо сообщить, что за конкретное доменное имя отвечает другой сервер, вы должны использовать запись типа NS.

/ip dns static> 
add type=NS ns=1.1.1.1 name=mail.com 

Проверка.

[email protected] ~ % nslookup -type=ns mail.com 172.20.17.100 
Server:     172.20.17.100
Address:    172.20.17.100#53

Non-authoritative answer:
mail.com    nameserver = 1.1.1.1.

Работает!!!

TXT

Вы можете сохранять произвольное значение, частно используется для того чтобы проходить валидация SPF для перечисления записей разрешённых хостов для отправки почты. Также при использовании DKIM подписи.

И ещё мы написали программку knockme которая также может использовать TXT для получения параметров knock-a.

/ip dns static> 
add type=TXT text="MikroTik.Me this Me" name=mail.com 

Проверка.

[email protected] ~ % nslookup -type=TXT  mail.com 172.20.17.100 
Server:     172.20.17.100
Address:    172.20.17.100#53

Non-authoritative answer:
mail.com    text = "MikroTik.Me this Me"

Работает!!!

SRV

Многие сервисы могут использовать для автоматического получения списка серверов например SIP, XMPP, LDAP и прочее.

/ip dns static> 
add type=SRV srv-port=5060 srv-target=sip.mikrotik.me srv-weight=50 srv-priority=10 name=mail.ru

Проверка.

[email protected] ~ % nslookup -type=SRV  mail.ru 172.20.17.100 
Server:     172.20.17.100
Address:    172.20.17.100#53

Non-authoritative answer:
mail.ru service = 10 50 5060 sip.mikrotik.me.

Работает!!!

Ну что же вроде всё работает.

И самая долгожданная штука это так называемый SPLIT DNS.

MikroTik Split DNS

Для начало, для чего он нужен.

Данный режим ещё называется forward zone

Представим себе ваш MikroTik выступает в роли маршрутизатора удалённого филиала. На нём поднимается VPN до центрального филиала прописываются маршруты и прочее. У вас доменная авторизация все компьютеры в домене, естественно хорошей практикой на компьютерах прописать DNS сервера который обслуживают Active Directory службы. Но в таком случае если туннель по какой-то причине упадёт ваш филиал останется без интернета, а ведь интернета может не быть в центральном филиале. Да перестанут работать различные шары и прочее, конечно для этих целей существует как минимум RODC, но навсегда есть возможность установить подобный сервис в филиале ввиду множества различных проблем.

Представим что наш dns suffix равен mycom.loc

Соответственно, а что если мы на компьютерах припишем DNS сервер адрес MikroTik, а на MikroTik укажем, что если запрос содержит mycom. loc то перенаправлять такие запросы на сервера DNS AD, а все остальные запросы перенаправлять допустим на 8.8.8.8.

Установим на MikroTik сервер DNS 8.8.8.8

/ip dns set servers=8.8.8.8

и настроим forwarding зоны

/ip dns static> add type=FWD forward-to=10.11.254.251 regexp=".*mycom\\.loc"

Обратите внимания что мы используем регулярное вырожение.

Давайте проверим. Я решил взять реальный прод, поэтому DNS суффикс скрыл, не переживайте всё по подобию.

И так в скриншотах, с замазанным суффиксом.

Проверка.

И немного логов.

Работает!!!

Настоятельно рекомендую пока данный функционал не использовать в проде, так как это всё ещё бета версия.

Рассказать друзьям

Чатик телеграм

Mikrotik- Типичные Проблемы И Их Решения


Mikrotik- Быстрый Старт


Все самое необходимое для настройки Mikrotik RouterOS Вы сможете найти в нашем пособии «Микротик. Базовая настройка». Настройка от А до Я с разбором функций и проблем, которые могут возникнут у простого пользователя в процессе внедрения Mikrotik под свои задачи. Mstream делает шаг помощи для своих клиентов. С нашим руководством настройка Mikrotik RouterOS не станет помехой для достижения поставленных целей. — mikrotik настройка mikrotik wiki русский wiki mikrotik ru mikrotik документация на русском —


Сюда вошли наиболее типичные  проблемы микротик и их решения.


Теперь они собраны в одном месте, а не разбросаны по крупицам по все му интернету.


Есть что добавить? — оставляйте Ваши комментарии.


 


Типичные проблемы и их решения


 


6.1. Как ходит трафик в Микротик?
6.2. FirewallFilter — блокируем и разрешаем.
6.3. NAT. Проброс портов. Добираемся из интернета к компам в локалке.
6.4. Маркировщик Mangle. Следим и помечаем трафик.
6.5. Address List. Для чего он?
6.6.  Нарезаем скорость. Simple Queues.  
6.7. Нарезаем скорость. Tree Queues. 
6.8. Включаем Графики. 
6.9. IPTV настройка. 
6.10. Резервирование 2+ каналов. 
6.11. Балансировка 2+ каналов. 
6.12. Запрет определенных сайтов по имени. 
6.13. Определяем у кого стоят роутеры по TTL. 
6.14. Блокируем порты спамеров. 
6.15. Настройка Static DNS. 
6.16. Кешируем с помощью Web-Proxy. 
6.17. Редирект на страницу-напоминалку. 
6.18. Шейпим торренты. 


6.1. Как ходит трафик в Микротик?


 


Это нужно знать наизусть. Иначе можно многое напутать… 


Представьте комп с двумя сетевыми картами. Будем называть его ШЛЮЗ.


В одну карту входит интернет. Со второй выходит к свичу.


А к свичу подключены другие компы.


За этими компами люди в интернете лазяют.


Так вот. Трафик идущий от людей в интернет и обратно — это для шлюза транзитный-проходящий трафик FORWARD


Это левая диаграмма. Как раз наш случай с Микротик.


 


А если на самом  шлюзе запускаются браузер, почта и пр.


То это уже Входящий и Исходящий трафик для шлюза. Не транзитный. INPUT и OUTPUT.


Т.к. конечная точка всех пакетов — это сам шлюз, а не компы за шлюзом.


Это левая и правая диаграмма, только без центрального блока FORWARD.


В Микротике правая практически никогда не задействована. 


Так что про INPUT-OUTPUT забудьте.


Только для блокировки входящих пакетов.


 


 



 


«И на кой черт мне это нужно?» Спросите Вы.


Все просто. Зайдите в IP — Firewall.


Там есть 3 вкладки Filter, NAT и Mangle. 


В   Filter и Mangle  есть все 3 цепочки — Prerouting, Forward и Postrouting. И еще 2 цепочки Input Output.


В NAT есть только цепочки DstNat и SrcNat.  


 


Filter — разрешает-запрещает пакеты, совпадающие по условию записи в Filter.


NAT — это чаще всего правило SrcNat-Masquerade — чтоб люди могли ходить в интернет.


И DstNat-DstNat — чтоб с интернета можно было добраться до компьютеров и роутеров в вашей сети.


Mangle — продвинутый маркировщик пакетов.


 


Предположим клиент вашей сети имеет адрес локальный 192.168.0.2


а IP Микротика 80.80.80.1 — это интернет адрес.


Когда клиент запрашивает веб-страницу, к нему сыплятся пакеты.


Но не на его адрес, а на адрес Микротика. Потому как адрес 192.168.0.2 локальный, и само собой напрямую на этот адрес прийти ничего не может.  


Т.е. Микротику приходит пакет с Dst.Address — 80.80.80.1


 


1. Mangle Prerouting, Nat Prerouting — правила в этих 2 цепочках Самые первые обрабатывают пакет. 


Никаких локальных адресов в пакете нет, только внешний адрес Микротика!  


 


2. Далее срабатывает Firewall — NAT.


Происходит подмена (из таблицы NAT) для входящих пакетов внешнего IP на локальный.


или DstNat (это для тех, кто пытается достучаться до локальных IP-адресов из интернета)


Т.е. теперь  Dst.Address пакета не 80.80.80.1, а уже локальный адрес клиента — 192.168.0.2.


 


3. Теперь срабатывают правила в цепочках Mangle Forward и Filter Forward. 


Тут уже можно фильтровать клиентов вашей сети.


 


4.Далее снова срабатывает NAT.


Здесь создаются записи в таблице NAT для исходящих пакетов. Т.е. срабатывает SRC-NAT.


По этим записям будет происходить обратная замена IP, когда придут ответные пакеты.  


И для исходящих пакетов происходит подмена локального IP  192.168.0.2  на IP Микротика 80.80.80.1.


 


5. И последний этап — Mangle Postrouting, Nat Postrouting. 


Никаких локальных адресов в пакете нет, только внешний адрес  Микротика!  


Далее все это направляется в шейпер. Queue Tree и Simple Queue. 


 


Для Транзитного траффика: сеть -> mangle PREROUTING -> nat PREROUTING -> mangle FORWARD -> filter FORWARD -> mangle POSTROUTING -> nat POSTROUTING -> сеть 


 


6.2. Firewall Filter — блокируем и разрешаем.


 


Здесь создаются блокирующие и разрешающие правила. 


Если записей никаких нет — то все разрешено. 


Порядок записей имеет значение.


Проверка правил происходит сверху вниз.


Если  пакет соответствует правилу, то дальнейшая проверка не происходит, если конечно не стоит галка PassTrugh 


Есть 2 варианта.


Мягкий — Добавлять только запрещающие правила. Все остальное разрешать.


Жесткий — поставить  запрещающее  правило на все. А сверху добавлять разрешающие. 


 


Блокируется  или входящие пакеты или исходящие.


Важно!


1. Никогда не пытайтесь одним правилом блокировать входящие и исходящие пакеты одновременно.


Это ошибка.


Просто создайте при необходимости  2 правила — на входящие и исходящие пакеты.


А лучше блокировать только исходящие пакеты еще на взлете. Входящих пакетов само собой уже не будет.


Да и Роутер разгрузится от лишнего входящего траффика.


 


2. Есть 2 типа пакетов — входящие и исходящие. 


Важно! Src.Address и  Dst.Address  в правилах меняются местами. В зависимости от направления движения пакета.


Входящие — это из интернета  к нам. 


Src. Address — это интернет-адрес отправителя (сервера в интернете). 


Dst.Address — это интернет-адрес Микротика (получателя). Если это правило в цепочке PreRouting.    или  


Dst.Address — это локальный адрес клиента (получателя). Если это правило в цепочке Forward или PostRouting.


 


Исходящие — это от  нас в интернет.


Src.Address  — это интернет-адрес отправителя (Микротика) . Если это правило в цепочке PostRouting.    или  


Src.Address — это локальный адрес клиента (отправителя). Если это правило в цепочке Forward или Prerouting.


Dst.Address — это интернет-адрес получателя (сервера в интернете). 


 


3. В правилах   всегда указывайте Out. Interface или  In. Interface.


Причем,


если указываете   In. Interface — LAN1, то это исходящий трафик. 


Значит Dst.Address — это должен быть адрес интернет-ресурса. А Src.Address — это адрес вашей локалки или Микротика  


 


если указываете   Out. Interface — LAN1, то это входящий трафик.


Значит Dst.Address — это должен быть адрес вашей локалки или Микротика.  А Src.Address — адрес интернет-ресурса.


Это очень важно! 


 


То же самое  (п. 1 и 2) касается и Mangle. 


Домашние роутеры Mikrotik:



RB750 Mikrotik


5x100xEthernet, CPU 400Мгц, 32MB RAM


RB750up Mikrotik


CPU 400Мгц,  Ethernet 5×100, USB port, RAM 32MB, POE


 


 


 


RB2011iLS-IN Mikrotik


5x1000xEthernet, 5x100xEthernet, SFP port, 600Мгц CPU, RAM 64MB


 


 


6. 3. NAT. Проброс портов.


 


/ip firewall nat add action=dst-nat chain=dstnat disabled=no dst-port=10010 protocol=tcp to-addresses=192.168.88.10 to-ports=80


В данном  случае на компе с адресом 192.168.88.10  запущен веб сервер.


Если внутри вашей сети набрать в браузере 192.168.88.10  — то откроется локальный сайт.


А если с другого компа в интернете набрать в браузере 80.80.80.1:10010 


80.80.80.1 — это Ваш внешний_IP_адрес_Микротика 


то Вы попадете на свой сайт, который на ходится на компе 192.168.88.10.


 


6.4. Маркировщик Mangle. Следим и помечаем трафик.


 


Это очень мощное средство. Позволяет маркировать пакеты по любым правилам.  


Подчиняется тем же правилам, что описаны в разделе 6.2. FireWall Filter.  


Но Мангле ничего не запрещает и не разрешает. Он просто помечает трафик.


Соединения, пакеты, маршруты и пр. 


Умеет также добалять в AddressList, Менять TTL пакетов, приоритет, порядок цепочек  и пр. пр. 


Это для дальнейшей обработки в файрволле или шейпере.  


 


6.5. Address List. Для чего он?


 


Это в основном для того, чтоб не указывать кучу однотипных правил для разных IP, а кинуть эти IP в один Address List. 


И затем создать только одно  правило на этот Address List.


Кроме того, правила Mangle — сами могут добавлять IP адреса в определенный Address List.


Например, добавить в Address List «ICQ» — те  IP, которые пользуются ICQ.  


Чрезвычайно удобная штука!


 


6.6. Нарезаем скорость. Simple Queues.


 


Простой шейпер.


Важно! Проверка правил шейпера происходит сверху вниз.  


Если какое-то правило шейпа сработало, то дальнейшая проверка уже не производится!


 


Добавляем IP или список IP, для которых в сумме можно выставить максимальну скорость Max Limit.


Отдельно входящую и исходящую скорость.  


Можно также выставить гарантированную скорость — Limit At.


Но с этим будьте осторожны! Если у Вас канал плавающий по скорости — лучше отключить.


 


Также можно включить дополнительные колонки, которые показывают входящую и исходящую скорости (Total Tx Bytes, Total Rx Bytes). 


(Правой кнопкой мыши по окну Queue. Затем Showcolumns и крутим ниже…  ) 


А также потребленный входящий и исходящий трафик. (Rx Avg. Rate и Tx Avg. Rate ) 


Начиная с момента последней перезагрузки роутера. 


 


Можно скорости писать в виде 500K, 2M, а также можно указать скорости Burst Limit (с Burst TreshHold, Burst Time)


Это взрывная кратковременная скорость.


Очень эффективно при низкоскоростных тарифах и если Вас качальщики задрали.


Веб сайты открываются тогда моментом на Burst скорости, а закачки идут на обычной скорости.


 


Если у Вас Dual Access, то можно для каждого клиента создать еще одну дополнительную запись с высокой  скоростью на локальные ресурсы. 


Только нужно дополнительно указать Dst. Address 10.0.0.0/8 — это Ваши локальные ресурсы. 


Эту запись нужно поставить выше основной записи клиента. 


 


Если Вы скорость на локальные ресурсы не хотите подрезать вообще, то  


Можно создать только одну общую запись  с   Dst. Address — 10.0.0.0/8, Target Address — пустой, скорость Tx, Rx указать по максимуму — например 1G


и поместить ее на самый верх. 


 


Важно! Очень советую в самый конец добавлять правило END


Все, что не сработало по любому из шейпером — будет шейпится в правиле END.  


На этом правиле будет учитываться, подрезаться  или блокироваться весь неучтенный трафик. 


 


Ну например Вы по невнимательности забыли кого-то добавить в шейпер.


И человек получит всю доступную скорость без любых огранечиний! Тем самым может положить канал!


 


Правило END для учета и подрезки неучтенного траффика:    


add interface=all max-limit=100k/100k name=END target-addresses=192.168.0.0/16 


Для учета без подрезки  —  ставим  max-limit=100M/100M


Для подрезки под 0 —   ставим  max-limit=10/10


192.168.0.0/16 — Весь диапазон, не попавший в верхние правила.   


Домашние wi-fi роутеры Mikrotik:



RB951-2n Mikrotik


2.4Ггц, 50mW , 5x100xEthernet, 400Мгц CPU, 32MB RAM


RB951Ui-2Hnd Mikrotik


2. 4Ггц, 1000mW, 5x100xEthernet, USB port, 600Мгц CPU, 128MB RAM


RB951G-2Hnd Mikrotik


2.4Ггц, 1000mW, 5x1000xEthernet, USB port, 600Мгц CPU, RAM 128MB


 


6.7. Нарезаем скорость. Tree Queues.


 


По функциональности он гораздо продвинутее. Этот шейпер срабатывает раньше Simple Queue. 


Эффективен особенно при методе  PCQ.


И большом количестве клиентов 100 и более. 


В нем входящая  и исходящая скорости нарезаются отдельными правилами.


Он работает только в связке с Мангле.


 


Итак.  6 шагов.


Придумаем  несколько  Адрес листов — например 1M и 5M.


Это тарифные планы.


 


1. В IP-Firewaal-Address List Добавляем IP юзеров — и вписываем им 1М или 5М.  


 


2. Далее в IP-Firewall-Mangle маркируем  Connection-ы.


Создаем правило forwad. Action —  mark connection (New Connection Mark называем к примеру Conn-5M или Conn-1M,  Passtrough — включаем), 


Ставим  Connection State — new,   Out. Interface — LAN1, а также наш Dst. Address List — 1M или 5M.   


 


3. Затем ниже создаем правило forward. Action — mark packet. (New Packet Mark называем к примеру p-5M или p-1M,  Passtrough — включаем)  


Connection Mark — ставим  Conn-5M или Conn-1M соответственно.


 


4. Далее в Queue Types создаем PCQ-правило к примеру PCQ-Download, в нем Dst. Address — включаем. 


 


5. Затем в Queue Tree — создаем родителя,  называем его Download, а  Parent — наш LAN1 интерфейс.


 


6. Создаем еще два правила  в Queue Tree  —


Называем правило к примеру Speed-5M, указываем родителя Download, Queue Type —  PCQ-Download,  Packet Marks — p-5M и указываем нашу скорость Max Limit — 5M 


(а второе правило то же самое, только имя правила Speed-1M,  Packet Marks — p-1M, а скорость Max Limit — 1M )


Все.


 


Эти два правила будут будут нарезать трафик всем клиентам.


Достаточно адрес IP клиента добавить в нужный Adrress List.


Все кто в Адрес лист 1M — получат скорость  1M 


Все кто в Адрес лист 5M — получат скорость  5M 


 


Чтобы изменить скорость всем 5M на 10M — достаточно только в QueueTree поменять одну строчку — Max Limit.


Т.е. скоростя каждому в отдельности не прописываются, а прописываются тарифные планы — т. е. Packet Mark 


 


На исходящий тарафик  нужно создать нового родителя с parent — наш WAN1.  Также создать в Queue Type —  PCQ-Upload,  в нем  Src. Address — включаем.


Все остальное аналогично. 


Графики для Queue Tree — недоступны. 


 


А как же смотреть, кто сколько скачал и на какой скорости и кто качает?


Все просто.


Добавляем в IP-Firewall-Mangle — на каждый IP — свою запись: Chain — forward.  Out. Interface — LAN1.   Dst. Address — наш IP. Action —Passtrouh.


Эти записи ставим ниже записей mark-connection и mark-packet.


Включаем дополнительную колонку — Rate. Это и есть текущая скорость.   (Правой кнопкой мыши по окну Mangle. Затем Showcolumns и крутим в самый низ, пока не найдем Rate )


Колонка Bytes — это потребленный трафик Download (Rx).  


 


6.8. Включаем Графики.


 


Графики траффика доступны  для всех интерфейсов, и Simple Queue. А также доступны графики загрузки процессора, памяти, флеш-памяти. За сутки, за неделю, за месяц, за год.


Графики включаются в Tools — Graphing.


Просто добавьте нужные позиции.


Посмотреть графики можно на Веб-странице Микротика.  


При перезагрузке графики сохраняются.


При перепрошивке графики обнуляются.


 


6.9. IPTV настройка.


 


Скачиваем версию пакетов  под ваш Микротик 


Вместо 5.16 ставим — вашу версию Router OS.


Важно! Версия пакета должна совпадать с версией вашей Router OS!


http://download2.mikrotik.com/all_packages-mipsbe-5.16.zip


Распаковываем. Перетаскиваем multicast. ..npk на WinBox.


Перезагружаемся.


Далее идем в System-Packages. Там должен быть multicast пакет.


Идем в Route — там должен быть IGMP Proxy.


 


1-2.  Route — IGMP Proxy — 2 записи.

 3. IP-Route  — добавляем маршрут на локалку

 4. IP-Firewall-Filter  — разрешающее правило на локалку. Или пока все отключить.


 5.  IP-Firewal-NAT — Out Interface пустой

 6. WiFi — WMM support включить 


 


 


6.10. Резервирование 2 и более каналов.


 


 


По умолчанию пакеты идут через WAN1. 


Если WAN1 отвалится — все пакеты пойдут на WAN2.  


/ip route

add check-gateway=arp dst-address=0.0.0.0/0 gateway=80.80.80.1 routing-mark=r1 distance=1

add check-gateway=arp dst-address=0.0.0.0/0 gateway=90.90.90.1 routing-mark=r2  distance=2 


В NAT — Out. Inteface — пустой.


В IP — DHCP Client — Add Default Route — можно отключить  


 


6.11. Балансировка 2+ каналов.


 


Балансировка через маршруты. Соединения вперемешку будут идти через WAN1 или  WAN2


 


Метод хорошо работает при каналах приблизительно равных по скорости.


Разница по скорости каналов не должна отличаться более чем в  2 раза.  


 В Мангле — эти  правила поднимите наверх.


/ip firewall mangle

add act=mark-connection ch=prerouting connection-state=new new-connection-mark=c1 nth=2,1 passthrough=yes

add act=mark-connection ch=prerouting connection-state=new new-connection-mark=c2 nth=2,2 passthrough=yes


add act=mark-routing ch=prerouting connection-mark=c1 new-routing-mark=r1 passthrough=yes

add act=mark-routing ch=prerouting connection-mark=c2 new-routing-mark=r2 passthrough=yes


 


/ip route

add check-gateway=arp dst-address=0. 0.0.0/0 gateway=80.80.80.1 routing-mark=r1 scope=255

add check-gateway=arp dst-address=0.0.0.0/0 gateway=90.90.90.1 routing-mark=r2 scope=255


Можно добавить еще маршрут без маркировки на всякий пожарный: 


add disabled=no dst-address=0.0.0.0/0 gateway=80.80.80.1 scope=255


 


В NAT — Out. Inteface — пустой. 


В IP — DHCP Client — Add Default Route — можно отключить  


 


Важно! При каналах сильно отличающихся по скорости он мало эффективен. 


В таком случае советую использовать резервирование каналов по п. 6.10.  


Слабый канал погоды все-равно не сделает. А скоростному мешать будет. 


 


Interface-Bonding  — Балансировка Round-Robin… 


 


Балансировка через скрипты… 


 


6.12. Запрет определенных сайтов по имени.


 


Открываем New Terminal. И вставляем наше правило. Не забудьте поднять его наверх.


Можете также вручную кнопкой [+] создать это правило.  


/ip firewall filter add act=drop chain=forward cont=»Host: mikrotik.org» prot=tcp src-address=192.168.0.2 in-int=LAN1


Все. сайт  mikrotik.org больше не откроется.


Тем самым Вы блокируете только исходящие запросы еще на взлете.  


Роутеру уже на нужно фильтровать входящие пакеты от этого сайта, 


потому как  Входящих пакетов само собой дальше уже не будет.


 


А исходящий трафик обычно в 10-20 раз меньше входящего.


Да и фильтруются только исходящие TCP запросы.


Кроме того сами  исходящие GET-запросы копеечные по траффику — до 200-500 байт.  Они помещаются в один пакет.


Т.к. что нагрузка на правило content — мизерная. 


 


Кроме того не будут блокироваться сайты, содержащие строчку   Host: mikrotik. org


и будут проходить get-запросы содержащие строчку  mikrotik.org


Что есть очень хорошо. 


 


src-address —  ставим IP компьютера-жертвы. 


content=»Host: mikrotik.org» — блокируемый сайт   


Если нужно блокировать доступ к сайту для всех компов, убираем эту строчку  src-address.


Если нужно блокировать только определенным компьютерам — то создайте во вкладке address-list, записи с IP блокируемых компьютеров. И назовите эти записи к примеру  block-website. 


А вот Этот адрес-лист  укажите уже в записи Src.Address List.   Src-address — удалите  


 


6.13. Определяем у кого стоят роутеры по TTL.


 


Все IP адреса, которы сидят за роутерами, попадут в Address-List Router


Как это применить — есть куча вариантов.


/ip fi ma 

add ac=add-src-to-address-list ch=prerouting in-i=LAN1  ttl=equal:63   address-list=Router

add ac=add-src-to-address-list ch=prerouting in-i=LAN1 ttl=equal:127  address-list=Router


 


И наоборот, можно спрятать вашу сеть от фильтра TTL провайдера. 


/ip firewall mangle add action=change-ttl chain=prerouting new-ttl=increment:1 passthrough=yes 


Это правило поднимите на самый верх. 


 


6.14.Блокируем порты спамеров.


 


1. Блокируем  порты спамеров и зараженных троянами-вирусами компов. 


/ ip firewall filter
add chain=forward prot=tcp dst-port=25 src-address-list=spammer act=drop


 


2. Добавляем в  address-list=spammer  наших спамеров на 30 дней :


/ ip firewall filter
add chain=forward prot=tcp dst-port=25 connection-limit=30,32 limit=50,5 src-address-list=!spammer action=add-src-to-address-listaddress-list=spammer address-list-timeout=30d


 


При большом количестве соединиений на 25 порт — IP юзера заносится в   address-list=spammer


А Этот  address-list=spammer — блокируется файрволлом.


 


Вы ж не хотите, что б Ваш провайдер Вам позакрывал порты? Или хотите? 


 


 


6.15. Настройка Static DNS.


 


Static DNS 
нужен чтобы к любому компу в сети обращаться не по IP адресу, а по придуманному имени. Что очень удобно.


IP — DNS — Static DNS — [+] Добавляем пару к примеру  IP-адрес — и DNS-имя.  192.168.0.1 — myrouter.net


Таперь на наш роутер можно заходить по myrouter.net


 


6.16.Кешируем с помощью Web-Proxy.


 


Кеширование используется для:


1. Ускорения интернет. Особенно Эффективно при медленном интернете.


Часто запрашиваемые файлы хранятся на флеш-памяти или винте. 


При повторном запросе — эти файлы не закачиваются с интернета, а берутся из кеша Микротика


2. Для экономии траффика. Хорошо при платном траффике.


3. Для котроля — кому какие сайты разрешать и пр.


Весь трафик проходит через прокси микротика.


На прокси ставиться порт 8080.


И затем включается прозрачный прокси. 


 


6.17. Редирект на страницу-напоминалку.


 


Очень эффективно не просто отключать пользователей, а напоминать им — почему они отключены! 


К примеру у Вас есть комп в сети 192.168.0.10.


Там находится Веб-сервер и страница-напоминалка-пополнялка-личный кабинет. 


Она доступна по адресу 192.168.0.10


Итак 4 шага. 


 


1.Сначала добавляем в  IP-Firewall-Address List —   IP всех юзеров с записью ALLOW .


 


2. /ip firewall nat

add act=dst-nat ch=dstnat dst-port=80 in-int=LAN1 protocol=tcp src-address-list=!ALLOW   to-addr=192. 168.0.10  to-ports=80


Это правило кинуть выше правила srcnat! 


Все. редирект работает. 


 


3. Но еще очень желательно 2 правила в IP — Firewall — Filter


/ip firewall filter

add act=accept ch=forward   out-int=!LAN1  dst-address=192.168.0.10

add act=drop ch=forward out-int=!LAN1 src-address-list=!ALLOW 


Эти правила кинуть вниз. 


Это для полной блокировки любой активности (а не только ВЕБ-серфиннг) юзеров, которые не в ALLOW. 


 


Затем юзеров — которых нужно перенаправить — просто отключаем крестом в Address List,  вручную или скриптом при отрицательном баллансе из биллинга.


Один клик и готово. 


 


Теперь, когда юзер наберет anysite.com — он автоматом попадет на Вашу странцу.


Но когда  он наберет —  anysite.com/anypage. php — он увидит ошибку, а не Вашу страницу!


 


Поэтому: 


 


4. на вебсервере в корне страницы-напоминалки добавляем файл .htaccess с редиректом :


RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule .* /index.html [L,QSA,NC,R=302]


 


где — /index.html — это Ваша страница напоминалка. 


 


Или вариант №2 — сделать страницу 404.php и включить ее в .htaccess.


А в 404.php сделать include вашей страницы напоминалки.


Или просто скопировать ее содержимое. 


 


Все.  


Теперь куда бы пользователь не зашел — он всегда увидит Вашу страницу. 


 


Вот так все просто. 


 


6.18. Шейпим торренты.


 


Торренты задрали? Тогда Вам сюда. Блокировка torrent на mikrotik.


Данный метод режет все торренты. И шифрованные в том числе. И он нересурсоемкий для Микротика.


Хотя его можно еще ускорить. Знаю как. Но не скажу


p2p=all-p2p   — работает только для редких нешифрованных торрент-клиентов.


Маркируем входящие торрент-пакеты по размерам, портам и протоколам: 


/ip firewall mangle 

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent p2p=all-p2p passthrough=no

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=576 

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1240

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1330

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1400

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=tcp  src-port=1024-65535 packet-size=1460



add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=398 

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=748 

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1430

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1448

add act=mark-packet ch=prerouting in-i=WAN1 new-packet-mark=Torrent passthrough=no protocol=udp src-port=1024-65535 packet-size=1466


 


Если нужна обработка нижележащих цепочек — Укажите всюду passthrough=yes


Далее можно добавить новое правило Torrent-5M в раздел Queue Tree в родителя Download. Указав Packet Marks —  Torrent. И желаемую скорость 5M.    


5M — это скорость для каждого или для всех в сумме, в зависимости от выбора Queue Type в PCQ Dst. Address Mask 32 или 24.


 


Или добавить одно правило на самый верх в Simple Queue.  Указав Packet Marks — Torrent. И желаемую Tx скорость 50M.


50M — это скорость общая на всех торрентов-клиентов. 


В Simple Queue можно каждому указать скорость на торрент в отдельности.


Т.е. для каждого IP создать дополнительную запись. 


Эта запись должна быть выше основной записи IP клиента.


 


Или уже решайте на свое усмотрение, что с этими маркированными пакетами делать.


Учитывайте, что сюда также могут иногда попасть пакеты из онлайн игр…


 


Других более эффективных методов маркировки торрентов нету.


 По крайней мере я не знаю таких…


 


-Левчук Владимир- 


Исправление ошибок базовой конфигурации mikrotik

В прошлой статье https://www.1spla.ru/blog/nastroyka-interneta-na-mikrotik я рассказал как настроить на нашем новом роутере интернет, в этой статье я покажу что нужно сделать чтобы исправить некоторые проблемы стандартной конфигурации.

Сразу приведу список проблем, а потом пошагово разберём то, как эти проблемы устранять.

  1. Пустой пароль администратора.
  2. Открытый в интернет DNS-сервер (ваш микротик могут использовать для усиления DDoS-атак).
  3. Открыты в интернет сервисы для управления микротиком.
  4. После обновления прошивки микротик автоматически не обновляет загрузчик.

Итак, пойдём по порядку.

Пароль администратора задать совсем просто, для этого нужно зайти в меню System, подменю Users.

В открывшемся окне кликнуть правой клавишей мыши по пользователю admin и выбрать кнопку Password.

В открывшемся окне 2 раза вписываем новый пароль и нажимаем «OK».

Теперь можно закрыть DNS сервер от злоумышленников.

Вариантов это сделать есть два:

  • Отключить удалённые запросы к DNS на микротик (IP-DNS, снять галку Allow Remote Requests), но делать мы так не будем, т.к. выдаём собственный DNS в локальную сеть.
  • Закрыть доступ к DNS извне нашей локальной сети.

Для этого нам потребуется зайти в IP – Firewall.

Нажимаем на + и создаём ещё одно правило, запрещающее входящий трафик (Chain: input) по протоколу UDP (Protocol: udp) на 53й порт (Dst. Port: 53) интерфейса провайдера (In. Interface: ether1).

На вкладке Action выбираем действие drop.

Нажимаем «ОК» и перетаскиваем его мышкой на 2ю позицию, т.к. правила firewall применяются по порядку, сверху вниз, пока пакет не попадёт под условия одного из правил.

Ещё одна неприятная вещь закрыта.

Теперь займёмся лишними сервисами. Идём в меню IP – Services, тут мы видим все доступные в данный момент сервисы и порты, на которых они работают.

Кроме winbox нам другие сервисы в принципе не нужны, можно выделить их и нажать красный крест в верхней части окна, что отключит их.

При желании, можно кликнуть на сервис winbox и выполнить тонкую настройку данного сервиса (изменить порт, задать список ip-адресов или подсетей из которых к нему можно подключаться).

Итак, последний пункт нашей сегодняшней статьи – обновление загрузчика нашего оборудования.

Идём в пункт System – Routerboard.

Тут мы видим модель нашей железки, её серийный номер и версии загрузчика (заводская, текущая и та, на которую можно обновиться).

К сожалению, у меня не было под рукой оборудования с не обновлённым загрузчиком, поэтому просто скажу, что нужно нажать на кнопку Upgrade в правой части окна и через некоторое время просто перезагрузить роутер.

На этом всё.

В следующей статье я расскажу, как включить и правильно настроить WiFi на нашем роутере.

Если вам нужна помощь в настройке оборудования или серверов, наши специалисты всегда готовы вам помочь.

Статью подготовил технический директор компании Первый Сервисный Провайдер Гавриш Артём.

Настройка статического IP-адреса WAN на MikroTik hAP ac2

В случае, если вам был предоставлен статический IP-адрес от вашего интернет-провайдера, вы можете обратиться к этому руководству за помощью по настройке статического IP-адреса на устройстве MikroTik hAP ac2 под управлением RouterOS. Для этого есть две части:

  1. Статический IP-адрес должен быть установлен на WAN / Internet-интерфейсе MikroTik

    .

  2. К устройству необходимо добавить маршрут по умолчанию. Таким образом, любые сети, к которым маршрутизатор не знает, как добраться, он будет передавать этот трафик на следующий маршрутизатор (ISP).

Добавление статического IP-адреса в интерфейс WAN

  1. Чтобы добавить свой статический IP-адрес к интерфейсу, перейдите к IP> Адреса слева.

  2. Нажмите Добавить новый

  3. Убедитесь, что установлен флажок Включено .

  4. В поле адреса введите свой статический IP-адрес вместе с маской подсети. Обратите внимание, что это должно быть в нотации CIDR.На скриншоте ниже наш статический IP-адрес — 172.16.1.200, а наш сетевой блок — / 20. Это эквивалент маски подсети 255.255.240.0. Ваш интернет-провайдер предоставит вам эту информацию.

  5. В качестве интерфейса выберите ether1. Это интерфейс со стороны Интернета / WAN для MikroTik hAP ac2.
  6. Щелкните Применить , а затем щелкните ОК. Опция Сеть должна быть заполнена автоматически.

Создание маршрута по умолчанию

  1. Чтобы создать маршрут по умолчанию для трафика, перейдите к IP > Маршруты

  2. Для Dst. Адрес введите в следующем формате: 0.0.0.0/0

  3. IP-адрес шлюза будет предоставлен вам вашим интернет-провайдером. В этом примере адрес нашего шлюза 172.16.1.1. Введите здесь только IP-адрес шлюза. Маска подсети / блок IP не требуется.После нажатия Применить> ОК , доступный через определенный интерфейс должен автоматически заполниться.

  4. После добавления маршрута по умолчанию, если вы вернетесь на страницу маршрутов, вы увидите что-то похожее на снимок экрана ниже.

Заключительные шаги

Нам нужно сделать еще пару шагов, чтобы завершить настройку. Нам нужно отключить механизм DHCP-клиента, чтобы маршрутизатор не пытался получить IP-адрес через DHCP на WAN-интерфейсе, и нам также необходимо убедиться, что DNS-серверы установлены внутри DHCP-сервера.

Отключение DHCP-клиента

  1. Перейдите к IP> DHCP-клиент

  2. Рядом с интерфейсом ether1 щелкните значок D , чтобы отключить его.

Настройка DNS

  1. Перейдите к IP> DHCP-сервер

  2. Выберите вкладку Сети

  3. Дважды щелкните сетевой адрес, чтобы внести изменения.

  4. Установите DNS-сервер на 8.8.8.8

  5. Щелкните стрелку вниз рядом с DNS-серверами , чтобы добавить вторичный сервер

  6. Ввод 8.8.4.4

  7. Нажмите Применить> ОК

Как настроить кеш DNS в Mikrotik — Mikrotik

Кэш DNS используется для минимизации запросов DNS (разрешение доменного имени) к внешнему серверу DNS, а также для минимизации времени разрешения DNS.

Mikrotik Router с включенной функцией DNS можно настроить в качестве DNS-сервера для любого DNS-совместимого клиента.

Более того, его можно указать в качестве основного DNS-сервера в настройках его dhcp-сервера. когда разрешены удаленные запросы, маршрутизатор отвечает на запросы TCP и UDP DNS через порт 53.

DNS Cache

DNS-объект, используемый для предоставления DNS для самого маршрутизатора, а также для клиентов, к которым подключаются. Когда заданы как статические, так и динамические серверы, более предпочтительны записи статических серверов, однако это не означает, что статический сервер будет использоваться всегда.

Примечание: , если используется allow-remote-requests , убедитесь, что вы ограничили доступ к своему серверу по протоколу TPC и UDP.

пример: установить 192.168.192.5 в качестве основного DNS-сервера и разрешить использование маршрутизатора в качестве DNS-сервера

 [admin @ MK] ip dns> set servers = 192.168.192.5 allow-remote-requests = yes
[admin @ MK] ip dns> pr
                Серверы: 192.168.192.5
  разрешить удаленные запросы: да
             размер кеш-памяти: 2048 КБ
          cache-max-ttl: 1 Вт
             cache-used: 7KiB 

Cache Monitoring

Cache Monitoring предоставляет список со всеми адресами (тип DNS типа «A»), хранящимися на сервере

 [admin @ MK] ip dns cache> pr

 

Для всех записей DNS

 [admin @ MK] ip dns cache all> pr 

Статические записи DNS

 добавить
[admin @ MK] ip dns static> добавить имя = аскитмен.com адрес = 192.168.0.5 тип = A

отображать
[admin @ MK] ip dns static> pr 
Свойство Описание
адрес (IP-адрес) IP-адрес для разрешения доменного имени с
имя (текст) DNS-имя, которое будет преобразовано в данный IP-адрес
регулярное выражение (текст) DNS-регулярное выражение
ttl (время) время жизни записи DNS
тип (время) Тип записи DNS, доступные значения: A, AAAA, CNAME, FWD, FWD, MX, NS, NXDOMAIN, SRV, TXT

*** Обратный поиск в DNS (адрес к имени) записей регулярного выражения невозможен.однако вы можете добавить дополнительную обычную запись с тем же адресом PP и указать для нее какое-то имя.

Точка (.) в регулярных выражениях — это любой символ, поэтому выражение должно быть экранировано должным образом. Например, если вам нужно сопоставить что-либо в домене askitmen.com, но не все домены, которые заканчиваются на askitmen.com, например speedtest.askitmen.com, используйте regexp = ”. * \\. Askitmen \\. Com \ $” .

Сопоставление регулярных выражений происходит значительно медленнее, чем обычные записи, поэтому рекомендуется минимизировать количество правил регулярных выражений и оптимизировать сами выражения.

 [admin @ MK] ip dns static> add name = speedtest.askitmen.com address = 192.168.192.5 type = A
[admin @ MK] ip dns static> pr
Флаги: D - динамический, X - отключен, R - регулярное выражение.
# ИМЯ АДРЕС TTL
0 speedtest.askitmen.com 192.168.192.5 1d 

Также можно перенаправить определенные запросы DNS на другой сервер, используя тип FWD.

 [admin @ MK] ip dns static> add regexp = ". * \\ askitmen \\. Com \ $" forward-to = 192.168.192.5 

Вот так:

Нравится Загрузка…

Сопутствующие

Не используйте сценарии аренды DHCP RouterOS для управления DNS

Сервер RouterOS DHCP (MRDS) от MikroTik изначально не поддерживает регистрацию имен хостов из аренды DHCP на своем сервере DNS . Вместо этого он поддерживает выполнение «сценария аренды DHCP» при выдаче, выпуске или истечении срока аренды. Вы можете использовать сценарий аренды для управления записями DNS для аренды DHCP. Однако это не лучшее решение для управления статической регистрацией DNS для хостов вашей сети.

Скрипты аренды

DHCP могут показаться идеальным решением, но реализация MikroTik в MRDS имеет некоторые серьезные ограничения. Сценарий аренды выполняется только при выдаче, освобождении или истечении срока аренды нового DHCP. В идеальном мире этого должно быть достаточно.

К сожалению, сеть беспорядочная, и DHCP-клиенты могут вести себя непредсказуемо. Ваш телефон или ноутбук может продлить истекшую аренду DHCP, когда он выходит из спящего режима, вместо того, чтобы запрашивать новую аренду. То же самое может произойти после того, как устройство изменит свой Wi-Fi MAC -адрес (что некоторые делают периодически в качестве меры предосторожности.) Поскольку сценарий аренды не выполняется для продления, у вас не будет записи DNS для хоста, если срок аренды уже истек. Результат — ненадежная служба DNS.

Сервер dnsmasq с открытым исходным кодом имеет аналогичную функцию сценария аренды DHCP. У него есть дополнительный флаг --script-on-Renewal , который позволяет ему лучше справляться с такими ситуациями. MikroTik не добавил подобную опцию в MRDS. Вы не можете полагаться на сценарий аренды DHCP для обеспечения надежного сопоставления DHCP и DNS в RouterOS.

Вместо сценария аренды DHCP необходимо использовать системный сценарий, выполняемый по расписанию. Хосты не сразу станут доступны через DNS, но, по крайней мере, услуга будет надежной. Если вы запускаете скрипт раз в минуту, средняя задержка не будет больше 30 секунд.

Запланированный системный сценарий должен перебирать все ваши аренды DHCP, назначать или обновлять существующие записи DNS и удалять любые неиспользуемые записи DNS. Вы можете использовать мой сценарий DHCP to DNS в качестве примера.Установите его в System: Scripts и выполняйте по повторяющемуся расписанию через System: Scheduler. Скрипт не должен мешать другим статическим записям DNS, которые вы могли настроить.

Чтобы снизить потребление памяти, вы можете захотеть запускать сценарий пакетно по подсетям при работе с множеством аренды DHCP. Мой сценарий не работает с интернационализированными доменными именами (IDN) или другой нормализацией имен хостов. Вы не должны развертывать какие-либо сценарии, которые не нормализуют имена хостов, в среде, где устройство может попытаться зарегистрировать кучу эмодзи в качестве имени хоста, имена хостов могут конфликтовать или клиенты могут пытаться выполнить что-то более злонамеренное.

Источники
  • RouterOS, версия 6.48.1, , MikroTik
  • Страница руководства dnsmasq, , Саймон Келли
  • DHCP-сервер, версия 33755, , Документация вики, MikroTik

MikroTik DNS-клиент и конфигурация кэширующего DNS-сервера

Сервер доменных имен (DNS) является важной частью компьютерной сети.Сегодняшнее веб-общение невозможно представить без DNS. DNS — это протокол клиент-сервер, в котором DNS-клиент запрашивает разрешение доменного имени и ответ DNS-сервера на него. MikroTik Router имеет функции как DNS-клиента, так и DNS-сервера. DNS-клиент используется для преобразования имени домена в IP-адрес с DNS-сервера. С другой стороны, функция DNS-сервера обеспечивает разрешение доменных имен для подключенных к нему клиентов. В этой статье мы узнаем, как настроить MikroTik DNS для обеспечения разрешения доменных имен как для самого маршрутизатора, так и для подключенных к нему клиентов.

Сервер доменных имен (DNS) и принцип его работы

Связь между рабочей станцией (ПК) и сервером всегда осуществляется по IP-адресу. Но запомнить огромное количество публичных IP-адресов для человека практически невозможно. Чтобы решить эту проблему, в компьютерных сетях используется технология DNS. Технику DNS лучше всего сравнить с телефонной книгой, где пользователь находит телефонный номер, указанный под более легким для запоминания именем. Таким образом, DNS можно определить как преобразователь между именами, читаемыми человеком (такими как mikrotik.com) и связанные с ними IP-адреса (например, 159.148.147.196). DNS-сервер прослушивает порт 53 как для UDP, так и для TCP-соединения.

Как работает DNS
Когда пользователь вводит доменное имя (например, www.mikrottik.com) на панели навигации своего браузера, браузер сначала отправляет запрос на DNS-сервер, чтобы получить IP-адрес этого доменного имени. DNS-сервер отвечает связанным IP-адресом домена. Получив IP-адрес, браузер теперь может связываться с веб-сервером для получения запрошенной информации.

Теперь, если мы используем публичный DNS-сервер, каждый раз, когда пользователь запрашивает какой-либо домен; запрос проходит через ваше WAN-соединение, используя платную пропускную способность, а также вызывает задержку. С другой стороны, если мы используем функцию DNS в MikroTik Router, MikroTik будет кэшировать информацию DNS с корневого DNS-сервера и отвечать на DNS-запрос подключенным клиентам. Это быстрее и экономит платную пропускную способность.

Конфигурация кэширования DNS в MikroTik Router

Функция кэширования DNS MikroTik обеспечивает разрешение доменных имен для подключенных к нему клиентов.Но перед тем, как использовать кеширование DNS, мы должны настроить функцию DNS в MikroTik Router. Следующие шаги покажут, как настроить службу DNS в MikroTik Router.

  • В Winbox перейдите в пункт меню IP> DNS. Появится окно настроек DNS.
  • Введите IP-адрес DNS-сервера, предоставленный вашим интернет-провайдером (или используйте IP-адрес общедоступного DNS-сервера Google: 8.8.8.8 и .8.8.4.4) в поле ввода «Серверы».
  • Установите флажок Разрешить удаленные запросы. Это включит функцию кеширования DNS в MikroTik Router.
  • При желании вы можете изменить размер кэша, указав произвольный размер в поле ввода «Размер кэша». Размер кеша по умолчанию составляет 2048 КБ или 2 МБ.
  • Нажмите кнопку «Применить» и «ОК».

MikroTik DNS Settings

MikroTik Caching DNS теперь включен, и вы можете использовать любой свой MikroTik IP в качестве DNS IP для своего сетевого клиента. Если все в порядке, ваш клиент получит ответ от DNS-сервера кеша MikroTik. Чтобы проверить кеш DNS, перейдите в пункт меню IP> DNS и нажмите кнопку «Кэш». Вы найдете кешированное доменное имя в окне DNS Cache.При желании вы можете очистить кэшированный объект, нажав кнопку «Очистить кэш».

Помещение статической записи DNS в MikroTik Cache DNS

MikroTik cache DNS сохраняет запись DNS динамически всякий раз, когда он получает новый домен. Но иногда вам может потребоваться ввести статическую запись хоста, например локальных серверов или принтеров. MikroTik cache DNS может получать статическую запись хоста. Следующие шаги покажут, как разместить статическую запись хоста в MikroTik DNS Server.

  • В окне «Настройки DNS» нажмите кнопку «Статический».Появится статическое окно DNS.
  • Щелкните ЗНАК ПЛЮС (+). Появится окно New DNS Static Entry.
  • Введите имя вашего хоста (например, ftp) в поле ввода имени и введите IP-адрес хоста в поле ввода адреса.
  • Нажмите кнопку «Применить» и «ОК».

Точно так же вы можете разместить столько записей хоста, сколько захотите, выполнив описанные выше шаги.

Блокировка DNS-запроса из интерфейса WAN

Если вы превратите свой маршрутизатор MikroTik в DNS-сервер, весь ваш IP-адрес MikroTik можно будет использовать в качестве IP-адреса DNS-сервера, включая IP-адрес WAN, который является общедоступным IP-адресом, и здесь возникнет проблема.Если кто-то за пределами вашей локальной сети использует ваш WAN IP в качестве IP-адреса DNS, ваш MikroTik будет счастлив, обслуживая его / ее DNS-решение, используя вашу платную пропускную способность. Итак, вы должны остановить DNS-запрос из-за пределов вашей локальной сети. Для остановки DNS-запросов из-за пределов вашей локальной сети вы должны применить правила брандмауэра, которые будут отбрасывать все DNS-запросы, поступающие из вашего WAN-интерфейса. Следующие шаги покажут, как заблокировать DNS-запрос из интерфейса WAN.

  • Перейдите в меню IP> Брандмауэр и нажмите ЗНАК ПЛЮС (+).Появится окно нового правила брандмауэра.
  • На вкладке «Общие» выберите вход в раскрывающемся меню «Цепочка», затем выберите «udp» в раскрывающемся меню «Протокол» и введите 53 в Dst. В поле ввода порта выберите свой WAN-интерфейс (например, ether1) из In. Выпадающее меню интерфейса.
  • Щелкните вкладку «Действие» и выберите опцию «Перетащить» в раскрывающемся меню «Действие».
  • Нажмите кнопку «Применить» и «ОК».
  • Точно так же снова нажмите ЗНАК ПЛЮС (+) и выберите вход в раскрывающемся меню Цепочка, затем выберите tcp в раскрывающемся меню Протокол и введите 53 в Dst.Поле ввода порта, а затем выберите свой WAN-интерфейс из In. Выпадающее меню интерфейса.
  • Нажмите кнопку «Применить» и «ОК».

Блокировка DNS-запроса с помощью брандмауэра

Если у вас возникли какие-либо затруднения при правильном выполнении вышеуказанных шагов, посмотрите видео ниже о настройке кэширующего DNS-сервера MikroTik. Я надеюсь, что это уменьшит ваше замешательство.

MikroTik Cache DNS Configuration обсуждался в этой статье. Я надеюсь, что теперь вы сможете успешно настроить DNS кеш-памяти MikroTik.Однако, если вы столкнетесь с какой-либо путаницей, не стесняйтесь обсуждать в комментариях или свяжитесь со мной со страницы контактов. Я сделаю все возможное, чтобы остаться с тобой.

Скрипт MikroTik для автоматической записи DNS из аренды DHCP

Описание

В этой статье показан мой взгляд на сценарий аренды DHCP-сервера, который автоматически создает и удаляет статические записи DNS на основе создания и удаления аренды DHCP. Хотя куча таких скриптов уже доступна, я хотел объединить понравившиеся мне функции в один универсальный скрипт.

Обновления

  • 2020-07-23 Исправлено решение об использовании домена DNS и сделано в соответствии с разделом менее сложным. Спасибо Войтеку и Гэвину, которые указали на это.

Характеристики

  • Создает статические записи DNS в соответствии с назначенной арендой DHCP.
  • Удаляет статические записи DNS в соответствии с неназначенной арендой DHCP.
  • Удаляет все связанные статические записи DNS при создании новой записи DNS для предотвращения дублирования. Это можно сделать по IP или по имени хоста.
  • DNS-записи для имени хоста могут использовать дополнительное доменное имя или короткое имя хоста — или и то, и другое.
  • Имя хоста для записи DNS может быть установлено из:
    • Переменная, заданная из аренды ($ «lease-hostname») — быстрое решение, которое использует имя хоста, переданное от клиента
    • Имя хоста из аренды (атрибут host-name) — решение с немного большей загрузкой ЦП, которое ищет в аренде связанное имя хоста, но также более совместимо, если предыдущая опция недоступна.
    • Комментарий статической аренды (атрибут «комментарий») — безопасное решение, которое использует имя хоста из комментария к связанная статическая аренда DHCP
  • Поддерживает раздельное развертывание на нескольких экземплярах DHCP-сервера в одном устройстве MikroTik.

Скрипт

Чтобы использовать сценарий, просто скопируйте и вставьте его в поле сценария аренды DHCP-сервера (IP -> DHCP-сервер -> DHCP (вкладка) -> экземпляр DHCP-сервера -> Сценарий (вкладка) -> Сценарий аренды) или в редактор консоли, используя «/ Ip dhcp-server edit default lease-script» или другим способом:

  # При "1" удаляются все записи DNS с IP-адресом аренды DHCP.
: local dnsRemoveAllByIp "1"
# При "1" удаляются все записи DNS с именем хоста аренды DHCP
: local dnsRemoveAllByName "1"
# Когда "1" добавление и удаление записей DNS всегда выполняется также для имени хоста, отличного от FQDN
: local dnsAlwaysNonfqdn "1"
# DNS-домен, добавляемый после имени хоста DHCP-клиента
: local dnsDomain "динамический.example.local "
# DNS TTL для установки для записей DNS
: local dnsTtl "00:15:00"
# Источником имени хоста DHCP-клиента может быть «lease-hostname» или любой другой атрибут аренды, например «host-name» или «comment»
: local leaseClientHostnameSource "lease-hostname"

: local leaseComment "dhcp-lease-script_ $ leaseServerName_ $ leaseClientHostnameSource"
: local leaseClientHostname
: if ($ leaseClientHostnameSource = "lease-hostname") do = {
  : установить leaseClientHostname $ "lease-hostname"
} else = {
  : установить leaseClientHostname ([: выбрать \
    [/ ip dhcp-server lease print as-value, где server = "$ leaseServerName" address = "$ leaseActIP" mac-address = "$ leaseActMAC"] \
    0] -> "$ leaseClientHostnameSource")
}
: local leaseClientHostnames "$ leaseClientHostname"
: if ([: len [$ dnsDomain]]> 0) do = {
  : if ($ dnsAlwaysNonfqdn = "1") do = {
    : set leaseClientHostnames "$ leaseClientHostname.$ dnsDomain, $ leaseClientHostname "
  } else = {
    : set leaseClientHostnames "$ leaseClientHostname. $ dnsDomain"
  }
}
: if ($ dnsRemoveAllByIp = "1") do = {
  / ip dns static remove [/ ip dns static find comment = "$ leaseComment" and address = "$ leaseActIP"]
}
: foreach h in = [: toarray value = "$ leaseClientHostnames"] do = {
  : if ($ dnsRemoveAllByName = "1") do = {
    / ip dns static remove [/ ip dns static find comment = "$ leaseComment" and name = "$ h"]
  }
  / ip dns static remove [/ ip dns static find comment = "$ leaseComment" and address = "$ leaseActIP" and name = "$ h"]
  : if ($ leaseBound = "1") do = {
    : задержка 1
    / ip dns static add comment = "$ leaseComment" address = "$ leaseActIP" name = "$ h" ttl = "$ dnsTtl"
  }
}  

Прочие сценарии

Как уже упоминалось, существуют также другие сценарии с аналогичной функциональностью — каждый с немного другой реализацией.Возможно, какой-нибудь другой сценарий лучше подойдет вам, если этот не подходит, поэтому вот некоторые из них, на которые я наткнулся:

tolaris.com · Синхронизация DHCP и DNS на маршрутизаторах Mikrotik

Одним из ограничений реализаций DNS и DHCP Mikrotik является то, что вы не можете легко синхронизировать имена хостов из запросов DHCP в DNS. Это стандартная функция многих маршрутизаторов. На маршрутизаторах OpenWRT (которые используют dnsmasq), если ПК с именем «pc1» запрашивает IP-адрес, любой другой ПК может затем «ping pc1».К счастью, мы можем написать сценарий этого поведения на Mikrotik.

Несколько пользователей Mikrotik написали для этого сценарии. Однако всем не хватало того, что мне было нужно:

  1. Работа только на одном сервере DHCP, только в одной зоне (суффикс домена). У меня есть маршрутизаторы с несколькими интерфейсами и DHCP-серверами, каждый из которых должен быть синхронизирован только с одной зоной.
  2. Избегайте работы со статическими записями DNS, созданными вручную. Все найденные мной скрипты потенциально могут удалять созданные вами статические записи.
  3. Назовите свои переменные, используя правильный жаргон для задействованных протоколов, например «записи» DNS и «аренда» DHCP. В этом нет необходимости, но это, безусловно, упрощает понимание сценария.

Скрипт

Вот мой сценарий для синхронизации DHCP и DNS на маршрутизаторах Mikrotik.

# Создает статические DNS-входы для DHCP-клиентов на указанном DHCP-сервере.
# К именам хостов, переданным в DHCP, добавляется зона.

# Установите первые две переменные в соответствии с вашей установкой.: локальный dhcpserver «dhcp1»
: локальная зона «home.example.com»

# Установите TTL на частоту планировщика для этого скрипта.
: local ttl «00:05:00»

# Удалить старые статические записи DNS, соответствующие зоне и TTL.
/ ip dns static
: foreach dnsrecord in = [найти где имя ~ («. * \\.». $ zone)] do = {
: local fqdn [получить имя $ dnsrecord]
: local hostname [: pick $ fqdn 0 ([: len $ fqdn] — ([: len $ zone] + 1))]
: local recordttl [получить $ dnsrecord ttl]
: if ($ recordttl! = $ ttl) do = {
: log debug («Игнорирование записи DNS $ fqdn с TTL $ recordttl»)
} else = {
/ ip аренда dhcp-сервера
: local dhcplease [найдите, где host-name = $ hostname and server = «$ dhcpserver»]
: if ([: len $ dhcplease]> 0) do = {
: log debug («Аренда DHCP существует для $ hostname в $ dhcpserver, сохраняя DNS-запись $ fqdn»)
} else = {
: информация журнала («Срок аренды DHCP истек для $ hostname, удаление записи DNS $ fqdn»)
/ ip dns static удалить $ dnsrecord
}
}
}

# Создавать или обновлять статические записи DNS из аренды DHCP-сервера./ ip аренда dhcp-сервера
: foreach dhcplease in = [найти где сервер ~ («$ dhcpserver»)] do = {
: локальное имя хоста [получить $ dhcplease имя хоста]
: if ([: len $ hostname]> 0) do = {
: local dhcpip [получить адрес $ dhcplease]
: local fqdn ($ hostname. «.». $ zone)
/ ip dns static
: local dnsrecord [найти где имя = $ fqdn]
: if ([: len $ dnsrecord]> 0) do = {
: local dnsip [получить адрес $ dnsrecord]
: if ($ dnsip = $ dhcpip) do = {
: log debug («DNS-запись для $ fqdn to $ dhcpip актуальна»)
} else = {
: информация журнала («Обновление записи DNS для $ fqdn до $ dhcpip»)
/ ip dns static удалить $ dnsrecord
/ ip dns static add name = $ fqdn address = $ dhcpip ttl = $ ttl
}
} else = {
: log info («Создание записи DNS для $ fqdn в $ dhcpip»)
/ ip dns static add name = $ fqdn address = $ dhcpip ttl = $ ttl
}
}
}

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

36

37

38

39

40

41

42

43

44

45

46

49

0002 47

00030002 47

0003

51

52

53

54

# Создает статические входы DNS для клиентов DHCP на указанном сервере DHCP.

# К именам хостов, переданным в DHCP, добавляется зона.

# Установите первые две переменные в соответствии с вашей установкой.

: локальный dhcpserver «dhcp1»

: локальная зона «home.example.com»

# Установите TTL на частоту планировщика для этого сценария.

: local ttl «00:05:00»

# Удалить старые статические записи DNS, соответствующие зоне и TTL.

/ ip dns static

: foreach dnsrecord in = [найти где имя ~ («.* \\. «. $ zone)] do = {

: local fqdn [получить имя $ dnsrecord]

: local hostname [: pick $ fqdn 0 ([: len $ fqdn] — ([: len $ zone] + 1))]

: local recordttl [get $ dnsrecord ttl]

: if ($ recordttl! = $ Ttl) do = {

: log debug («Игнорирование записи DNS $ fqdn с TTL $ recordttl»)

} else = {

/ ip dhcp-server lease

: local dhcplease [find where host-name = $ hostname and server = «$ dhcpserver»]

: if ([: len $ dhcplease]> 0) do = {

: отладка журнала («Аренда DHCP существует для $ hostname в $ dhcpserver, сохраняя DNS-запись $ fqdn»)

} else = {

: log info («Срок аренды DHCP истек для $ hostname, удаление записи DNS $ fqdn «)

/ ip dns static remove $ dnsrecord

}

}

}

# Создание или обновление статических записей DNS из аренды сервера DHCP.

/ ip dhcp-server lease

: foreach dhcplease in = [найти где сервер ~ («$ dhcpserver»)] do = {

: локальное имя хоста [получить $ dhcplease host-name]

: if ([: len $ hostname]> 0) do = {

: local dhcpip [получить адрес $ dhcplease]

: local fqdn ($ hostname. «.». $ zone)

/ ip dns static

: local dnsrecord [find где name = $ fqdn]

: if ([: len $ dnsrecord]> 0) do = {

: local dnsip [получить адрес $ dnsrecord]

: if ($ dnsip = $ dhcpip) do = {

: log debug («DNS-запись для $ fqdn to $ dhcpip актуальна»)

} else = {

: log info («Обновление DNS-записи для $ fqdn to $ dhcpip»)

/ ip dns static remove $ dnsrecord

/ ip dns static add name = $ fqdn address = $ dhcpip ttl = $ ttl

}

} else = {

: log info («Создание записи DNS для $ fqdn в $ dhcpip»)

/ ip dns static add name = $ fqdn address = $ dhcpip ttl = $ ttl

}

}

}

Установка

Чтобы использовать этот сценарий, установите его как новый сценарий в System -> Scripts.Измените первые две переменные, указав имя вашего DHCP-сервера и соответствующую зону DNS, которую вы хотите создать, и сохраните сценарий. Наконец, создайте задание в System -> Scheduler для запуска скрипта каждые пять минут.

Как это работает?

У скрипта есть два основных цикла. Первый цикл работает с записями DNS, очищая все ранее созданные записи с истекшим сроком действия. Для каждой записи DNS с TTL 5 минут он проверяет, существует ли соответствующая аренда DHCP. Если нет, он удаляет запись.

Реальную работу выполняет второй цикл. Он работает с арендой DHCP от названного DHCP-сервера. Для каждой аренды он проверяет наличие соответствующей записи DNS, соответствующей зоне. Если да, он проверяет, совпадает ли IP-адрес аренды DHCP с записью DNS, и обновляет ее. Если у него нет подходящей записи DNS, он создает новую.

Ко всем записям DNS, созданным этим сценарием, добавлена ​​зона DNS, а TTL — 5 минут. Чтобы гарантировать, что статическая запись DNS игнорируется этим сценарием, просто убедитесь, что у нее любой другой TTL или она не соответствует зоне.В противном случае он попытается с этим справиться.

Этот сценарий достаточно быстр на моих тестовых маршрутизаторах. Я попытался добавить дополнительную логику для очистки имен хостов от DHCP (которые могут иметь недопустимые символы на DHCP-сервере Mikrotik), но требуемые циклы заставили скрипт работать намного медленнее. Это ограничение языка сценариев Mikrotik, которое практически требует от вас написания неэффективных циклов и функций построения строк для чего-либо сложного.

Отладка

Чтобы увидеть скрипт в действии, включите логирование:

/ системный журнал
добавить темы = скрипт

/ системный журнал

добавить темы = скрипт

Обновления

Последняя версия всегда будет доступна на Github.

Cara Membuat Статический DNS-маршрутизатор Mikrotik

Setiap komputer yang terhubung ke internet berkomunikasi dengan menggunakan alamat IP. Untuk manusia, mendingat alamat IP янь berupa deretan angka adalah hal yang sulit. Манушиа лебих мудах менингат нама. Олег Карена diciptakanlan DNS (система доменных имен). DNS berfungsi menterjemahkan suatu nama ke alamat IP. Contoh: «google.com», menjadi «74.125.68.100». Маршрутизатор Mikrotik mempunyai fitur Статический DNS sehingga dapat dijadikan alternatif server DNS.Artikel ini adalah может быть член статического DNS на маршрутизаторе Mikrotik.

Sebelum lebih detil tentang carambuat static DNS, berikut adalah ilustrasi cara kerja DNS:

Кетеранган:

  1. Seorang pengguna komputermbuka website dengan alamat web https://www.testweb.com. Alamat web tsb kemudian dikirimkan ke сервер DNS
  2. Сервер DNS akan mengambil alamat IP di table DNS berdasarkan nama «testweb.com», kemudian mengirimkan kembali alamat web https: // 192.168.0.1 ке Pengguna компьютер.
  3. Pengguna komputer mengirimkan permintaan aplikasi web ke server 192.168.0.1
  4. Веб-сервер 192.168.0.1 mengirimkan «index.html» sebagai страница по умолчанию

Диаграмма Cara Membuat Статический DNS

Схема1

Кетеранган:

  • Компьютер «PCWEB» adalah server Web
  • Компьютер «PCDB» база данных адалах сервера
  • “R1” adalah router Mikrotik yang berfungsi sebagai server DNS
  • Компьютер «PC1» — это пользователь компьютера, собственная система Windows 7, DNS-имя — «R1»

Pengaturan Cara Membuat Статический DNS

Pengaturan Komputer Virtual

  1. Демонстрационные приложения для виртуальных технологий VirtualBox 6.0,14
  2. Terdapat lima komputer virtual

    “R1” и “R2” adalah router Mikrotik jenis Cloud Hosted Router (CHR). Cara instalasi CHR bisa dibaca disini.

    «PCWEB», «PCDB» и «PC1» представляют собой виртуальную компьютерную систему, работающую в операционной системе WIndows 7

  3. Pengaturan Network для сема компьютерных виртуальных адалах сама, yaitu menggunakan внутренней сети.

    Penjelasan detil tentang Internal Network ada disini.

Pengaturan Komputer «PCWEB»

Атур аламат ИП ке 10.2.3.1
Маска подсети Atur ke 255.255.255.0

Pengaturan Komputer «PCDB»

Atur alamat IP ke 10.2.3.2
Маска подсети Atur ke 255.255.255.0

Маршрутизатор Pengaturan Mikrotik «R1»

  1. Hubungkan Winbox ke Router
  2. Бука меню «IP | DNS »
  3. Центанг «Разрешить…», кемудян клик «Статический»
  4. Daftarkan komputer «PCWEB» dengan nama «pcweb.test» дан alamat IP 10.2.3.1
    PENTING: Nama komputer harus disertai nama domain.Pada contoh ini, nama domainnya adalah «.test»
  5. Дафтаркан компьютер «PCDB» на имя «pcdb.test» и на аламат IP 10.2.3.2
  6. Сетелах селесай, клик «ОК» атау «Применить»
  7. Берикут адалах хасильня

Pengaturan Komputer «PC1»

Atur alamat IP ke 10.2.3.1
Atur Маска подсети ke 255.255.255.0
DNS-сервер Atur ke 10.2.3.100

Pengujian Cara Membuat Статический DNS

Дари компьютер «PC1», берхасил пинг ке компьютер «PCWEB»

Дари компьютер «PC1», берхасил пинг ке компьютер «PCDB»

Menghapus Informasi DNS

Jika suatu komputer sudah tidak ada lagi di LAN, maka nama komputer tsb bisa dihapus dari DNS.

Contoh, компьютер «PCWEB» работает с DNS. Caranya, di jendela «DNS Static», pilih nama, kemudian klik tanda «-».

Кемудиан дари компьютер «PC1», удзи пинг ке компьютер «PCWEB», хасильня адалах берикут:

Hasil diatas adalah salah, seharusnya perintah PING tidak berhasil karena nama «pcweb.test» sudah dihapus dari DNS.

Penjelasannya adalah bahwa ketika pertama kali Windows содержит информацию DNS для DNS-сервера, поэтому Windows поддерживает кеш-память.Jika kemudian ада kebutuhan содержит информацию DNS lagi, maka Windows имеет кэш-память.

Solusinya adalah dengan menjalankan perintah «ipconfig / flushdns». Perintah ini akan menghapus semua informasi yang ada di cache, dan memaksa Windows untuk mengambil informasi DNS dari server DNS:

Ulangi dari komputer «PC1», ping ke «PCWEB», kali ini hasilnya adalah benar:

Pengaturan «Серверы»

Dalam предлагает настройку DNS, тердапат pengaturan «Серверы».Pengaturan ini digunakan ketika informasi DNS disimpan di server DNS terpisah. Диаграмма Sebagai contoh adalah berikut:

Схема2

Кетеранган

  • Компьютер «PC1», DNS-сервер с именем «R1», поисковая система «PC1», дополнительная информация DNS, maka dia akan mengambilnya dari «R1»
  • Tapi sebenarnya informasi DNS tidak disimpan di «R1», melainkan di «R2», sehingga ketika «R1» menerima permintaan informasi DNS, maka «R1» akan mengambilnya dari «R2»

Untuk memodifkasi dari Diagram1 ke Diagram2, maka berikut adalah langkah-langkahnya:

  1. Di router «R2», дафтаркан компьютер «PCWEB» и «PCDB»
  2. Маршрутизатор «R1», вся информация о DNS

    Масштаб «R1», «Серверы», а также IP-адрес «R2», yaitu 10.2.3.101

  3. Kemudian lakukan pengujian. Hasilnya adalah bahwa dari komputer «PC1» berhasil ping ke «PCWEB» дан «PCDB»

Pengaturan Opsi «Разрешить удаленный запрос»

Постоянная информация DNS, если сервер DNS-nya sendiri, atau bisa berasal dari komputer yang terhubung ke LAN. Функция «Разрешить удаленный запрос» позволяет использовать DNS-сервер, чтобы разрешить доступ к информации DNS и получить доступ к компьютеру в локальной сети.

Sebagai contoh, jika opsi «Allow Remote Request» tidak dicentang, maka perintah Ping dari komputer «PC1» ke komputer «PCWEB» akan gagal:

Kesimpulan Cara Membuat Статический DNS

  1. DNS (система доменных имен) mempermudah mengidentifkasi suatu komputer dengan menggunakan nama, bukan dengan menggunakan alamat IP.
  2. Dalam suatu LAN, tidak semua komputer harus dinamai, cukup komputer-komputer yang mempunya sizesi penting saja, contoh: адрес электронной почты сервера, база данных сервера, веб-сервер
  3. Подходит для статического DNS-маршрутизатора Mikrotik bisa dijadikan alternatif untuk server DNS

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2021 © Все права защищены. Карта сайта