Настройка сети

Сетевая база данных

Plan 9 использует единую базу данный для хранения всей информации о сети в системе. База данных загружает конфигурацию для машин, специально идентифицируемых при локальной установке: по умолчанию, — это конфигурация машин в конкретных подсетях, информация разрешения доменных имен и распределениях между сервисами имен TCP и номерами портов. Она состоит из набора текстовых файлов, которые составляют структуру записей.

По умолчанию, ядром базы данных является текстовый файл /lib/ndb/local. Наиболее значимой в файле является запись database=, определяющая список других включаемых файлов. Например,

Это и есть содержимое файла, сама база данных состоит из этих файлов.

Файл /lib/ndb/common содержит стандартные определения порта и тому подобные вещи; другие же файлы содержат фактическую конфигурацию системы.

Структура записей

Лексически, записью является строка без отступа, сопровождающаяся набором строк с отступами. Таким образом, строка без отступа, пустая строка, или линия комментариев (начинается с #) — заканчивают текущую запись.

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

Вот пример записи:

эта запись описывает систему под названием «lusitania» со специальным ethernet адресом, двумя ip адресами и пригодным доменным именем. Кортеж proto=il указывает на то, что система работает с протоколом IL, транспортным Internet протоколом Plan 9. По умолчанию, система работает только с TCP.

Другими полезными атрибутами являются:

Прохождение иерархии IP

Большая часть информации базы данных находится в записях других систем. Взамен, функция запроса базы данных ndbipinfo (см. ndb(2)) и простой интерфейс командной строки ndb/ipquery (см. ndb(8)) знакомы с иерархией IP сетей.

Когда существует какой-нибудь атрибут, скажем fs, который необходим системе, то программа запросов запускает поиск этой системной сетевой записи в базе данных. Если она нашла запись fs=, тогда ndbipinfo возвращает ее значение. В противном же случае, ndbipinfo отмечает IP адрес системы и проходит вниз по иерархии IP через базу данных, начиная с IP адреса сети по умолчанию.

В особенности, начиная с адреса IP маски по умолчанию, и заканчивая IP адресом сети по умолчанию. Полагается, что наш адрес — 10.247.62.235 является наивысшим. IP адрес шлюза по умолчанию — 255.0.0.0, значит адрес IP сети по умолчанию — 10.0.0.0.

Ndbipinfo выполняет поиск записи ip=10.0.0.0 и ipmask=255.0.0.0. Полагается, что мы должны найти следующие строки:

Эти строки сообщают, что сеть сформирована из малых подсетей с маской 255.255.255.0, так что мы просматриваем запись для IP сети 10.247.62.0 с подходящей маской. Полагается, что мы должны найти также:

Здесь отсутствует запись ipsubmask, мы останавливаем поиск, возвращая my-other-fs, так как запись fs= является самой малой найденной нами подсетью. Значение my-net важнее значения ten-net в записи, подобно тому как значение fs= в записи lusitania будет важнее их обоих. Если мы не найдем значение fs= в my-net, тогда нам придется использовать значение ten-net.

Программа ndb/ipquery (см. ndb(8)) хороша для тестирования того, правильно ли вы сконфигурировали сеть и иерархия IP вышла как этого следовало ожидать.

По умолчанию, IP подмаски определяются первым числом в адресе:

(Это Internet стандарт, не только в системе Plan 9.)

Конфигурация

Прочитав предыдущие секции документа, вы можете определить формат вашей сети. Пример конфигурации находится в файле /lib/ndb/local.complicated. Минимальная конфигурация представлена ниже:

В этом примере мы установим машину под названием «mauretania» первой машиной Plan 9 и сделаем ее сервером аутентификации по умолчанию для подсети 192.168.0.x. Наша машина получит IP адрес 192.168.0.2.

Если вы не собираетесь устанавливать соединение с Internet, тогда вы можете опустить пункты ipgw и dns.

Ipconfig

Выше мы определили две системы, одна называется — «mauretania», другая — «aquitania». Как Plan 9 определит, что наша машина — «mauretania»? Ответ — ip/ipconfig.

При загрузке машины Plan 9 запускается конфигурационный сценарий /rc/bin/termrc или /rc/bin/cpurc, в зависимости от того, терминал это или CPU сервер.

В /rc/bin/termrc вы должны увидеть строку:

Эта строка заставляет машину просмотреть DHCP сервер, чтобы обеспечить ее информацией о конфигурации. Вы можете установить Plan 9 CPU/аут сервер, чтобы запускать DHCP сервер. После того как вы сделаете это, сервер просмотрит свою сетевую базу данных и установит конфигурацию по умолчанию.

Тем не менее, там все еще не достаточно информации, чтобы присвоить специфической машине фиксированный IP адрес. Одним из путей как сделать это является связь специфической конфигурации со специфическим MAC-адресом сетевой адаптера (например, 11-А0-17-3D-BC-01). Этот адрес назначается производителем оборудования и является уникальным. Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байт: старшие 3 байта — идентификатор фирмы производителя, младшие 3 байта назначаются уникальным образом самим производителем. Вы можете увидеть MAC адрес вашей карты, дав следующую команду:

(Если же каталог /net/ether0 не существует, тогда Plan 9 не сможет найти ethernet карту в системе.) Теперь вы можете добавить MAC-адрес как атрибут в строку конфигурации ndb, примерно так:

где «abc12345def» — это и есть MAC-адрес. Конечно, если сервер DHCP отсутствует, то этот способ не сработает. При установке первой машины Plan 9 вы можете модифицировать строку ip/ipconfig, чтобы определить специфический мост, ip адрес и ip-маску.

Итак, сейчас вы владеете достаточным объемом информации, чтобы следовать инструкциям документа Настройка автономного CPU сервера, который поможет вам настроить систему таким образом, чтобы она могла работать как CPU сервер, аутентификационный сервер, DHCP сервер, и легковесный файловый сервер kfs. О файловом сервере читайте соответствующий документ: Установка файлового сервера Plan 9.

Диагностика и устранение проблем

Если ipconfig выводит сообщение ошибки такого вида

это означает, что ядро не может обнаружить вашу сетевую карту. Для платформы PC, убедитесь, что ваш plan9.ini(8) определяет соответствующий сетевой драйвер. Если и это не помогает, то есть вероятность, что сетевой драйвер просто не был скомпилирован в используемом вами ядре. За информацией по сборке нового ядра читайте документ Компиляция ядер.

Настройка Plan 9 машины как DNS сервера

Данные DNS также содержатся в файле /lib/ndb. Отредактируйте /lib/ndb/local с помощью ed, sam или acme, добавив следующие строки:

Copyright © 2003 Перевод Андрей С. Кухар. Последняя модификация 22.08.2003