Добавление компьютеров к сети
Категория: Сети TCP/IP | Автор: admin | 28-02-2010, 05:03 | Просмотров: 4473

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

Основные этапы таковы:

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

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

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

Стоит упомянуть такой факт: некоторые системы способны самостоятельно определить, подключены они к сети или нет. Процедура начальной загрузки в том и другом случаях может значительно различаться; машина, прекрасно работавшая в автономном режиме, может необъяснимо зависнуть во время начальной загрузки после подключения к ней сетевого кабеля, даже если никаких изменений в конфигурации сделано не было.

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

Ниже мы опишем процесс конфигурирования сети Ethernet; для других топологий процедура будет схожей.

 

Присваивание сетевых имен и IP-адресов

 

В распоряжении администраторов имеется множество методик, по которым определяется соответствие между именами компьютеров и IP-адресами в локальной сети: файл hosts, СУБД NIS и NIS+, система DNS или комбинация каких-либо из этих средств. Если используется несколько систем, необходимо продумать их совместную работу. Конечная система должна учитывать возможность наращивания сети, уметь работать в гетерогенной среде и позволять компьютеру загружаться даже в тех случаях, когда не все сервисы доступны.

Использование файла /etc/hosts — старейший и простейший способ преобразования имен в IP-адреса. Каждая строка файла начинается с IP-адреса и содержит различные символьные имена, под которыми известен данный адрес. Ниже показан пример содержимого файла /etc/hosts для узла lollipop:

127.0.0.1          localhost

192.108.21.48      lollipop.xor.com lollipop loghost

192.108.21.254     chimchim-gw.xor.com chimchim-gw

192.108.21.1       ns.xor.com ns

192.225.33.5       licenses.xor.com license-server

 

Чаше всего в первой записи файла определяется узел localhost. По слухам, в некоторых системах это является обязательным требованием (во FreeBSD, например).

Поскольку файл /etc/hosts содержит лишь локальные адреса привязки, большинство современных систем использует его для хранения адресов, требующихся при начальной загрузке. Остальные локальные и глобальные адреса проверяются в базе данных DNS. Иногда в файле /etc/hosts хранятся записи, о которых не следует знать другим компьютерам и которых нет в базе данных DNS.

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

Если файл /etc/hosts содержит адреса всех локальных узлов, он должен быть реплицирован на каждую машину, где требуется работать с символическими адресами компьютеров. Существуют различные методики хранения единой версии файла на центральном узле и его распространения на другие компьютеры организации (или совместного использования различными машинами); подробнее об этом говорится в главе 18. Но лучше все же управлять адресами посредством DNS. В главе 16 описана система DNS и пакет BIND — реализация DNS в UNIX.

Команда hostname назначает компьютеру сетевое имя. Она обычно запускается во время начальной загрузки из какого-нибудь стартового сценария, который запрашивает назначаемое имя из конфигурационного файла. Естественно, все поставщики систем называют этот файл по-разному. Большинство современных систем назначают компьютеру полностью определенное доменное имя (т.е. оно включает как имя узла, так и имя домена DNS, например anchor.cs.colorado.edu).

В небольшой организации вполне можно выделять IP-адреса и сетевые имена вручную. Если же в организации имеется много сетей и разнородных административных групп, лучше придерживаться принципа централизации. Наша университетская система addhost представляет собой набор распределенных средств, которые решают некоторые проблемы управления сетевым компьютерами. Другими решениями являются протоколы DHCP и LDAP (Lightweight Directory Access Protocol — упрощенный протокол доступа к каталогам). Система addhost довольно стара и "корява", но она все еще применяется в нескольких организациях. Если не найдете ничего лучшего, обратитесь по адресу ftp.xor.com.

 

Команда ifconfig: конфигурирование сетевых интерфейсов

 

Команда ifconfig используется для подключения и отключения сетевого интерфейса, задания его IP-адреса и маски подсети, а также других опции и параметров. Она обычно выполняется во время начальной загрузки (аргументы командной строки берутся из конфигурационного файла), но может применяться и для внесения изменений в работающую систему. Будьте осторожны при модификации удаленной системы, так как не всегда есть возможность оперативно исправить ошибки.

В большинстве случаев команда ifconfig имеет следующий формат:

ifconfig интерфейс адрес опции ... up

 

Например:

# ifconfig en0 128.138.240.1 netmask 255.255.255.0 up

 

