Сетевой стек и протоколы TCP/IP

Настройка стека протоколов TCP/IP

Статья включает:

Обзор протоколов TCP/IP
Клиенты и серверы
Хосты и шлюзы
Серверы имен
Маршрутизация
Программные компоненты сети TCP/IP
Запуск интернет-серверов
Запуск нескольких экземпляров стека TCP/IP
Динамически назначаемые параметры TCP/IP
Перенаправление (forwarding) IP пакетов между сетевыми интерфейсами
Использование протокола PPPoE
Установка сеанса PPPoE
Запуск соединения "точка-точка" через сеанс PPPoE
Использование протокола DHCP
Использование протокола AutoIP
Устранение неполадок
Работают ли менеджер io-pkt-* и драйверы?
Какова информация о серверах имен?
Как имена хостов связаны с IP-адресами?
Как получить сведения о состоянии сети?
Как убедиться в том, что локальный хост подключен к другим хостам?
Как отобразить информацию о контроллере интерфейса?

Обзор протоколов TCP/IP

Термин "TCP/IP" обозначает два разных протокола — TCP и IP. Поскольку эти протоколы обычно используются совместно, понятие "TCP/IP" стало стандартным в современном Интернете. В сущности, оно характеризует сетевые средства связи, в которых данные передаются по IP-сетям с помощью протокола TCP.

Эта глава включает в себя сведения о том, как настроить протокол TCP/IP в сети на основе ЗОСРВ «Нейтрино». Кроме того, она содержит информацию о разрешении неполадок и другие подробности, которые важны с точки зрения системного администрирования. Сеть TCP/IP на основе ЗОСРВ «Нейтрино» обеспечивает доступ к ресурсам, которые расположены на любом удаленном компьютере, поддерживающем стек протоколов TCP/IP.

Клиенты и серверы

Существуют два типа TCP/IP-хостов: клиенты и серверы. Клиент запрашивает службу TCP/IP, а сервер предоставляет ее. При планировании сети необходимо решить, какие хосты будут серверами, а какие – клиентами.

Например, компьютер, который посылает запросы на соединение через протокол telnet, должен быть настроен как клиент, а компьютер, который принимает эти запросы – как сервер.

Хосты и шлюзы

В терминологии протокола TCP/IP компьютеры, которые доступны по сети, называются хостами (host) или шлюзами (gateway).

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


Note: Для того чтобы воспользоваться протоколом TCP/IP, необходимо знать IP-адрес локального хоста и IP-адрес хоста, к которому требуется подключиться. Обычно обращение к удаленному хосту осуществляется по текстовому имени, которое разрешается в IP-адрес с помощью сервера имен.

Серверы имен

Сервер имен (nameserver) представляет собой базу данных, которая содержит имена и IP-адреса хостов. Доступ к TCP/IP- и интернет-хостам обычно осуществляется через текстовое имя (например, www.kpda.ru) и механизм, который преобразует имя в IP-адрес (например, 209.226.137.1).

Самый простой способ создать такую привязку — воспользоваться таблицей в файле /etc/hosts. Этот метод эффективен в сетях небольшого и среднего масштаба. Если сеть включает в себя много хостов или не является внутренней, то необходимо использовать сервер имен (например, для подключения к поставщику услуг Интернета).

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

Для того чтобы сконфигурировать сеть и задать серверы имен, можно воспользоваться инструментом настройки протокола TCP/IP и коммутируемых соединений оконного окружения Photon под названием phlip. Утилита phlip присваивает значение конфигурационной строке _CS_RESOLVE. Эту конфигурационную строку можно также задавать вручную. Если строка _CS_RESOLVE существует, то она всегда используется для поиска сервера имен вместо файла /etc/resolv.conf.

Более подробные сведения о поиске имен хостов и серверов имен в TCP/IP-сетях см. в разделах /etc/hosts и /etc/resolv.conf.


Note: Если сервер имен не отвечает, то существует таймаут по 1,5 минуты на каждый сервер. Этот таймаут не может быть изменен, но многие утилиты TCP/IP имеют опцию -n, которую можно использовать, что бы избежать поиска имени.

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

Маршрутизация определяет, как пакет передается адресату. Существуют следующие категории маршрутизации.

