*Главная страница 
 Linux Intro  
 Linux File System  
 Linux Text Obolocki  
 Linux Graf Obolocki  
 Linux Structure  
 Linux Memory  
 Set Linux
 Linux Command  
 HOWTO  
 FAQ  
 Securing and Optimizing Linux  
 
*НАСТРОЙКА СЕТЕВОГО СОЕДИНЕНИЯ 

 

Linux-системы конфигурированы на подключение к сетям, в которых используются протоколы TCP/IP. Именно эти протоколы применяются в Internet и многих локальных сетях. Протоколы  TCP/IP были разработаны в семидесятых годах в рамках специального проекта Управления перспективных исследований и разработок Министерства обороны США с целью развития системы связи между учебными заведениями и научно-исследовательскими институтами. Разрабатывались эти протоколы для Unix-систем, при этом основные исследования проводились в Калифорнийском универ­ситете (г. Беркли). ОС Linux во многом выигрывает благодаря этой изначальной ориентации протоколов на Unix.

Комплект TCP/IP состоит из нескольких различных протоколов, каждый из которых выполняет в сети определенную задачу. Базовых протоколов два: протокол управления передачей (TCP), который обеспечивает отправку и прием сообщений, и межсетевой протокол (IP), который отвечает за маршрутизацию. Остальные протоколы выполняют различные сетевые функции. Служба доменных имен (DNS) обеспечивает преобразование адресов. Протокол пересылки файлов (ftp) управляет передачей файлов, а набор протоколов NFS обеспечивает доступ к удаленным файловым системам. Протоколы комплекта TCP/IP представлены в табл. 1.

Конфигурирование в Linux-системе сетевого соединения, устанавливаемого по протоколу TCP/IP, и управление им - не слишком сложная задача. К услугам пользователя имеется набор конфигурационных файлов, с помощью которых система настраивает и поддерживает сетевые соединения. Полный перечень этих файлов приведен в табл.2. Многими из них можно управлять с помощью административных программ из интерфейса привилегированного пользователя, в частности с помощью утилиты netcfg. Допускается также использование более специализированных программ, например таких, как netstat, ifconfig и route. Некоторые конфигурационные файлы легко поддаются редактированию с помощью текстового редактора. Широко используемые программы для настройки сетевого соединения пред­ставлены в табл. 3.

Допустим, в процессе инсталляции вы ввели информацию о конфигура­ции сети. Это означает, что система полностью готова к работе. Если Linux-система уже подключена к сети, например к Ethernet, читать данную главу вам не нужно (если только вы не хотите понять, как ОС Linux настраивает сетевые соединения). Однако если вы входите в сеть через модем (например, связываетесь таким образом с провайдером Internet), вам будет полезно ознакомиться с материалами, относящимися к протоколам SLIP и РРР. В этих параграфах рассказывается о том, как заставить Linux-систему связываться с провайдером Internet и правильно устанавливать сетевое соединение. Если в процессе выхода в сеть у вас возникли проблемы, то полезной будет вся информация, представленная в этой главе.

Сетевые адреса TCP/IP

IP-адрес состоит из четырех сегментов - чисел, разделенных точками. Одна часть этого адреса представляет собой адрес сети, а другая используется для обозначения конкретного хост-компьютера в этой сети. Адрес сети обозначает сеть, частью которой является данный хост-компьютер. Обычно сетевая часть адреса занимает первые три сегмента, а адрес машины - последний сегмент. В совокупности эти сегменты образуют уникальный адрес, с помощью которого идентифицируется любой компьютер в сети, работающей по протоколам TCP/IP. Напри­мер, в IP-адресе 199.35.209.72 сетевая часть - 199.35.209, а машинная часть - 72. Данный компьютер является частью сети, адрес которой - 199.35.209.0. IP-адрес хост-компьютера - это лишь один из нескольких адресов, которые необходимы для подключения этого компьютера к сети. Кроме него вам потребуются адрес сети, широковещательный адрес, адрес шлюза (если таковой имеется), адрес сервера имен и маска сети. Все эти адреса система предлагает пользователю ввести во время инсталляции. Если вы их ввели, то они будут автоматически занесены в соответствующие конфигурационные файлы. Кроме того, в них вводятся все записи, которые вы делаете при помощи утилиты netcfg. (Типы используемых сетевых адресов перечислены в табл. 2.)