Параметр интерфейс обозначает аппаратный интерфейс, к которому применяется команда. Как правило, это двух-трехсимвольное имя устройства за которым следует число. Примеры распространенных имен: ie0, 1е0, le1, ln0, en0, we0, qe0, hme0, eth0 и lan0; lo0 — это имя интерфейса обратной связи. Имя интерфейса образовывается из имени драйвера устройства, используемого для управления им; обычно оно соответствует комплекту микросхем, который установлен в устройстве (Intel Ethernet, Lance Etherne: и т.д.).

Команда ifconfig интерфейс выводит текущие установки для указанного интерфейса. Во многих системах опция понимается как "все интерфейсы'' поэтому с помощью команды ifconfig -а можно узнать, какие интерфейсы присутствуют в системе. Если эта команда не поддерживается, попробуйте команду netstat -i.

В Solaris сетевые интерфейсы подключаются с помощью команды ifconfig интерфейс plumb; только после этого они становятся конфигурируемыми и видимыми для команды netstat -i.

Параметр адрес задает IP-адрес интерфейса. Как правило, он дается в традиционной для Internet точечной нотации, но во многих системах можно указывать имя машины. Мы рекомендуем пользоваться числовой записью, если команде ifconfig будет задано имя машины (или результат работы команды hostname) и в процессе преобразования имени возникнет ошибка, то данный компьютер не загрузится или загрузится в состояние, при котором доступ к нему по сети будет невозможен. Администратору придется идти самому и устранять проблему на месте. DNS-запросы в подобной ситуации выполняются очень долго, поэтому возникает впечатление, будто машина зависла.

Ключевое слово up активизирует интерфейс, а ключевое слово down отключает его.

Команда ifconfig поддерживает множество опций. Мы рассмотрим лишь самые основные из них. Детали, касающиеся конкретной системы, как всегда, можно узнать на страницах интерактивного руководства. Все опции имеют символические имена. Указывая опцию, вы устанавливаете ее. Некоторые опции требуют наличия аргументов, которые должны размещаться сразу после имени опции. В ряде версий команды ifconfig должен был указываться параметр, задающий семейство адресов. Сегодня этот параметр не обязателен, а по умолчанию используется семейство inet.

Опция netmask задает маску подсети для данного интерфейса. Она обязательна, если подсеть формируется не на основании класса адреса (А, В или С). Маску можно указывать в точечной нотации либо в виде четырехбайтового шестнадцатеричного числа, начинающегося с префикса 0х.

Опция broadcast задает широковещательный IP-адрес интерфейса в шестнадцатеричной или точечной записи. Правильный широковещательный адрес — тот, в котором все биты машинной части равны 1. В большинстве систем по умолчанию используется именно это значение. Оно определяется на основании сетевой маски и IP-адреса.

В UNIX в качестве широковещательного адреса можно использовать любой IP-адрес, существующий в сети, к которой подключен компьютер. В некоторых организациях широковещательный адрес специально выбран нестандартным, чтобы избежать некоторых сетевых атак, основанных на команде ping. По ряду причин мы не рекомендуем такой подход.

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

Широковещательный "шторм" происходит по той причине, что для транспортировки пакетов применяется один и тот же широковещательный адрес канального уровня независимо от того, какой задан широковещательный IP-адрес. Предположим, например, что для компьютера X широковещательный адрес — А1, а для компьютера Y — А2. Если X посылает пакет по адресу А1, то Y примет этот пакет (его целевой адрес канального уровня является широковещательным), обнаружит, что он не предназначен данному компьютеру и не является широковещательным (ведь для Y таковым служит адрес А2), и вернет его обратно в сеть. Если таких машин, как Y, две, пакет будет циркулировать до тех пор, пока время его жизни не истечет. Широковещательный "шторм" приводит к серьезному снижению производительности крупных коммутируемых сетей.

Лучший способ избежать проблем с широковещательными запросами — запретить пограничному маршрутизатору перенаправлять их, а отдельным узлам — отвечать на них. Далее будет рассказано о том, как реализовать подобные ограничения в конкретной системе.

В показанном выше примере широковещательный адрес — 128.138.240.255, так как длина сетевой части адреса равна 24, что следует из значения сетевой маски (255.255.255.0).

При выполнении команды ifconfig en0 будет получен такой результат:

en0:  flags=63<UP, BROADCAST, NOTRAILERS, RUNNINO inet 128.138.240.1

netmask ffffff00 broadcast 128.138.240.255

 

Рассмотрим несколько конкретных примеров.

# ifconfig 1о0 127.0.0.1 up

 

Эта команда конфигурирует интерфейс обратной связи, который, как правило, не требует никаких опций. Нельзя менять стандартную системную конфигурацию данного интерфейса. Подразумеваемая маска 255.0.0.0 является правильной и не должна переопределяться вручную.

