Библиотека решающих устройств.

Когда мы говорим о " решающем устройстве ", то мы не подрузамеваем   никакого специального применения, поэтому достаточно  обратится  к   библиотеке  решающих устройств -  системе  функций,  которая  может  быть   найдена  в  стандарной библиотеке C. Центральные программы являются   gethostbyname(2) и gethostbyaddr(2),  которые  ищут  все  IP  адреса   принадлежащие  хосту,  и наоборот. Они могут быть сконфигурированы при   простом просмотре информации в хосте, при запросе ряда серверов, или при использовании баз данных хоста NIS(а) (Network Information Service).   Другое  применение,  подобно  smail,  может включать различные драйверы для    любого из вышеперечисленного, и нуждается в особой осторожности.

  
Файл конфигурации хоста.   

Центральный файл,  который  управляет  вашей  установкой  -   host.conf.  Он сообщает решающему устройству какой сервис использовать, и в   каком порядке.   
Опции в host.conf должны быть на отдельных строках. Области могут   быть отделены пустым пространством (spaces или tabs). Знак (#) вводит   строку, которая простирается вплоть до следующей строки.   
Доступны следующие опции:

  • Order:   Эта опция определяет порядок в котором  перебераются  все   доступные услуги. Valid опция -  связывает  запроса  сервера и   поиск  хостов  в /etc/hosts, и nis для  NIS  поисков.  Любая   или  все  из  них  могут  быть определены. Порядок, в которым   они появляются на строках определяет порядок в котором будут   перебираться определенные услуги.
  •  Multi:   Она может использоваться как опция. Эта опция  определяет,   разрешено ли хосту в /etc/hosts иметь несколько IP адресов,   которые обычно пазываются "multi - homed". Этот флаг не   действует на DNS или NIS запросы. 
  •  Nospoof: Как уже было объяснено в предыдущей главе, DNS позволяет Вам   найти имя хоста принадлежащего IP адресу, используя inaddr.arpa   область. Попытки серверов  поддержать  ложное  имя  хоста   называется   "spoofing".Чтобы обезопасить себя от этого,   решающее устройство может  быть сконфигурировано на   проверку,  является  ли  настоящий  IP  адрес фактически   связанным   с полученным именем хоста. Если нет, то этому имени   будет  отказано  и  будет возвращен код ошибки. Это поведение   зависит от того включен ли nospoof.
  •   Alert:   Эта  опция  может  использоваться  как  аргумент.  Если  эта   опция включена, то любые попытки spoof (см. выше)  будут   причинами того, чтобы  решающее устройство отправило бы   сообщение к syslog оборудованию.
  •   Trim:    Эта опция берет имя области как аргумент, которое  будет   удалено из имени хоста перед поиском. Это полезно для   информационных элементов, где Вы могли бы только желать точно   определить имя хоста с локальной областью. При поиски хоста с   именем  локальной  области,  будет  удалено имя  этой области,   таким образом легко осуществить поиск в /etc/hosts.   Опция Trim позволяет  рассматривать  Ваш хост локальным для нескольких   областей.

   Типовой файл для vlager описывается ниже:
# /etc/host.conf
# We have named running, but no NIS (yet)
order   bind hosts
# Allow multiple addrs
multi   on
# Guard against spoof attempts
nospoof on
# Trim local dooain"(not really necessary).
trim    vbrew.com.


Параметры среды окружения решающего устройства.

Установки из файла host.conf могут быть отменены, используя ряд   параметров среды кружения. Они следующие:   
RESOLV  HOST  CONF.  Он  определяет  файл,  который  будет  считан   вместо /etc/host.conf.
RESOLV SERV ORDER Отменяет order опцию, данную в host.conf.  Услуги,   данные как хосты, bind, и  nis,  отделенны  пробелом,  запятой,   двоеточием,  или точкой с запятой.
RESOLV SPOOF CHECK Определяет критерии, принимаемые  против   spoofing.  Эта установка полностью отключается опцией off. Значения   предупреждают  spoof проверку , но включают  и  выключают  logging,   соответсвенно.  Значение  * включает spoof проверку, но оставляет logging
как определено в host.conf.
RESOLV MULTI Эта среда окружения ( может быть вкл. или выкл.), может   быть  использована для отключения multi опции из tt host.conf.
RESOLV OVERRIDE TRIM DOMAINS Эта среда  окружения  определяет  список   trim области, который отключает те, что даны в host.conf.   
RESOLV ADD TRIM DOMAINS Эта среда окружения определяет список trim   области, который добавляется в host.conf.

Конфигурирование сервера поиска --- resolv.conf

При  конфигурировании  библиотеки  решающего  устройства,  для  того  чтобы  использовать  BIND  обслуживание  для  поиска   хостов,  вы  обязательно  должны сообщить, какое имя сервера вы   используете. Существует отдельный файл, предназначенный специально для   этого, называемый resolv.conf. Если  этот  файл  не  существует  или  пуст,   то решающее устройство примет имя сервера, определенного для вашего   локального хоста.Если Вы запускаете сервер на  Вашем локальном хосте, то Вы   должны  установить  это имя отдельно, как это сделать, будет объяснено   позже в следующем разделе.  Если в локальпой уети есть  возможность   использовать  существующее  имя сервера, то этому должно отдаваться   предпочтение.   Самая важная  опция  в  resolv.conf - nameserver,  которая   дает  IP  адрес  используемого сервера. Если Вы  определите  несколько   имен серверов используя nameserver опцию несколько раз, то они будут   проверяться в данном порядке. Поэтому Вы  должны  поместить  наиболее надежный  сервер первым. Постоянно, могут поддерживаться не более трех   серверов.   Если опция nameserver не дана, то решающее устройство попытается    соединиться с сервером на локальном хосте.

Две других опции, domain и search  имеют  дело  с  заданными  по   умолчанию областями, которые беруться из имени хоста, если BIND не может   решить это с первого запроса. Опция search определяет список  названий   областей, которые необходимо проверить. Пункты списка отделены пробелом или   табуляцией.

Если опция search не дана, то заданный по умолчанию список   поиска создается из локального имени области, используя само название   области непосредственно, плюс все родительские области вплоть до root.   Локальное название области может быть дано при использовании оператора   области; если ни  один из них  не  дан, то решающее устройство получит его   через getdomainname(2) системный вызов. 

Если это уж слишком для вас, рассмотрите пример resolv.conf   файла  для Virtual Brewery:
# /etc/resolv.conf
# Our domain
domain         vbrew.com
#
# We use vlager as central nameserver:
nameserver     191.72.1.1

При определении имени vale, решающее устройство искало бы его и   в случае неудачи, vale.vbrew.com, и vale.com.


Ошибкоустойчивость решающего устройства.

Если  Вы  запускаете LAN внутри большей сети, Вы непременно должны   использовать центральные сервера, если  они  доступны.  Преимущество  этого   состоит в том, что они  разработают  богатые  кэши,  так  как  все  запросы   направлены к ним. Эта схема имеет недостаток: когда сгорел базовый кабель в   нашем университете при пожаре,  невозможно  было  дальше  работать  на  LAN нашего отдела, потому что решающее устройство не могло достичь  какого-либо   из серверов. Не было login на X-terminals, не было печати на  принтерах, и   т.д.

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

Вы используете вашу собственную область.   В качестве альтернативы, Вы можете  сохранить  таблицу   сохраненных  хостов Вашей области или LAN в /etc/hosts. В /etc/host.conf Вы   можете  включить "order bind hosts" для того, чтобы решающее устройство вернулась бы к хост файлу, если центральный сервер ослабел или вышел из   строя.