Адрес сети

Адрес сети можно легко установить по адресу хост-компьютера - это сетевая часть адреса хост-компьютера плюс нуль; например, в хост-адресе 199.35.209.72 адрес сети - 199.35.209.0. Системы определяют адрес сети по адресу хост-компьютера с помощью маски сети. Для знакомых с программированием скажем, что поразрядная операция И, проведенная с маской сети и адресом хост-компьютера, приво­дит к обнулению машинной части адреса и получению его сетевой части.

Широковещательный адрес

Широковещательный адрес позволяет системе посылать сообщение одновременно всем системам в сети. Как и сетевой адрес, широковещательный адрес можно легко определить по адресу хост-компьютера; машинная часть в нем установлена равной 255, а сетевая часть не меняется. Например, широковещательный адрес для адреса хост-компьютера 199.35.209.72 - 199.35.209.255 (т.е. сетевая часть адреса остается прежней, а машинная меняется на 255).

Адрес шлюза

Довольно часто один из компьютеров сети назначают шлюзом, задача которого - обеспечивать взаимодействие с другими сетями. Все соединения, устанавливаемые из данной сети с какой-либо иной и наоборот, осу­ществляются через этот шлюзовой компьютер. Если вы работаете в такой сети, то необходимо указать адрес шлюза. Если же шлюза в сети нет либо вы работаете в автономной системе или через провайдера Internet, то адрес шлюза не нужен. Как правило, адрес шлюза имеет ту же сетевую часть, что и адрес хост-компьютера, но в его машинной части стоит 1. Например, если адрес хост-компьютера - 199.35.209.72, то адрес шлюза (возможно) - 199.35.209.1. Однако такая договоренность выполняется не всегда. Чтобы узнать адрес шлюза наверняка, обратитесь к администратору своей сети.

Адрес сервера имен

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

Маска сети

Маска сети используется для получения адреса сети, к которой вы подключены. При определении маски сети адрес хост-компьютера выступает в роли трафарета. Все числа в сетевой части хост-адреса устанавливаются равными 255, а в машинной части ставится нуль. Это и есть маска сети. Так, маска сети для хост-адреса 199.35.209.72 - 255.255.255.0. Сетевая часть, 199.35.209, заменена на 255.255.255, а машинная часть, 72, заменена нулем. С помощью этой маски системы определяют по вашему хост-адресу адрес вашей сети. Они могут установить, какая часть адреса хост-компьютера является сетевой и из каких чисел она состоит.

Файлы конфигурации TCP/IP

Для настройки и поддержки работы сети, работающей под управлением протоколов TCP/IP, используется набор файлов конфигурации, расположен­ных в каталоге /etc. В этих файлах содержится информация о сети, в частности имена хост-машин и доменов, IP-адреса и характеристики интер­фейсов. Именно в эти файлы вводятся IP-адреса и доменные имена других хост-компьютеров Internet, к которым вы хотите получить доступ. Если в процессе инсталляции системы вы конфигурировали сеть, то вся эта информация в файлах конфигурации уже есть. Ввести конфигурационные данные в эти файлы можно с помощью программы netcfg (ее пиктограмма находится на вашем рабочем столе) или с помощью программы netconfig (из командной строки).

Файл Функция
/etc/hosts Связывает хост-имена с IP-адресами
/etc/networks Связывает доменные имена с адресами сетей
/etc/rc.d/init.d/inet Содержит команды конфигурирования сетевого интерфейса при начальной загрузке
/etc/HOSTNAME Содержит хост-имя вашей системы
/etc/host.conf Опции конфигурирования
/etc/resolv.conf Содержит список серверов доменных имен

Идентификация хост-имен: файл /etc/hosts