минимальная маршрутизация.
Хост устанавливает соединения только с теми хостами, которые находятся в его сети. Например, минимальная маршрутизация используется в изолированной сети.
статическая маршрутизация.
Если сеть включает в себя небольшое и постоянное число шлюзов, то можно настроить и сохранить таблицы маршрутизации протокола TCP/IP вручную с помощью команды route.

Эта конфигурация используется очень часто. Если хост имеет доступ к Интернету, то он обычно добавляет один статический маршрут, который называется маршрутом по умолчанию (default route). Этот маршрут направляет все TCP/IP-пакеты, которые отправляются данным хостом и не адресованы какому-либо хосту локальной сети, на шлюз, который обеспечивает доступ к Интернету.
динамическая маршрутизация.
Если в сети существует более одного пути к одному и тому же хосту, то, возможно, требуется использовать динамическую маршрутизацию. При динамической маршрутизации информация об изменении состояния сети распространяется с помощью протоколов маршрутизации. Если необходимо реагировать на эти изменения, то следует запустить утилиту routed, которая реализует протоколы RIP (Routing Information Protocol, протокол маршрутной информации) и RIPv2.

Маршрутизацию и протоколы маршрутизации часто путают друг с другом. Маршрутизация в стеке TCP/IP определяется с помощью таблиц маршрутизации, а протоколы маршрутизации позволяют изменять эти таблицы.

Программные компоненты сети TCP/IP

Для использования протокола TCP/IP необходимы следующие программные компоненты (рис. 13.1):

13_1.png
Рисунок 1. Компоненты протокола TCP/IP в операционной системе ЗОСРВ «Нейтрино»

io-pkt-*
менеджер, который обеспечивает поддержку динамически загружаемых сетевых модулей. Он включает полнофункциональный стек TCP/IP основанный на коде base.io-net операционной системы NetBSD;
сетевые драйверы (devn-*, devnp-*)
менеджеры, которые реализуют интерфейс с оборудованием.

Параметры конфигурации задаются с помощью утилит ifconfig и route.

Если используется протокол динамического конфигурирования хостов (Dynamic Host Configuration Protocol, DHCP), то, независимо от версии стека TCP/IP, можно воспользоваться утилитой dhcp.client для того, чтобы автоматически задать конфигурационные параметры, которые предоставляет DHCP-сервер.


Note: Программа распознавания устройств автоматически запускает менеджер io-pkt-* при загрузке операционной системы, а затем загружает полнофункциональный стек TCP/IP и запускает драйверы обнаруженных устройств. Если при загрузке требуется использовать компактный стек или задавать какие-либо параметры (например, включать протокол IPsec), то необходимо отредактировать файлы распознавания устройств. Более подробные сведения и пример Распознавание устройств.

Стек TCP/IP, основан на стеке TCP/IP операционной системы NetBSD и поддерживает схожие с ним возможности. Если для конфигурирования полнофункционального стека не используется утилита phlip (инструмент настройки протокола TCP/IP и коммутируемых соединений оконного окружения Photon), то необходимо воспользоваться утилитами ifconfig и route, как показано далее, поскольку конфигурировать полнофункциональный стек с помощью командно-строковых аргументов по аналогии с компактным стеком нельзя.

Для задания IP-адреса интерфейса следует воспользоваться утилитой ifconfig. Чтобы назначить сетевому интерфейсу IP-адрес 10.0.0.100, необходимо ввести команду:

ifconfig if_name 10.0.0.100

где if_name есть имя интерфейса, которое определяет и использует сетевой драйвер.

Если требуется также указать шлюз, следует ввести команду route:

route add default 10.0.0.1

Эта команда устанавливает IP-адрес шлюза 10.0.0.1.

Чтобы затем просмотреть сетевую конфигурацию, следует воспользоваться командой netstat (команда netstat -in отображает информацию о сетевых интерфейсах):

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll lo0 32976 <Link> 0 0 0 0 0 lo0 32976 127 127.0.0.1 0 0 0 0 0 en0 1500 <Link> 00:50:da:c8:61:92 21 0 2 0 0 en0 1500 10 10.0.0.100 21 0 2 0 0

Чтобы отобразить информацию о таблице маршрутизации в полном стеке, следует воспользоваться командой netstat -rn. Ее результат выглядит так:

Routing tables Internet: Destination Gateway Flags Refs Use Mtu Interface default 10.0.0.1 UGS 0 0 - en0 10 10.0.0.100 U 1 0 - en0 10.0.0.100 10.0.0.100 UH 0 0 - lo0 127.0.0.1 127.0.0.1 UH 0 0 - lo0

Эта таблица показывает, что маршрут по умолчанию задан и его IP-адрес равен 10.0.0.1.

Запуск интернет-серверов

Если хост является сервером, то он запускает соответствующий сервис для обслуживания клиентских запросов. Сервер TCP/IP обычно запускает сервис inetd, который также называют "суперсервером Интернета". Сервис inetd можно запустить из файла rc.local (см. описание файла /etc/rc.d/rc.sysinit в разделе Управление запуском ЗОСРВ «Нейтрино»).


Caution: Запуск сервиса inetd дает внешним пользователям возможность подключаться к локальному компьютеру, поэтому его ненадлежащая настройка способна вызвать проблемы с безопасностью.

В сети TCP/IP сервис inetd ожидает соединений через порты со стандартными номерами, которые указаны в файле /etc/inetd.conf. После получения запроса утилита inetd запускает соответствующий серверный сервис. Например, если клиент запрашивает удаленное подключение к хосту с помощью утилиты telnet, то для обслуживания этого запроса сервер inetd запускает сервис удаленного подключения telnetd. В большинстве случаев клиентские запросы обслуживаются таким способом.

Сервисы, которые может запускать утилита inetd, задаются в конфигурационном файле суперсервера /etc/inetd.conf. Версия этого файла, которая входит в дистрибутив ЗОСРВ «Нейтрино», содержит все сервисы TCP/IP, имеющиеся в дистрибутиве, а также некоторые нестандартные службы утилиты pidin. Редактировать файл /etc/inetd.conf необходимо лишь тогда, когда требуется добавить или удалить определения сервисов. Утилита inetd считывает конфигурационную информацию из этого файла при запуске. Файл /etc/inetd.conf включает в себя следующие часто используемые сервисы.

ftpd
передача файлов;
telnetd
удаленный терминальный сеанс;
tftpd
простейший протокол передачи файлов, который разработан Управлением перспективных исследовательских проектов (DARPA).


Note:
  • Сервисы, которые перечислены в этом файле, не следует запускать вручную; они должны запускаться сервером inetd.

Существуют и другие резидентные сервисы, которые могут работать независимо от сервера inetd:

bootpd
сервер протокола интернет-загрузки;
dhcpd
сервис протокола динамического конфигурирования хостов;
lpd
сервис построчного принтера (см. Печать);
mrouted
сервис протокола дистанционной векторной групповой многоадресной маршрутизации (Distance-Vector Multicast Routing Protocol, DVMRP);
named
сервер доменных имен Интернета;
ntpd
сервис сетевого протокола времени (Network Time Protocol);
routed
сервис протоколов маршрутизации RIP и RIPv2;
rwhod
база данных состояний системы;
slinger
компактный Web-сервер;
snmpd
SNMP-агент;
nfsd
NFS-сервер.

Эти сервисы прослушивают свои TCP-порты и управляют собственными транзакциями. Они обычно запускаются при загрузке компьютера и затем работают постоянно. Тем не менее, для экономии системных ресурсов можно запускать сервис bootpd с помощью сервера inetd только при получении запроса на загрузку.

Запуск нескольких экземпляров стека TCP/IP

В некоторых ситуациях необходимо запускать несколько экземпляров стека протоколов TCP/IP.

  1. первый экземпляр стека TCP/IP запускается с помощью вызова утилиты io-pkt-* следующим образом:

    io-pkt-v4 -del900 pci=0x0

  2. второй экземпляр стека TCP/IP запускается с помощью вызова утилиты io-pkt-* следующим образом:

    io-pkt-v4 -i1 -del900 pci=0x1 -ptcpip prefix=/sock2

    Чтобы получить PCI-индексы сетевых плат, можно воспользоваться командой pci -vvv. Если используются различные типы сетевых плат, то указывать PCI-индекс не обязательно.

