rc
-файлы широко
используемые в системе сценарии, выполняемые во время загрузки программой by
init
, которая запускает всех основных системных демонов (таких
как sendmail
, cron
, и т.п.) и настраивает такие вещи,
как сетевые параметры, системное хост-имя и т.п. rc-файлы обычно находятся в
каталоге /etc/rc.d
, но в других системах они могут быть в /etc
.
Здесь мы собираемся описать
rc-файлы, используемые при настройке TCP/IP. Файлов два: rc.inet1
и rc.inet2
. rc.inet1
используется для настройки базовых
сетевых параметров (таких как IP адреса и маршрутизация) и rc.inet2
запускает TCP/IP демонов (telnetd
, tftpd
и т.д.).
Многие системы объединяют
оба этих файла в один, обычно называемый rc.inet
или rc.net
.
Имена, данные вашим rc-файлам роли не играют, лишь бы они выполняли нужные функции
и выполнялись во время загрузки программой init
. Чтобы это обеспечить,
возможно вам потребуется подредактировать /etc/inittab
, чтобы
выполнить соответствующие rc-файлы. В худшем случае вам придется создать rc.inet1
и rc.inet2
файлы заново и добавить информацию из /etc/inittab
.
Как мы говорили, rc.inet1
настраивает базовый сетевой интерфейс. Это включает ваше IP, сетевой адрес и
таблицу маршрутизации (routing table) для вашей сети. Таблицы маршрутизации
используются для маршрутизации входящих и исходящих сетевых дейтаграм (datagrams)
на другие машины. Во многих простых настройках вы имеете три маршрута: один
- для посылки пакетов своей собственной машине, другой - для посылки пакетов
на другие машины вашей сети, третий - для посылки пакетов на машины, находящиеся
за пределами вашей сети (через шлюзовую машину). Есть две программы для настройки
этих параметров: ifconfig
и route
. Обе обычно находятся
в /etc
или /sbin
.
ifconfig
используется
для настройки интерфейса устройств сети с необходимыми для функций параметрами,
такими как IP адрес, маска сети, бродкаст адрес и т п. route
используется
для создания и модификации таблицы маршрутизации.
Для многих случаев файл
rc.inet1
подойдет в том виде, в каком он здесь приведен. Вы, разумеется,
должны будете отредактировать его под свою систему. Не используйте без изменения
IP и сетевой адреса, приведенные здесь в качестве примера, они соответствуют
действительной машине в Internet.
#!/bin/sh
# This is /etc/rc.d/rc.inet1 -- Configure the TCP/IP interfaces
# First, configure the loopback device
HOSTNAME=`hostname`
/etc/ifconfig lo 127.0.0.1 # uses default netmask 255.0.0.0
/etc/route add 127.0.0.1 # a route to point to the loopback device
# Next, configure the ethernet device. If you're only using
# loopback or SLIP, comment out the rest of these lines.
# Edit for your setup.
IPADDR="128.253.154.32" # REPLACE with YOUR IP address
NETMASK="255.255.255.0" # REPLACE with YOUR netmask
NETWORK="128.253.154.0" # REPLACE with YOUR network address
BROADCAST="128.253.154.255" # REPLACE with YOUR broadcast address,
# if you have one. If not, leave blank
# and edit below.
GATEWAY="128.253.154.1" # REPLACE with YOUR gateway address!
/etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
# If you don't have a broadcast address, change the above line to:
# /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK}
/etc/route add ${NETWORK}
# The following is only necessary if you have a gateway; that is,
# your network is connected to the outside world.
/etc/route add default gw ${GATEWAY} metric 1
# End of Ethernet Configuration
Может вам придется немного поковырять этот файл, чтобы заставить работать. Этот сценарий должен подходить для настройки большинства простых сетей, но, разумеется, не для всех.
rc.inet2
запускает
различные сервера, используемые TCP/IP. Наиболее важный среди них - inetd
.
inetd
сидит в фоне и присматривает за различными сетевыми портами.
Когда машина пытается связаться с конкретным портом (например, со входным портом
telnet), inetd
создает новую копию соответствующего демона для
этого порта (в случае порта telnet inetd
запускает in.telnetd
).
Это проще, чем выполнять много независимых демонов (т.е. индивидуальных копий
telnetd
, ftpd
и т.п.) - inetd
запускает
демонов только при возникновении необходимости.
syslogd
- это
системный демон входа - он аккумулирует сообщения о входе от различных источников
и помещает их в log-файлы, зависящие от настройки /etc/syslogd.conf
.
routed
- это сервер используемый для сопровождения динамической
информации по маршрутизации. Когда ваша система пытается послать пакет в другую
сеть, это может потребовать дополнительных записей в таблицу маршрутизации,
чтобы это выполнить. routed
заботится о сопровождении таблицы маршрутизации
без необходимости вмешательства человека.
Приведенный ниже пример
rc.inet2
запускает лишь самый минимум серверов. Есть и другие серверы
- многие из которых обслуживают настройки NFS. Пытаясь установить TCP/IP на
вашей системе, обычно лучше всего начать с минимальной конфигурации и добавлять
более сложные куски, (такие, как NFS), когда у вас уже что-то работает.
Обратите внимание, что в
нижеприведенном файле мы предполагаем, что все сетевые демоны находятся в /etc
.
Ну и как обычно отредактируйте этот файл под свою конфигурацию.
#! /bin/sh
# Sample /etc/rc.d/rc.inet2
# Start syslogd
if [ -f /etc/syslogd ]
then
/etc/syslogd
fi
# Start inetd
if [ -f /etc/inetd ]
then
/etc/inetd
fi
# Start routed
if [ -f /etc/routed ]
then
/etc/routed -q
fi
# Done!
Среди многих дополнительных
серверов, которые вы можете запустить в rc.inet2
- named
.
named
- это сервер имен. Он отвечает за перевод (локальных) IP
адресов в имена и наоборот. Если у вас где-нибудь в сети нет сервера имен или
вы сами хотите снабжать локальными именами машин другие машины вашего домена,
использование named необходимо. (Но для большинства случаев в этом нет необходимости).
Настройка named достаточно сложна и требует предварительного планирования. Мы
отсылаем заинтересованных читателей к хорошим книгам по TCP/IP.