Без уникального IP-адреса, которым в сети TCP/IP идентифицируются компьютеры, нужный компьютер найти нельзя. Поскольку IP-адреса трудны для запоминания и работы, вместо них используются доменные имена. Каждому IP-адресу ставится в соответствие доменное имя. Система преоб­разует доменное имя, по которому пользователь обращается к определенному компьютеру, в соответствующий IP-адрес, и он используется для установле­ния соединения с указанным компьютером.

Вначале ведение списка хост-имен с их IP-адресами было обязанностью всех компьютеров сети. Этот список до сих пор хранится в файле /etc/hosts. Получив от пользователя доменное имя, система ищет в файле hosts соот­ветствующий адрес. За ведение этого списка отвечает системный админист­ратор. Вследствие стремительного роста Internet и появления все новых и новых очень больших сетей функции преобразования доменных имен в IP-адреса были переданы серверам доменных имен. Тем не менее файл hosts продолжает использоваться для хранения доменных имен и IP-адресов хост-компьютеров, соединения с которыми устанавливаются наиболее часто. Перед тем как обращаться к серверу имен, ваша система всегда будет проверять файл hosts и искать в нем IP-адрес заданного ей доменного имени.

Каждая запись в файле hosts состоит из IP-адреса, пробела и доменного имени. Для хост-имени можно создавать псевдонимы. В одной строке с записью можно ввести комментарий, который всегда предваряется символом #. В файле hosts уже имеется запись для локального компьютера localhost с IP-адресом 127.0.0.1. Localhost - это специальный зарезервированный IP-адрес 127.0.0.1, которой позволяет пользователям вашей системы связы­ваться друг с другом в локальном режиме. Он служит для идентификации так называемого закольцовывающего интерфейса.

 

/etc/hosts

127.0 0.1              turtle.trek.coin      localhost

199.35.209.72     turtle.trek.coin

204.32.168.56     pangol.train.com

202.211.234.1     rose.berkeley.edu

 

Имена сетей: файл /etc/networks

В файле /etc/networks хранятся доменные имена и IP-адреса сетей, с которыми у вашей системы есть соединение, а не доменные имена конкрет­ных компьютеров. Сети имеют сокращенные IP-адреса. В зависимости от типа сети в IP-адресах может использоваться одно, два или три числа. Сетевой IP-адрес для localhost - 127.0.0.0. Этот сетевой адрес используется для закольцовывающего устройства.

IP-адреса записываются в файле /etc/networks вместе с соответствующими им доменными именами сетей. Вспомните, что IP-адрес состоит из сетевой части и машинной части. Сетевая часть - это адрес сети, который хранится в файле networks. В этом файле всегда будет присутствовать отдельная запись для сетевой части IP-адреса вашего компьютера. Это и есть адрес сети, к которой подключен ваш компьютер.

 

/etc/networks

loopback 127.0.0.0

trek.com 199.35.209.0

 

Инициализация сетевого соединения: файл /etc/rc.d/init.d/inet

В файле /etc/rc.d/init.d/inet находятся команды, обеспечивающие конфигурирование сетевого соединения. Многие записи в этом файле автоматиче­ски создаются при использовании утилиты netcfg и конфигурировании сетевого соединения в процессе инсталляции. Например, здесь находятся команды ifconfig и route . Кроме того, здесь задаются хост-имя вашей системы, адрес сети и другие необходимые адреса. Непосредственно редактировать этот файл можно лишь в том случае, если вы уверены в том, что все делаете правильно и обладаете начальными познаниями в области программирования в shell. В других дистрибутивах Linux, например в Slackware, файл инициализации может иметь имя /etc/ rec.d/rc.inet1 или просто /etc/rс.inet1.

Файл /etc/HOSTNAME

В файле /etc/HOSTNAME содержится хост-имя вашей системы. Чтобы изменить имя, нужно отредактировать данный файл. Эту задачу можно решить с помощью программы netcfg, которая заменяет хост-имя и помещает новое имя в файл /etc/HOSTNAME. Хост-имя можно узнать не только путем вывода на экран этого файла, но и с помощью команды hostname.

 