Параметр -i во втором экземпляре стека TCP/IP указывает утилите io-pkt-v4 зарегистрироваться под префиксом io-pkt1. Параметр prefix указывает на то, что второй стек должен быть зарегистрирован под префиксом /sock2/dev/socket вместо префикса по умолчанию /dev/socket. Приложения, которым необходимо использовать второй стек TCP/IP, должны задать переменную окружения SOCK. Пример:

SOCK=/sock2 telnet 10.59

или

SOCK=/sock2 netstat -in

или

SOCK=/sock2 ifconfig en0 192.168.2.10

Если переменная SOCK не задана, то команда использует первый стек TCP/IP.

Динамически назначаемые параметры TCP/IP

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

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

Операционная система ЗОСРВ «Нейтрино» реализует еще один протокол автоматического конфигурирования под названием AutoIP, который является проектом комитета IETF по автоматической настройке. Этот протокол используется в небольших сетях для назначения хостам IP-адресов, локальных для канала (link-local). Протокол AutoIP самостоятельно определяет IP-адрес, локальный для канала, используя схему согласования с другими хостами и не обращаясь к центральному серверу.

Перенаправление (forwarding) IP пакетов между сетевыми интерфейсами

Рассмотрим фрагмент сети, включающий узел A (2 сетевых инетрфейса) и узел B (1 сетевой интерфейс):

[ Узел A ] [ Узел B ]
<----> [192.168.16.1 192.168.0.1] <----> [192.168.0.22]

Для того, чтобы настроить перенаправление (англ. forwarding) IP-пакетов между сетевыми интерфейсами узла A, необходимо выполнить следующие шаги:

  1. Настроить на сетевых узлах адреса сетевых интерфейсов:

    ifconfig igc0 192.168.16.1/24 ifconfig rt0 192.168.0.1/24

    и

    ifconfig rt0 192.168.0.22/24

  2. В сетевом стеке на узле A следует активировать перенаправление IP-пакетов. Выполнить это можно с помощью опции forward сетевого стека при его запуске:

    io-pkt-ksz -d igc -d rtl8169 -p tcpip forward

    Если же сетевой стек уже запущен, следует воспользоваться утилитой sysctl:

    echo "net.inet.ip.forwarding=1" >> /etc/sysctl.conf sysctl -f /etc/sysctl.conf

    или

    sysctl -w net.inet.ip.forwarding=1


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

  3. Также необходимо настроить маршрутизацию на как узле B:

    route add -net 192.168.16.0 -netmask 255.255.255.0 \ -gateway 192.168.0.1

    так и на узле во внешнем сегменте сети:

    route add -net 192.168.0.0 -netmask 255.255.255.0 \ -gateway 192.168.16.1

Использование протокола PPPoE

Сокращение PPPoE расшифровывается как "Point-to-Point Protocol over Ethernet" (протокол соединения "точка-точка" через среду Ethernet). Этот протокол инкапсулирует данные для передачи через сеть Ethernet с мостовой топологией.

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

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

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

Соединение через протокол PPPoE состоит из клиента и сервера. Клиент и сервер работают с использованием любого интерфейса, который близок к спецификациям Ethernet. Этот интерфейс применяется для выдачи клиентам IP-адресов с привязкой этих IP-адресов к пользователям и, по желанию, к рабочим станциям, вместо аутентификации на основе только рабочей станции. Сервер PPPoE создает соединение "точка-точка" для каждого клиента.

Установка сеанса PPPoE

Для того чтобы создать сеанс PPPoE, следует воспользоваться сервисом pppoed. Модуль io-pkt-* предоставляет службы протокола PPPoE. Сначала необходимо запустить io-pkt-* с подходящим драйвером. Пример:

io-pkt-v6-hc -del900

Затем следует создать сеанс связи с любым сервером с помощью файла /etc/ppp/pppoe-up для того, чтобы запустить сервис pppd:

pppoed

После этого следует создать сеанс связи с сервером, который имеет имя PPPOE_GATEWAY:

pppoed name=PPPOE_GATEWAY

Когда сеанс PPPoE установлен, сервис pppoed использует сервис pppd для создания соединения "точка-точка" через этот сеанс. Сервис pppd получает локальную конфигурацию протокола TCP/IP от сервера (поставщика услуг Интернета).

Запуск соединения "точка-точка" через сеанс PPPoE