# ifconfig enO 128.138.240.151 netmask 255.255.255.192

broadcast 128.138.243.191 up

 

Это типичный пример для платы Ethernet. IP-адрес и широковещательный адрес устанавливаются равными 128.138.243.151 и 128.138.243.191 соответственно. Сеть относится к классу В (что видно из первого байта адреса), при этом в ней выделяется подсеть /26. Значение 192 в сетевой маске — это 11000000 в двоичном виде, т.е. от трех октетов 255 отнимаются еще два бита. Значение 191 в широковещательном адресе — это 10111111 в двоичном виде, т.е. все шесть битов машинной части равны 1, а сам интерфейс принадлежит третьей (10) из четырех подсетей.

Теперь, когда мы узнали, как конфигурировать сетевой интерфейс вручную, осталось познакомиться с тем, как задавать параметры команды ifconfig при начальной загрузке системы. Кроме того, требуется убедиться, что новые значения введены правильно. Для этого необходимо отредактировать один или несколько конфигурационных файлов. Данная процедура описывается далее в параграфах, посвященных настройке конкретных систем.

 

Команда route: конфигурирование статических маршрутов

 

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

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

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

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

Во-вторых, может не оказаться маршрута, совпадающего с адресом пункта назначения. В этом случае применяется маршрут по умолчанию, если таковой имеется, иначе отправителю выдается ICMP-сообщение "network unreachable" (сеть недоступна). Многие локальные сети имеют единственный выход "в мир", на него-то и ссылается стандартный маршрут. В магистральной сети Internet нет стандартных маршрутов — это конец пути.

Каждая команда route добавляет или удаляет один маршрут. Вот ее формат:

route [-f] операция [тип] адресат шлюз счетчик_переходов

 

Параметр операция принимает одно из двух значений: add (добавить маршрут) или delete (удалить маршрут). В некоторых версиях команды поддерживаются и другие виды операций, например get, change, flush и monitor. Параметр адресат содержит адрес машины, адрес сети или ключевое слово default. В ряде систем стандартный маршрут представляется сетевым адресом 0.0.0.0.

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

Параметр счетчик_переходов определяет предельное число переходов на пути к адресату. В одних операционных системах этот параметр обязателен, в других он допустим, но игнорируется, в третьих — считается устаревшим и не должен использоваться. Но даже если счетчик переходов необходим, не требуется указывать точное его значение; часто его просто устанавливают равным 1.

Во FreeBSD счетчик переходов не нужен. Если же по ошибке указать его, то он будет проинтерпретирован как сетевая маска. Согласитесь, от маски 1 мало пользы!

Необязательный параметр тип задает тип адреса: сетевой или машинный. Соответственно, он может принимать значение net или host. Если тип опушен, команда route проверяет машинную часть целевого адреса на предмет равенства ее нулю. Если машинная часть равна нулю или адрес найден в файле /etc/networks, то маршрут считается обычным сетевым маршрутом.

Поскольку команда route не знает, разбита ли сеть с указанным адресом на подсети, тип адреса приходится задавать достаточно часто. Например, адрес 128.138.243.0 относится к разделенной на подсети сети класса В, имеющейся в нашей организации, но для команды route он выглядит как адрес класса В 128.138 с машинной частью 240.0. Чтобы не вводить команду route в заблуждение, следует задать опцию net. Желательно указывать тип адреса для всех маршрутов, где могут встретиться подсети.

Команда route delete адрес удаляет указанную запись из таблицы маршрутизации. Команда route -f удаляет из таблицы данные обо всех маршрутах. Если объединить ее с командой add, таблица сначала очищается, а затем вносится требуемое изменение.

В последних выпусках BSD-систем вместо команды route -f используется команда route flush, а вместо опций net и host — опции -net и -host.

В Red Hat также используются опции -net и -host, но команда route flush не поддерживается. Похоже, что в Red Hat вообще нельзя удалить все записи из таблицы маршрутизации одной командой.

Существующие маршруты можно проанализировать с помощью команды netstat -nr. Подробную информацию об этой команде вы найдете в параграфе 20.4.

 

Стандартные маршруты

 

Благодаря наличию стандартного маршрута все пакеты, целевые адреса которых не найдены в таблице маршрутизации ядра, будут посланы в указанный шлюз. Для установки стандартного маршрута достаточно добавить в один из стартовых сценариев такую строку:

route add default IP-адрес
 

 

Чтобы не задавать жестко IP-адрес в стартовых сценариях, большинстве поставщиков заставили свои системы получать этот адрес из конфигурационного файла. Конкретная процедура зависит от системы (табл. 13.13).