$ hostname

turtle.trek.com

Сетевые интерфейсы и маршруты: команды ifconfig и route

Соединение с сетью система устанавливает посредством конкретного аппаратного интерфейса, например Ethernet-платы или модема. Данные, проходящие через этот интерфейс, направляются в сеть. Команда ifconfig позволяет конфигурировать сетевые интерфейсы, а команда route обеспе­чивает необходимую маршрутизацию. Те же операции конфигурирования сетевых интерфейсов, которые выполняются с помощью команд ifconfig и route, в системе Caldera Network Desktop можно реализовать, воспользо­вавшись окном NetCfg утилиты netcfg. Если вы конфигурируете интерфейс с помощью утилиты netcfg, то прибегать к помощи команд ifconfig и route уже не нужно. Если же вы работаете в другой Linux-системе, попро­буйте воспользоваться утилитой netconfig, которая выполняет те же задачи, что и netcfg. Однако при желании можно конфигурировать интерфейсы непосредственно с помощью команд ifconfig и route.

При каждом запуске системы сетевые интерфейсы и таблицы маршрутиза­ции необходимо конфигурировать заново. Эта задача может решаться автома­тически на этапе начальной загрузки - поместите команды ifconfig и route для каждого интерфейса в файл инициализации /etc/rc.d/init.d/inet, который выполняется каждый раз, когда система запускается. Если сетевые интерфейсы конфигурируются утилитой netcfg в системе Caldera Network Desktop, то соответствующие команды ifconfig и route автоматически добавляются в файл /etc/rc.d/init.d/inet. Если же утилиту netcfg вы не задействовали, эти команды придется ввести в файл инициализации самостоятельно.

Утилиты Netcfg и Lisa

Самый простой способ создания сетевого интерфейса - использовать одну из программ конфигурирования, Lisa или netcfg. Чтобы использовать программу Lisa, введите в командной строке команду lisa и перейдите в меню System Configuration/Network Configuration. Затем можно выбрать элемент Configure General Network Services для ввода адресов серверов доменных имен или ввести хост-имя.

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

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

В окне Nameserver перечислены все текущие серверы имен. С помощью кнопок Add и Remove здесь можно добавлять новые серверы имен и удалять старые. Любая запись, которую вы здесь делаете, автоматически заносится в файл /etc/resolv.conf. В нижнем окне дается список хост-компьютеров с их именами и IP-адресами. Это те компьютеры, с которыми у вашей системы есть соединение. С помощью кнопок, расположенных под этим окном, можно вводить и удалять имена хост-компьютеров, а также редактировать их. Изменения и новые записи заносятся в файл /etc/hosts.

Можно также изменить хост-имя своего компьютера. Выберите в меню NetCfg (в верхнем левом углу) элемент hostname. Система пригласит вас ввести новое хост-имя. Введенное вами имя заменит предыдущее в файле /etc/hostname.

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

Команда ifconfig

В качестве аргументов команда ifconfig использует имя интерфейса и IP-адрес. Кроме того, она имеет ряд опций. Команда ifconfig используется для того, чтобы присвоить заданному сетевому интерфейсу указанный IP-адрес. Таким образом, она дает вашей системе знать о том, что данный интерфейс существует и что она обращается к нему по указанному IP-адресу. Кроме того, можно указать, каким адресом является IP-адрес - адресом хост-компьютера или адресом сети. Вместо IP-адреса можно использовать доменное имя при условии, что оно указано вместе с IP-адресом в файле /etc/hosts. Команда ifconfig имеет следующий синтаксис:

 

# ifconfig интерфейс -хост_сеть_флаг адрес опции

 

Флаг -хост_ сеть_ флаг может принимать одно из двух значений - -host или -net. Флаг -host свидетельствует о том, что данный IP-адрес является адресом хост-компьютера, a -net означает, что данный IP-адрес является адресом сети. По умолчанию принимается флаг -host. У команды ifconfig есть несколько опций, которые задают различные характеристики интерфейса, например максимальное число байтов, которое он может передать за один раз (mtu), широковещательный адрес и т.д. Опция up активизирует интерфейс, а опция down деактивизирует его. В следующем примере команда ifconfig используется для конфигурирования интерфейса Ethernet.

 

