Опубликован: 04.07.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 3:

Настройка и обслуживание сетевых соединений

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >

Файлы настроек свойств сети в Solaris

Параметры сети определяются в:

  • /etc/defaultdomain – полное имя домена (например, company.ru);
  • /etc/inet/hosts – таблица соответствия имен компьютеров и их адресов;
  • /etc/hostname.le0 – краткое имя интерфейса le0. Остальные интерфейсы описаны соответствующими файлами. Должно совпадать с тем, что указано для адреса этого интерфейса в /etc/inet/hosts:
    cat /etc/hostname.le0
    hamburger
    cat /etc/inet/hosts | grep hamburger
    192.243.78.11 hamburger.macro.su hamburger
  • /etc/hosts – символьная ссылка на /etc/inet/hosts ;
  • /etc/inet/nsswitch.conf – вместо host.conf в других UNIX'ах – указание порядка опроса name-сервера и файла hosts ;
  • cat /etc/inet/nsswitch.conf
  • hosts: files, DNS
  • /etc/bootptab – адреса принт-сервера и принтера;
  • /etc/resolv.conf – настройки DNS, включая адреса DNS-серверов;
  • /etc/inet/netmasks - в каждой строчке пара: адрес сети, маска сети
    cat /etc/netmasks
    163.239 255.255.255.0
  • /etc/defaultrouter – адрес шлюза ;
  • /etc/nodename – имя компьютера.

ВНИМАНИЕ! Файлы /etc/hostname. действительно называются hostname.название_интерфейса. НЕ НАДО подставлять в имя файла действительное имя компьютера, тем более, не следует подставлять вывод команды hostname. Например, на компьютере sunny.macro.ru файл hostname.le0 содержит внутри слово sunny, а _называется_ файл hostname.le0, что говорит о его содержимом: имя хоста, сопоставляемое интерфейсу le0.

При обычной настройке подключенного к сети компьютера под управлением Solaris следует указать все те же параметры, что и при настройке любой системы, работающей с TCP/IP: адрес интерфейса, имя компьютера, имя домена, адрес DNS-сервера, адрес основного шлюза. Помните, что адрес DNS-сервера и основного шлюза должны быть указаны в виде IP-адресов, а не в виде доменных имен: при обращении к серверу имен система еще не обязана знать, какой IP-адрес какому компьютеру соответствует. Шлюз же следует указать в виде IP-адреса потому, что сервер имен может находиться вне локальной сети, и тогда запросы к нему будут направляться через шлюз.

Для корректной работы системных вызовов, использующих resolver(3), т.е. тех, что обращаются к серверу имен с вопросом о соответствии IP-адреса имени или с требованием найти обратное соответствие, надо внести верную запись в файл /etc/resolv.conf. В этом файле допустимы команды:

nameserver IP-адрес
search домен
domain домен

Первая командаnameserver – называет IP-адрес сервера имен; всего допустимо до трех таких команд. Вторая указывает, имена каких доменов надо подставлять к имени хоста, если его ввели без имени домена (т.е. для поиска хоста с именем типа sunny ), а команда domain определяет, в каком домене находится наш компьютер; это требуется для того, чтобы вначале попытаться найти компьютер с неполным именем (например, suuny ) в своем домене, а уже затем попытать счастья в других доменах, которые перечислены в директиве search. Вот пример файла /etc/resolv.conf:

domain eu.spb.ru
nameserver 192.168.5.18
search eu.spb.ru

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

Настройка маршрутизации

Маршрутизацией называется передача пакетов между интерфейсами. Базовые функции маршрутизации в UNIX'e поддерживаются в ядре. Кроме этого, для поддержки протоколов динамической маршрутизации можно использовать специализированные программы маршрутизации, например, демон gated.

Ядро хранит таблицу маршрутизации, которая формируется при загрузке системы. Посмотреть таблицу маршрутизации можно командой netstat –nr.

Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
------------- --------------- ------- ------ ------ ---------
192.168.5.0 192.168.5.33 U 1 4 elxl0
224.0.0.0 192.168.5.33 U 1 0 elxl0
default 192.168.5.1 UG 1 0
127.0.0.1 127.0.0.1 UH 54 5063 lo0

