Работа домена Centaurus с несколькими подсетями

Материал из ALT Linux Wiki

В случаях, когда контроллер домена Centaurus должен обслуживать клиентов в нескольких подсетях, необходимо обеспечить наличие сетевых интерфейсов контроллера в каждой из подсетей. В простейшем случае - вставить в сервер нужное количество сетевых карт. Дело в том, что контроллер домена (как и прочие ресурсы) опознаётся при помощи демона Avahi, использующего широковещательные запросы. Тогда, если:

- рабочая станция расположена в другой ip-подсети, даже при работоспособном шлюзе и наличии ping до контроллера;

- неработоспособен, отключен или не обслуживает подсеть демон Avahi на контроллере домена;

- неработоспособен или отключен Avahi на рабочей станции

хотя сеть исправна, рабочая станция "не видит" контроллера домена, не может выбрать домен для настройки авторизации через Alterator и не может авторизовать пользователя домена.

Если же контроллер имеет адрес в каждой из подсетей, и все они (это необходимо!) зарегистрированы в DNS, возникает другая неприятность: рабочие станции, получив список ip-адресов контроллера, начинают обращаться ко всем поочерёдно (load balancing). Если при обращении через чужую подсеть ответ не приходит, возникает таймаут или даже отказ авторизации. В системном журнале и на консоли F12 это явление можно наблюдать в виде сообщений "service ... timed out".

Данная особенность преодолевается, как минимум, двумя способами:

1. Если возможно, назначить сам контроллер домена маршрутизатором по умолчанию для всех обслуживаемых им подсетей. Для простейших систем с единственной подсетью это естественный вариант, кроме случаев с подключением к Интернет через аппаратный роутер (ADSL, домовая сеть) с NAT.

2. Назначить в параметрах зоны DHCP для каждой из подсетей статический маршрут к каждому из интерфейсов контроллера - на сам же контроллер. В файле dhcpd.conf достаточно добавить option static-routes в список параметров зоны.

Пример:

subnet 192.168.0.0 netmask 255.255.255.0 {
	next-server 192.168.0.200;
	filename "pxelinux.0";
	option root-path "/srv/public/netinst/current";
	option routers 192.168.0.1;
	option domain-name-servers 192.168.0.200;
	option domain-name "mydomain";
	option static-routes 192.168.1.200 192.168.0.200;
	default-lease-time 3600;
	max-lease-time 3600;
	range 192.168.0.100 192.168.0.199;
 }

Тестовая команда

$ ping ldap

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