RouterOS на офисном шлюзе, часть 4: DHCP и DNS

Описанная ранее схема «Счастье для всех» очень скоро перестанет нас удовлетворять, так как обязательно появятся новые требования, например:

  • количество компьютеров в офисе вырастет, и настраивать сеть на каждом из них станет утомительным занятием,
  • всему офису нужно будет закрыть выход на «нехорошие сайты» вообще, и на некоторые — в частности,
  • загрузка видео и музыки — удовольствие дорогое, а потому оно должно быть доступно только «избранным»,
  • компьютеру тов. Иванова нужно будет полностью закрыть доступ, а компьютеру тов. Петрова — закрыть только http,
  • офис будут посещать гости, которых нужно будет пустить в интернет, и при этом к ним не должны будут применяться описанные выше ограничения, однако для них нужно будет установить минимально-комфортную скорость канала,
  • когда-нибудь руководство потребует огласить имена героев-любителей «покачать» в рабочее время.

DHCP

Издержки, связанные с настройкой сети на рабочих местах, можно устранить с помощью встроенного в RouterOS сервера DHCP.

Настройка сервера DHCP проводится в три этапа. Сначала задаем пул IP-адресов, которые будут раздаваться клиентским компьютерам:

/ip pool add name="OfficePool" ranges="192.168.0.2-192.168.0.254"

Затем создаем экземпляр DHCP-сервера, который будет слушать указанный интерфейс (в нашем случае это «зеленый» ether4) и выдавать IP-адреса из ранее созданного пула:

/ip dhcp-server add name="OfficeDHCP" interface="ether4" address-pool="OfficePool" disabled="no"

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

/ip dhcp-server network add address="192.168.0.0/24" gateway="192.168.0.1" dns-server="192.168.0.1" domain="office"

Готово. Для проверки подключим клиентский компьютер к нашему маршрутизатору, и посмотрим реакцию DHCP-сервера:

/ip dhcp-server lease print
Flags: X - disabled, R - radius, D - dynamic, B - blocked
 #   ADDRESS       MAC-ADDRESS       HOST-NAME SERVER     RATE-LIMIT STATUS
 0 D 192.168.0.254 00:1B:38:4F:38:8C acer5720g OfficeDHCP            bound

и клиентского компьютера:

C:\ipconfig /all

Ethernet adapter Подключение по локальной сети:
   DNS-суффикс подключения . . . . . : office
   Описание. . . . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet
   Физический адрес. . . . . . . . . : 00-1B-38-4F-38-8C
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да
   IPv4-адрес. . . . . . . . . . . . : 192.168.0.254(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Аренда получена. . . . . . . . . . : 19 июня 2009 г. 6:39:49
   Срок аренды истекает. . . . . . . . . . : 22 июня 2009 г. 6:39:49
   Основной шлюз. . . . . . . . . : 192.168.0.1
   DNS-серверы. . . . . . . . . . . : 192.168.0.1
   NetBios через TCP/IP. . . . . . . . : Включен

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

C:\>ping intacta.ru
При проверке связи не удалось обнаружить узел intacta.ru. Проверьте имя узла и
повторите попытку.

Не работает! Впрочем, так и должно быть, ведь мы не настроили сервер DNS.

DNS

Зачем нам нужен свой DNS-сервер, если провайдерские DNS-серверы успешно справляются со своими задачами? Собственный DNS-сервер позволит, во-первых, организовать адресацию хостов нашей сети по человеко-удобным именам вместо IP-адресов, и, во-вторых, построить первый барьер на пути доступа к «нехорошим» сайтам.

Настройка DNS-сервера выполняется командой:

/ip dns set primary-dns="208.67.220.220" secondary-dns="194.85.61.20" allow-remote-requests="yes"

С этого момента наш маршрутизатор будет отвечать на DNS-запросы клиентов. Ответы он будет искать в собственной базе данных (/ip dns static), а не найдя их там, переадресует запрос первичному (primary-dns) или, при необходимости, вторичному (secondary-dns) DNS-серверу.

Пополнить собственную базу DNS-сервера можно командой:

/ip dns static add address="192.168.0.100" name="printer.office"

после чего можно будет обращаться к хосту по имени:

C:\>ping printer

Обмен пакетами с printer.office [192.168.0.100] с 32 байтами данных:
Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64
Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64
Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64

Если в команде /ip dns static add указать фиктивный IP-адрес:

/ip dns static add address="127.0.0.1" name="porno.com"

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

Начиная с версии 3.0rc7 RouterOS позволяет в качестве DNS-имени хоста использовать регулярные выражения в нотации POSIX basic. Это значит, что одной командой можно заблокировать сразу группу хостов. Так команда:

/ip dns static add address="127.0.0.1" name=".*porno.*"

заблокирует доступ к любому хосту, в имени которого в любом месте встречается слово porno.

По команде:

/ip dns static add address="127.0.0.1" name=".*\\.porno\\.com"

будет закрыт доступ ко всем хостам в домене porno.com.

А команда:

/ip dns static add address="127.0.0.1" name=".*porno\\.com"

прикроет доступ ко всем хостам, чье имя заканчивается сочетанием porno.com.

OpenDNS

Вы, наверное, обратили внимание на адрес 208.67.220.220 (первичный сервер DNS), который ранее не фигурировал в списке параметров подключения к интернету. Это адрес одного из двух DNS-серверов службы OpenDNS.

Служба OpenDNS после бесплатной регистрации и несложной настройки позволяет в задаче блокирования доступа к «нехорошим» сайтам задействовать ресурсы мирового сообщества, которое занимается категоризацией сайтов. На момент написания этой заметки доступно 54 категории, таких как «Порнография», «Социальные сети» и «Политика». При настройке OpenDNS можно выбрать категории, доступ к которым необходимо запретить.

К сожалению, иногда в работе OpenDNS случаются сбои. Например, этой зимой были проблемы с доступом к сайту mail.ru и к сайтам, которые хостятся в RU-Center. Для страховки от таких сбоев в качестве вторичного DNS-сервера необходимо использовать DNS-сервер провайдера.

2 Comments

  1. 78:

    Больше не будет статей по микротику?..

  2. Дмитрий:

    Пишите еще, очень полезные практичные знания, которые трудно найти.

Leave a Reply