# ifconfig eth0 204.32.168.56

 

Для такой простой конфигурации, как эта, ifconfig автоматически создает стандартный широковещательный адрес и маску сети. Стандартный широ­ковещательный адрес - это сетевой адрес с машинной частью, указанной как 255. Напомним, что стандартная маска сети - 255.255.255.0. Если же вы подключены к сети с другой сетевой маской и конкретным широковещательным адресом, их необходимо указать в командной строке ifconfig. Широковеща­тельный адрес указывается в опции broadcast, а маска сети - в опции netmask. Опции команды ifconfig перечислены в табл. 1.4. В следующем примере ifconfig задает сетевую маску и широковещательный адрес.

 

# ifconfig eth0 204.32.168.56 broadcast 204.128.244.127

netmask 255.255.255.0

 

Интерфейсы типа "точка-точка", такие как PLIP (межсетевой протокол для параллельного канала), SLIP (межсетевой протокол для последователь­ного канала) и РРР (протокол "точка-точка"), требуют включения в команде ifconfig опции pointopoint. Имя интерфейса PLIP обозначается словом plip и номером; например, plip0 - это первый интерфейс PLIP. Интер­фейсы SLIP имеют имена slip0, slip1 и т.д., а интерфейсы РРР - имена ррр0, ppp1 и т.д. Двухточечные интерфейсы - это интерфейсы, работаю­щие, как правило, между двумя хост-компьютерами, например между двумя машинами, соединенными через модем. Устанавливая опцию pointopoint, необходимо указать IP-адрес хост-машины. Позже вы узнаете, как с помощью интерфейсов SLIP и РРР можно связываться по телефонной линии с провайдером Internet и устанавливать с ним соединение.

В следующем примере показано, как конфигурируется интерфейс PLIP, который соединяет компьютер, имеющий IP-адрес 199.35.209.72, с компью­тером, адрес которого 204.166.254.14. Если бы в файле /etc/hosts были указаны доменные имена этих систем, то вместо IP-адресов можно было бы использовать их доменные имена.

 

# ifconfig plip0 199.35.209.72 pointopoint 204.166.254.14

 

В случае необходимости можно с помощью команды ifconfig конфи­гурировать закольцовывающий интерфейс. Этот интерфейс имеет имя 1о и специальный IP-адрес, 127.0.0.1. Процедура конфигурирования закольцовы­вающего интерфейса показана в следующем примере.

 

# ifconfig lo 127.0.0.1

 

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

 

# ifconfig eth0

 

Чтобы посмотреть, конфигурирован ли закольцовывающий интерфейс, нужно дать команду ifconfig с именем этого интерфейса, :

 

# ifconfig lo

lo Link encap:Local Loopback

    inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0

    UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1

    RX packets:0 errors:0 dropped:0 overruns:0

    TX packets:12 errors:0 dropped:0 overruns:0

 

Маршрутизация

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

Маршруты содержатся в таблице маршрутизации, которая хранится в файле /proc/net/route. Чтобы вывести ее на дисплей, нужно дать команду route без аргументов.

 

# route

Kernel routing table

Destination     Gateway      Genmask        Flags     MSS     Window     Use      Iface

loopback            *          255.0.0.       U       1936       0        12        lo

pangol.train.com    *        255.255.255.0    U       1936       0         0       eth0

 

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

 

Поле Описание
Destination IP-адрес конечного пункта маршрута
Gateway IP-адрес или хост-имя шлюза, используемого на данном маршруте; символ * говорит о том, что шлюз в сети не используется
Genmask Маска сети маршрута
Flags Тип или состояние маршрута: U=активный, Н=хост, G=шлюз, D=динамический, М=модифицированный MSS TCP MSS (Maximum segment size) для маршрута - максимальное количество данных, которое может быть передано за один раз
Metric "Стоимость" маршрута (количество переходов до шлюза)
Ref Количество использований маршрута на текущий момент
Window Размер окна приема. Наибольшее количество данных, которое принимающая сторона может принять
Use Количество пакетов, пересланных по данному маршруту
Iface Тип интерфейса, используемого на данном маршруте

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

 