Для установления каналов связи "точка-точка" через протокол TCP/IP программе pppoed необходим сервис pppd. При запуске сервиса pppd необходимо воспользоваться несколькими параметрами, которые специфичны для его работы через сеанс PPPoE. Пример файла /etc/ppp/pppoe-up:

#!/bin/sh pppd debug /dev/io-net/ppp_en -ac -pc -detach defaultroute \ require-ns mtu 1492 name username

Для работы сервиса pppd с сервисом pppoed обязательны следующие параметры.

/dev/io-net/ppp_en
устройство, которое создает модуль io-pkt-*;
-ac -pc
обязательные параметры, которые отключают сжатие пакетов;
-detach
параметр, который не позволяет утилите pppd работать в режиме сервиса. Это дает программе pppoed возможность получить информацию о том, что сеанс утилиты pppd завершен. Данный параметр можно опустить, если воспользоваться параметром scriptdetach сервиса pppoed;
mtu 1492
следует задать максимальный размер передаваемых данных, который поддерживается протоколом PPPoE. Этот размер равен разности размера пакета Ethernet и размера служебных данных инкапсуляции протокола PPPoE.

Использование протокола DHCP

Хост TCP/IP использует протокол DHCP (Dynamic Host Configuration Protocol, динамический протокол конфигурирования хостов) для получения своих конфигурационных параметров (IP-адреса, шлюза, серверов имен и т.д.) у DHCP-сервера, который содержит конфигурационные параметры всех хостов сети.

Утилита dhcp.client, которая является DHCP-клиентом операционной системы ЗОСРВ «Нейтрино», получает эти параметры и автоматически конфигурирует хост для использования Интернета или локальной сети.

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

Использование протокола AutoIP

AutoIP представляет собой модуль, который необходимо смонтировать в менеджер io-pkt-*. Этот модуль используется для быстрого конфигурирования хостов в небольшой сети. Протокол AutoIP назначает своему интерфейсу IP-адрес, локальный для канала, из сети 169.254/16, если этот адрес не используется никаким другим хостом. Преимущество протокола AutoIP состоит в том, что необходимость в центральном конфигурационном сервере отсутствует. Хосты самостоятельно определяют, какие IP-адреса свободны для использования, и отслеживают возникновение конфликтов.

Обычно хост использует протоколы DHCP и AutoIP одновременно. Когда хост впервые подключается к сети, он не располагает информацией о наличии в сети DHCP-сервера. Если запустить программу dhcp.client с параметром -a (использовать IP-адрес как псевдоним), то интерфейсу одновременно присваивается IP-адрес, локальный для канала, и IP-адрес, который выдается протоколом DHCP. Если DHCP-сервер отсутствует, то наступает тайм-аут, в результате которого программа dhcp.client завершается и оставляет активным IP-адрес, локальный для канала. Если позднее DHCP-сервер становится доступным, то утилиту dhcp.client можно перезапустить и применить IP-адрес, который выдает протокол DHCP, без помех для TCP/IP-соединений, использующих IP-адрес, локальный для канала.

Одновременная активность адреса, который назначается протоколом DHCP, и IP-адреса, локального для канала, обеспечивает связь с хостами, которые имеют как IP-адреса, локальные для канала, так и обычные IP-адреса. Более подробные сведения см. в разделах о lsm-autoip.so и dhcp.client.

Устранение неполадок

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

Работают ли менеджер io-pkt-* и драйверы?

Как было сказано ранее, менеджер io-pkt-* является связующим звеном между драйверами и протоколами. Чтобы проверить наличие неполадок в нем, следует воспользоваться командой pidin:

$ pidin -P io-pkt-v4 mem

Затем надо выполнить поиск разделяемого объекта протокола TCP/IP в выводе этой команды:

pid tid name prio STATE code data stack 126996 1 sbin/io-pkt-v4-hc 21o SIGWAITINFO 872K 904K 8192(516K)* 126996 2 sbin/io-pkt-v4-hc 21o RECEIVE 872K 904K 8192(132K) 126996 3 sbin/io-pkt-v4-hc 21r RECEIVE 872K 904K 4096(132K) 126996 4 sbin/io-pkt-v4-hc 21o RECEIVE 872K 904K 4096(132K) 126996 5 sbin/io-pkt-v4-hc 20o RECEIVE 872K 904K 4096(132K) 126996 6 sbin/io-pkt-v4-hc 9o RECEIVE 872K 904K 4096(132K) libc.so.3 @b0300000 444K 16K devnp-shim.so @b8200000 28K 8192 devn-epic.so @b8209000 40K 4096 lsm-qnet.so @b8214000 168K 36K

