4.3.2.2 rc-файлы в сети

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.

Сайт создан в системе uCoz