route add адрес

 

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

 

# route add 127.0.0.1

 

Опция add имеет несколько спецификаторов (они указаны на страницах диалогового руководства, посвященных команде route). Если вы добавляете конкретный статический маршрут, то эти спецификаторы понадобятся для ввода таких параметров, как маска сети, шлюз, интерфейс и адрес пункта назначения. Если же интерфейс уже конфигурирован командой ifconfig, то система может получить основную информацию из данных конфигурации интерфейса. Например, чтобы задать маршрут для Ethernet-соединения, которое уже конфигурировано командой ifconfig, нужно лишь ввести спецификатор -net и IP-адрес пункта назначения. С помощью этого адреса ifconfig находит соответствующий интерфейс и на основании этой информации организует маршрут. Задание маршрута для интерфейса Ethernet иллюстрируется следующим примером.

 

# route add -net 204.32.168.0

 

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

Если нужно удалить один из существующих маршрутов, следует вызвать команду ifconfig с опцией del и IP-адресом маршрута, например:

 

# route del -net 204.32.168.0

Контроль состояния сети: программы ping и netstat

Программа ping позволяет проверить наличие доступа к другому хост-компьютеру сети. Эта программа посылает в указанный компьютер запрос и ожидает ответа. Если ответ приходит, он выводится на экран. Запрос передается непрерывно до тех пор, пока пользователь не остановит програм­му нажатием клавиш [ctrl+c]. При этом на экране один за другим появляются ответы запрашиваемого хост-компьютера. Если ping не может связать­ся с указанной машиной, она выдает сообщение о том, что машина недоступна. Такой результат свидетельствует о том, что сетевое соединение не работает. Причиной может быть конкретный интерфейс, проблема в конфигурации или просто плохой физический контакт. Запускается про­грамма ping командой ping с именем хост-компьютера.

 

$ ping pang0l.train.com

 

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

 

# netstat

Active Internet connections

Proto Recv-Q Send-Q Local Address   Foreign Address   (State)          User

tcp      0     0 turtle.trek.com:01 pangol.train.com:ftp ESTABLISHED dylan

Active UNIX domain sockets

Proto     RefCnt Flags      Type              State          Path

unix 1   [ ACC ]            SOCK_ STREAM     LISTENING    /dev/printer

unix 2     [ ]              SOCK_ STREAM     CONNECTED    /dev/log

unix 1   [ ACC ]            SOCK_ STREAM     LISTENING    /dev/nwapi

unix 2     [ ]              SOCK_ STREAM     CONNECTED    /dev/log

unix 2     [ ]              SOCK_ STREAM     CONNECTED

unix 1   [ ACC ]            SOCK_STREAM      LISTENING    /dev/log

 

Команда netstat без опций выдает список сетевых соединений данной системы. (Опции команды netstat приведены в табл. 5). Сначала перечисляются активные TCP-соединения, а затем активные гнезда домена типа UNIX. Гнезда этого домена заняты процессами, обеспечивающими установление соединения данной системы с другими системами. Поля перечислены в следующей таблице.

 

Поле Описание
Proto Протокол, используемый для данного соединения: TCP, UDP
Recv-Q Количество байтов, полученных, но еще не скопированных программой пользователя
Send-Q Количество байтов, посланных в удаленную систему, получение которых еще не подтверждено
Local Address Локальное хост-имя и номер порта
Foreign Address Удаленное хост-имя и номер порта, назначенный соединению; номер порта может указываться как тип соединения, например telnet или ftp
(State) Состояние соединения с удаленной хост-машиной
ESTABLISHED соединение установлено
SYN_SENT производится попытка установления соединения
SYN_REC соединение устанавливается
FIN_WAIT1 соединение прерывается
CLOSED соединение прервано
LISTEN режим ожидания соединения с удаленной машиной
UNKNOWN состояние неизвестно

                     