Таблица 13.13. Задание стандартного маршрута в различных операционных системах

Система

Редактируемый файл

Изменяемая переменная

Solaris

/etc/defaultrouter

-

HP-UX

/etc/rc.conflg.d/netconf

ROUTE_GATEWAY[0]

Red Hat

/etc/sysconfig/network

GATEWAY,   GATEWAYDEV

FreeBSD

/etc/rc.conf

defaultrouter

 

Прочерк в последнем столбце означает, что в указанный файл достаточно поместить IP-адрес или сетевое имя стандартного шлюза. Если задается сетевое имя, оно должно присутствовать в файле /etc/hosts.

 

Конфигурирование DNS

 

Чтобы сконфигурировать машину в качестве DNS-клиента, достаточно отредактировать один или два файла: /etc/resolv.conf (во всех системах) и файл "переключения сервисов" (в некоторых системах).

Файл /etc/resolv.conf содержит список DNS-доменов, просматриваемых при анализе неполных имен (например, "anchor" вместо anchor.cs.colo-rado.edu), и IP-адресов серверов имен, в которых осуществляется поиск имен. Ниже показан пример этого файла; подробнее о нем рассказывается в параграфе 16.8.

search cs.colorado.edu colorado.edu

nameserver 128.138.242.1

nameserver 128.138.243.151

nameserver 192.108.21.1

 

Первым должен быть указан ближайший стабильный сервер имен, так как он опрашивается в первую очередь. Всего можно задать три записи nameserver. Желательно указывать более одного сервера. Период тайм-аута достаточно большой, поэтому, если первый сервер не отвечает, пользователи это заметят.

Иногда вместо записи search присутствует запись domain. Это говорит о том, что в системе имеется либо старая версия файла resolv.conf, либо старый модуль преобразования имен. Директивы domain и search не эквивалентны, вторая является более предпочтительной.

В некоторых системах база данных DNS по умолчанию не используется, даже если есть правильно сконфигурированный файл resolv.conf. В таких системах имеется файл "переключения сервисов", определяющий, какой механизм должен применяться для преобразования сетевых имен в IP-адреса. О приоритетах информационных служб рассказывается в параграфе 18.3, но здесь мы также рассмотрим эту тему, поскольку она важна с точки зрения разрешения проблем при конфигурировании нового компьютера.

Файл "переключения сервисов" позволяет задать порядок, в котором должны просматриваться базы данных DNS, NIS (или NIS+) и файл /etc/hosts. Некоторые информационные источники можно полностью исключить из рассмотрения. Порядок просмотра оказывает влияние на начальную загрузку системы. Если первым источником является DNS, то для корректной загрузки в локальной сети должен присутствовать сервер имен, а его сетевое имя и IP-адрес должны быть указаны в файле /etc/hosts.

В табл. 13.14 приведено местоположение соответствующих конфигурационных файлов в каждой из тестовых систем и строки, требуемые для организации поиска сетевых имен.

Таблица 13.14. Файлы "переключения сервисов" в различных операционных системах

Система

Файл

Строка поиска сетевых имен

Solaris

/etc/nsswitch.conf

nis   [NOTFOUND=return]   files

HP-UX

/etc/nsswitch.conf

dns   [NOTFOOND=return]  nis [N0TFOUND=return]   files

Red Hat

/etc/nsswitch.conf1 /etc/host.conf

db files nisplus dns hosts, bind

FreeBSD

/etc/host.conf

hosts, bind

1  С большинством приложений компонуется библиотека libc6, где используется система BIND и файл nsswitch.conf. К некоторым старым приложениям подключается библиотека libc5, и в ней используется файл host.conf.

 

Стандартная строка поиска в Solaris определяется на основании параметров, заданных в процессе инсталляции системы. Модифицируемая запись называется hosts в Solaris 7; в Solaris 8 и более поздних версий добавляется запись ipnodes, которая ссылается также на процедуру преобразования сетевых имен в IP-адреса.

Строки для Solaris и HP-UX содержат предложение [NOTFOUND=return], которое указывает, что нужно делать, если поиск имени не увенчался успехом. В данном случае процедура поиска немедленно завершается. Переход к следующему сервису осуществляется только в том случае, когда первый сервис оказывается недоступным. Определены также три других условия — SUCCESS, UNAVAIL и TRYAGAIN, а вместо команды return может быть указана команда continue.

В Solaris и HP-UX в каталоге /etc содержатся образцы рассматриваемых файлов; их имена — nsswitch.*. В HP-UX стандартные установки находятся в файле nsswitch.lip defaults.   


 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page