Вывод должен содержать разделяемый объект сетевого драйвера (в данном случае это драйвер devnp-shim.so, который позволяет io-pkt-* использовать унаследованный из устаревшего стека io-net драйвер devn-epic.so).

Какова информация о серверах имен?

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

getconf _CS_RESOLVE

Если конфигурационная строка не используется, то надо ввести команду:

cat /etc/resolv.conf

Как имена хостов связаны с IP-адресами?

Файл /etc/hosts содержит информацию, которая относится к известным хостам сети. Каждому хосту должна соответствовать одна строка, которая включает в себя следующие данные:

интернет_адрес официальное_имя_хоста псевдонимы

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

cat /etc/hosts

Как получить сведения о состоянии сети?

Сведения о состоянии сети можно получить с помощью утилиты netstat:

netstat -in
перечисляет интерфейсы, в том числе их MAC- и IP-адреса;
netstat -rn
отображает сетевые таблицы маршрутизации, которые определяют, как стек может связаться с другим хостом. Если путь к другому хосту не существует, то отображается сообщение об ошибке "no route to host";
netstat -an
отображает информацию о входящих и исходящих TCP/IP-соединениях локальной системы. Эта информация включает в себя состояние соединения или количество данных, которые ожидают передачи по соединению. Кроме того, команда netstat -an отображает IP-адрес и порт локальной и удаленной стороны соединения.

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

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

ping isp.com

Если подключение существует, утилита ping отображает приблизительно следующее:

PING isp.com (10.0.0.1): 56 data bytes 64 bytes from 10.0.0.1: icmp seq=0 ttl=255 time=0 ms 64 bytes from 10.0.0.1: icmp seq=1 ttl=255 time=0 ms 64 bytes from 10.0.0.1: icmp seq=2 ttl=255 time=0 ms 64 bytes from 10.0.0.1: icmp seq=3 ttl=255 time=0 ms 64 bytes from 10.0.0.1: icmp seq=4 ttl=255 time=0 ms 64 bytes from 10.0.0.1: icmp seq=5 ttl=255 time=0 ms 64 bytes from 10.0.0.1: icmp seq=6 ttl=255 time=0 ms

Это сообщение продолжает выводиться до тех пор, пока утилита ping не завершится, например, с помощью нажатия комбинации клавиш Ctrl + C.

Как отобразить информацию о контроллере интерфейса?

Следует воспользоваться командой nicinfo:

/usr/sbin/nicinfo устройство


Note: Все пользователи, кроме root, должны указывать полный путь к утилите nicinfo.

Эта утилита отображает информацию о соединении заданного сетевого интерфейса или интерфейса /dev/io-net/en0 (если интерфейс не указан). Эта информация включает в себя число переданных и полученных пакетов, коллизий и других ошибок:

3COM (90xC) 10BASE-T/100BASE-TX Ethernet Controller Physical Node ID ................. 000103 E8433F Current Physical Node ID ......... 000103 E8433F Media Rate ....................... 10.00 Mb/s half-duplex UTP MTU .............................. 1514 Lan .............................. 0 I/O Port Range ................... 0xA800 -> 0xA87F Hardware Interrupt ............... 0x7 Promiscuous ...................... Disabled Multicast ........................ Enabled Total Packets Txd OK ............. 1585370 Total Packets Txd Bad ............ 9 Total Packets Rxd OK ............. 11492102 Total Rx Errors .................. 0 Total Bytes Txd .................. 102023380 Total Bytes Rxd .................. 2252658488 Tx Collision Errors .............. 39598 Tx Collisions Errors (aborted) ... 0 Carrier Sense Lost on Tx ......... 0 FIFO Underruns During Tx ......... 0 Tx deferred ...................... 99673 Out of Window Collisions ......... 0 FIFO Overruns During Rx .......... 0 Alignment errors ................. 0 CRC errors ....................... 0




Предыдущий раздел: перейти