Гнезда домена UNIX

Поле Описание
Proto Протокол, используемый для данного гнезда (обычно unix)
RefCnt Количество процессов, обслуживаемых гнездом на текущий момент
Флаг  
Туре Тип доступа к гнезду
State Состояние гнезда
FREE гнездо не используется
LISTENING ожидание соединения
UNCONNECTED соединения нет
CONNECTING производится попытка установления соединения
CONNECTED соединение есть
DISCONNECTING прерывание соединения
Path Путевое имя, используемое процессами для доступа к гнезду

Дав команду netstat с опцией -r, можно вывести на экран таблицу маршрутизации, а опция -i позволяет получить информацию об использовании различных сетевых интерфейсов. Содержание полей разъясняется в следующей ниже таблице.

 

# netstat -i

Kernel Interface table

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags

lo   2000  0     0     0      0      0     58     0      0     0     BLRU

 

MTU Максимальное число байтов в пакете
RX-OK Пакеты, принятые без ошибок
RX-ERR Пакеты, принятые с ошибками
RX-DRP Пропавшие пакеты
RX-OVR Ошибки из-за превышения скорости
ТХ-ОК Пакеты, переданные без ошибок
TX-ERR Пакеты, переданные с ошибками
TX-DRP Пакеты, потерянные при передаче
TX-OVR Пакеты, которые не смогли передать
Flags Характеристики интерфейса
А принимает пакеты в случае многоадресной передачи
В принимает широковещательные пакеты
D отладка включена
L закольцовывающий интерфейс
М изменяется динамически (переадресация)
N без обработки завершителей пакетов
О протокол преобразования адресов выключен
Р интерфейс "точка-точка"
R интерфейс работает
U интерфейс активизирован

Служба доменных имен (DNS)

Каждый компьютер, подключенный к сети, работающей по протоколам TCP/IP (например, к Internet), идентифицируется своим IP-адресом. IP-адрес представляет собой комбинацию четырех чисел, определяющих конкретную сеть и конкретный хост-компьютер в этой сети. IP-адреса очень трудно запоминать, поэтому для идентификации хост-компьютера вместо его IP-адреса можно пользоваться доменным именем. Доменное имя состоит из двух частей - хост-имени и имени домена. Хост-имя - это собственно имя компьютера, а домен обозначает сеть, частью которой этот компьютер является. Домены, используемые в США, обычно имеют расшире­ния, обозначающие тип сети. Например, для учебных заведений используется расширение .edu, а для коммерческих организаций - расширение .com. Международные домены обычно имеют расширения, которые обозначают страну, в которой они расположены, например .du для Германии и .аu для Австралии. Комбинация хост-имени, имени домена и расширения представляет собой уникальное имя, по которому можно обращаться к компьютеру. Домен, в свою очередь, иногда разбивается на поддомены.

Как вы знаете, компьютер в сети можно идентифицировать только по его IP-адресу, даже если он имеет доменное имя. Обратиться к компьютеру в сети по доменному имени можно, но это предполагает поиск соответствую­щего IP-адреса в базе данных. Сеть использует для доступа к компьютеру не доменное имя, а IP-адрес. До появления очень больших сетей с протоколами TCP/IP, в частности Internet, каждый компьютер сети мог вести файл с перечнем доменных имен и IP-адресов всех компьютеров, включенных в эту сеть. В случае обращения по доменному имени компьютер искал его в этом файле и находил соответствующий IP-адрес. Так можно поступать и сейчас в отношении удаленных систем, соединения с которыми устанавливаются чаще всего.

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

Запросы на серверы имен посылают особые программы, которые называют определителями (resolver). Определитель - это программа, предназна­ченная для получения адресов с серверов имен. Чтобы пользоваться у себя в системе доменными именами, вам придется конфигурировать собственный определитель. Конфигурация локального определителя задается файлами /etc/host.conf и /etc/resolv.conf.

Файл host.conf