Флаги netstat

Каждый маршрут отмечен своим флагом. Флаги в выводе netstat обозначают состояние и тип маршрута:

  • Uup – маршрут активен и действует;
  • Ggateway – маршрут лежит к шлюзу;
  • Hhost – маршрут к хосту (компьютеру), а не к сети;
  • Sstatic – маршрут добавлен статически (обычно – вручную);
  • Ddynamic – маршрут добавлен динамически, посредством протокола маршрутизации.

В случае, если в системе активировано несколько сетевых интерфейсов, маршрутизация пакетов между ними по умолчанию разрешена. Если надо отключить это свойство, т.е. запретить маршрутизацию пакетов между интерфейсами, следует создать файл /etc/notrouter. Его существование будет проверяться при запуске системы, и, если он существует, передача пакетов между интерфейсами будет выключена. Вы должны помнить, что Solaris обладает повышенной уязвимостью во время запуска, когда машина может перенаправлять пакеты независимо от /etc/notrouter. С другой стороны, это не очень серьезная уязвимость: серверы Solaris, равно и другие серверы приложений, не имеет смысл устанавливать вне корпоративной сети; вне такой сети вряд ли потребуется запрещать маршрутизацию средствами ОС.

Для того, чтобы добавить или изменить маршрут пакетов к определенному адресату (компьютеру или сети), надо использовать команду route. Например, если следует отправлять пакеты в сеть 193.13.13.0/24 (как вы помните, такая запись означает сеть класса С) через интерфейс с адресом 192.168.5.18, то нужно дать команду route add:

netstat -rn
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
------------- --------------- ------- ------ ------ ---------
192.168.5.0 192.168.5.33 U 1 5 elxl0
224.0.0.0 192.168.5.33 U 1 0 elxl0
default 192.168.5.1 UG 1 0
127.0.0.1 127.0.0.1 UH 54 5775 lo0
bash-2.05#
bash-2.05# route add net 193.13.13.0 192.168.5.18
add net 193.13.13.0: gateway 192.168.5.18
bash-2.05# netstat -rn
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
------------- --------------- ------- ------ ------ ---------
193.13.13.0 192.168.5.18 UG 1 0
192.168.5.0 192.168.5.33 U 1 5 elxl0
224.0.0.0 192.168.5.33 U 1 0 elxl0
default 192.168.5.1 UG 1 0
127.0.0.1 127.0.0.1 UH 54 5905 lo0

Синтаксис команды route:

route [-dnqtv] команда [[модификаторы] аргументы]

-n – сообщать IP-адреса, вместо имен компьютеров. Для вывода имени его еще нужно определить по адресу, это занимает время и окажется невозможным при сбое настроек или недоступности сервера имен;

-v – сообщить дополнительные детали;

-q – выполнять "молча", т.е не выдавая никаких сообщений.

Команда route также способна выполнять следующие действия в зависимости от внутренних команд, переданных ей в качестве аргументов:

  • add – добавить маршрут;
  • change – изменить маршрут (например, шлюз для сети);
  • flush – удалить все маршруты;
  • delete – удалить один указанный маршрут;
  • get – найти и показать маршрут до определенного места назначения;
  • monitor – следить за маршрутом и сообщать об изменении информации в таблице.

Внутренняя команда monitor осмысленна для динамически обновляемых маршрутов:

route [-n] monitor

Обычно route вызывается для изменения или добавления маршрута, вот так:

route [-n] команда [-net | -host] куда через_что [netmask]

Для указания всех интерфейсов вообще используется ключевое слово default, синоним которого – это параметр -net 0.0.0.0.

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

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Анатолий Натрусов
Анатолий Натрусов
Россия
Виктор Саркисов
Виктор Саркисов
Россия, Нижний Новгород, НГТУ, 2001