В файле host.conf содержатся опции программы-определителя (см. следующую таблицу). Каждая опция может иметь несколько полей, отделенных друг от друга пробелами или знаками табуляции. Для ввода комментария в начале строки нужно ставить знак #. Опции указывают определителю, каким сервисом пользоваться. Важное значение имеет порядок следования опций. Определитель начинает обработку с первой из указанных опций и переходит по очереди к следующим. Файл host.conf находится в каталоге /etc вместе с другими файлами конфигурации.

 

Опция Описание
order Задает последовательность методов преобразования имен
hosts Проверяется наличие имени в локальном файле /etc/host
bind Запрашивается адрес у сервера имен DNS
nis Для получения адреса используется база данных центра сетевой информации (NIS)
alert Проверяет наличие в локальной системе адресов удаленных узлов, пытающихся получить к ней доступ; устанавливается и отменяется ключевыми словами on и off
nospoof Подтверждает правильность адресов удаленных узлов, пытающихся получить доступ к локальной системе
trim Удаляет имя домена из полного имени и проверяет наличие только хост-имени. Позволяет использовать вместо IP-адреса не полное имя хост.домен.расширение, а просто хост-имя, указанное в файле hosts.
multi Позволяет хост-машине иметь несколько IP-адресов в локальном файле hosts.Включается и выключается ключевыми словами on и off

В следующем примере, где представлен файл host.conf, опция order дает программе-определителю указание искать имена в локальном файле /etc/ hosts, а в случае неудачи направлять запрос на сервер имен. Не допускается использование нескольких адресов системы.

 

/etc/host.conf

# host.conf file

# Lookup names in host file and then check DNS

order bind host

# There are no multiple addresses multi off

 

Файл /etc/resolv.conf

Для того чтобы программа-определитель могла выполнять свою задачу, ей должен быть предоставлен доступ к серверам доменных имен. В файле resolv.conf содержатся адреса серверов имен, к которым имеет доступ данная система. В этом файле можно создавать три типа записей, каждая из которых предваряется одним из трех ключевых слов: domain, nameserver, search. В записи domain вводится доменное имя локальной системы. В записи search приводится список доменов на тот случай, если задается только хост-имя. Если к какой-либо системе пользователь обращается часто, он может ввести имя ее домена в запись search, а затем использовать в качестве адреса только хост-имя. Определитель попытается найти полное доменное имя по имени домена, указанному в записи search.

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

Ниже приведен пример файла resolv.conf. Домен хост-компьютера - berkeley.edu. IP-адреса серверов имен этого домена указаны в записях name-server. Запись search позволяет использовать в качестве адреса только хост-имя для компьютеров в домене unc.edu. Например, чтобы обратиться к системе sunsite.unc.edu, пользователь должен ввести в качестве адреса только хост-имя, sunsite.

 

/etc/resolv.conf

# resolv.conf file

domain berkeley.edu

search unc.edu

nameserver 204.199.87.2

nameserver 204.199.77.2

 

Организация собственного сервера имен: демон named

Если, будучи администратором сети, вы решили организовать в ней сервер имен, то можно конфигурировать на работу в качестве такого сервера любую Linux-систему. Для этого необходимо запустить демон named. Этот демон запускается одновременно с системой и ожидает запросов о доменных именах. Демон named пользуется несколькими файлами конфигурации, которые позволяют ему овечать на запросы. В файле name.boot указывается домен, который обслуживает данный сервер, и имя каталога, предназначенного для его рабочих файлов. В файле named.hosts хранится информация об этом домене. Она состоит из записей, содержащих сведения о хост-компьютерах, находящихся в данном домене. В этих записях используется весьма специфический формат, с кодами в соответствующих полях. Файл named.rev содержит данные о соответствии между IP-адресами и хост-именами. Файл named.ca организует кэширование для сервера имен. Процесс организации собственного сервера имен может быть довольно сложным. Следует обратиться к документам HOW TO, странице диалогового руководства по программе named и литературе по администрированию сети, включающей в свой состав Linux-системы.

 
Rambler's Top100   Яндекс цитирования
Hosted by uCoz