1. Конфигурирование сетевого интерфейса. В данной лабораторной работе сеть разделена не две подсети. Адрес первой сети – 192.168.26.0, адрес второй сети – 192.168.26.128. Сетевая маска в данном случае будет 255.255.255.128. Рабочая схема была следующей: 1-я сеть включает компьютеры с 1 по 4 IP - адрес сети 192.168.26.0 Mask 255.255.255.128 Broadcast 192.168.26.127 Сетевой интерфейс eth1 Коммутатор D-LINK Адреса узлов в сети определяются правилом – последний байт по номеру машины (1, 2, 3, 4) 2-я сеть включает в себя компьютеры с 4 по 9 IP – адрес сети 192.168.26.128 Mask 255.255.255.128 Broadcast 192.168.26.255 Сетевой интерфейс eth2 Коммутатор 3COM Адреса узлов в сети определяются правилом – последний байт 200 + N рабочего места (204, 205, 206, 207, 208, 209) 4 компьютер имеет два сетевых интерфейса и является участником обоих сетей. Необходимо командой ifconfig назначить параметры IP-протокола для сетевого интерфейса. Для этого авторизуемся от имени учётной записи суперпользователя root. Настраиваем параметры IP-протокола: [root@5426-3]# ifconfig eth1 192.168.26.3 netmask 255.255.255.128 broadcast 192.168.26.127 Проверим доступность машин в сети по ip-адресам с помощью команды ping, указав: 1) правильный адрес в своей сети [root@5426-3 ~]# ping 192.168.26.4 PING 192.168.26.4 (192.168.26.4) 56(84) bytes of data. 64 bytes from 192.168.26.4: icmp_seq=1 ttl=64 time=1.282 ms 64 bytes from 192.168.26.4: icmp_seq=2 ttl=64 time=0.502 ms 64 bytes from 192.168.26.4: icmp_seq=3 ttl=64 time=0.457 ms 64 bytes from 192.168.26.4: icmp_seq=4 ttl=64 time=0.361 ms 64 bytes from 192.168.26.4: icmp_seq=5 ttl=64 time=0.349 ms 64 bytes from 192.168.26.4: icmp_seq=6 ttl=64 time=0.432 ms 64 bytes from 192.168.26.4: icmp_seq=7 ttl=64 time=0.401 ms --- 192.168.26.204 ping statistics --7 packets transmitted, 7 received, 0% packet loss, time 6001ms rtt min/avg/max/mdev = 0.349/0.940/4.079/1.282 ms 1 Пакеты успешно передаются. 2) неправильный адрес в своей сети [root@5426-3 ~]# ping 192.168.26.30 PING 192.168.26.30 (192.168.26.30) 56(84) bytes of data. From 192.168.26.30 icmp_seq=1 Destination Host Unreachable From 192.168.26.30 icmp_seq=2 Destination Host Unreachable From 192.168.26.30 icmp_seq=3 Destination Host Unreachable From 192.168.26.30 icmp_seq=4 Destination Host Unreachable From 192.168.26.30 icmp_seq=5 Destination Host Unreachable --- 192.168.26.30 ping statistics --5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4341ms Удаленный компьютер не достижим из данной сети. Такой ответ приходит, если маршрутизатор Вашей сети, не может найти куда дальше переслать Ваш запрос. Это означает, что удаленный компьютер с таким IP адресом может и существовать, но маршрутизатор не знает к нему путь. Эта проблема возникает при неправильной настройке протоколов маршрутизации. 3) правильный адрес в другой сети [root@5426-3 ~]# ping 192.168.26.207 connect: Сеть недоступна Это говорит о некорректной настройке нашей системы. Все настройки, сконфигурированные с помощью команды ifconfig не постоянны, то есть при перезагрузке они сбросятся. Поэтому для сохранения настроек нужно либо использовать какую-либо утилиту для сиих целей (например, утилита SystemConfigNetwork), либо отредактировать конфигурационные файлы. Рассмотрим назначение и содержимое следующих конфигурационных файлов: /etc/sysconfig/network /etc/sysconfig/network-scripts/* /etc/rc.d/rc.sysinit /etc/rc.d/rc3.d/* /etc/modules.conf /etc/sysconfig/network /etc/sysconfig/network – это конфигурационный файл, содержащий информацию обо всех сетевых интерфейсах и маршрутизации для данного узла. Файл, использующийся для конфигурирования сети. Общее представление: NETWORKING=answer, где answer это yes или no (Настраивать сеть или нет). FORWARD_IPV4=answer, где answer это yes или no (Выполнять IP маршрутизацию или нет). HOSTNAME=hostname, где hostname это имя вашего сервера. GATEWAY=gwip, где gwip это IP адрес удаленного маршрутизатора (если доступен). GATEWAYDEV=gwdev, где gwdev имя устройства (eth#) через которое вы имеете доступ к удаленному маршрутизатору. 2 Пример 1: NETWORKING=yes FORWARD_IPV4=yes HOSTNAME=5426-3 GATEWAY=0.0.0.0 GATEWAYDEV=eth1 Пример 2: /etc/sysconfig/network-scripts/ В этом каталоге расположены файлы настроек и сценарии для работы с различными типами сетевых устройств и подключений. Например, файл /etc/sysconfig/networkscripts/ifcfg-lo содержит информацию о настройке сетевой Ethernet-карты с интерфейсом lo. Также здесь присутствуют скрипты запуска и останова интерфейсов (ifup-* и ifdown-*) Откроем файл ifcfg-p2p1: Привер DEVICE=eth1 IPADDR=192.168.26.3 NETMASK=255.255.255.127 NETWORK=192.168.26.127 ONBOOT=yes BOOTPROTO=none USERCTL=no Если вы хотите модифицировать ваши сетевые адреса вручную или добавить новое устройство на новом интерфейсе, редактируйте этот файл (ifcfg-ethN), или создайте новый, и внесите в него соответствующие изменения. 3 DEVICE=devicename, где devicename имя физического сетевого устройства. IPADDR=ipaddr, где ipaddr IP адрес. NETMASK=netmask, где netmask сетевая IP маска. NETWORK=network, где network IP адрес сети. BROADCAST=broadcast, где broadcast широковещательный IP адрес. ONBOOT=answer, где answer это yes или no (Будет ли интерфейс активным во время загрузки или нет). BOOTPROTO=proto, где proto одно из: none - не использовать протоколов времени загрузки. bootp - использовать протокол bootp (сейчас pump). dhcp - использовать dhcp протокол. USERCTL=answer, где answer одно из: yes (Не только пользователь root может контролировать это устройство). no (Только пользователь root может контролировать это устройство). В каталоге /etc находится каталог rc.d, содержимое которого непосредственно касается процесса загрузки системы. В этом каталоге находятся следующие файлы: /init.d /rc0.d /rc1.d /rc2.d /rc3.d /rc4.d /rc5.d /rc6.d rc rc.local rc.sysinit Видно, что здесь находится семь каталогов для каждого уровня выполнения, каталог init.d и три исполняемых файла rc, rc.local, rc.sysinit. Подкаталог /init.d содержит по одному скрипту для каждой из служб, установленных в системе. Этот скрипт отвечает за запуск, остановку или перезагрузку соответствующей службы. 4 Файл rc.sysinit предназначен для выполнения начальных действий, необходимых для корректного функционирования операционной системы. В этом скрипте происходит инициализация оборудования, подключение swap-раздела, монтирование и проверка локальных файловых систем. Каталоги /rcX.d играют исключительную роль в процессе загрузки, поскольку они содержат основные скрипты, необходимые для организации процесса загрузки. В каталоге /rcX.d размещаются ссылки на файлы скриптов, находящихся в каталоге /etc/rc.d/init.d. Названия этих ссылок имеют имена, начинающиеся либо с буквы К(kill), либо с буквы S(start), после которой идет двухзначное число и имя соответствующей службы. Файл, начинающийся с буквы S, отвечает за старт соответствующего процесса, а файл, начинающийся с буквы К, отвечает за остановку соответствующего процесса. Цифры, идущие после S или К в именах ссылок, задают порядок запуска скриптов. Файл rc.local вызывается по окончании исполнения файла rc и предназначен для команд, добавляемых администратором для запуска в процессе начальной загрузки. В него рекомендуется помещать дополнительные сервисы или персональные настройки. /etc/rc.d/rc3.d/ Для каждого уровня выполнения присутствует свой каталог, который определяет службы, запускаемые на этом уровне. Такой каталог содержит ссылки на скрипты запуска (runscripts). Данный каталог соответствует уровню выполнения 3 (многопользовательский режим с поддержкой сети). /etc/modules.conf Этот файл содержит список модулей, а также передаваемые им параметры. При загрузке система читает этот файл и загружает указанные в нем модули. Загрузка модулей из файла modules.conf обеспечивается программой modprobe, которая вызывается из сценария инициализации системы /etc/rc.d/rc.sysinit. Во время работы системы мы сами можем загрузить нужный нам модуль. Для этого нужно использовать программу insmod, входящую в состав пакета modutils. Конфигурационный файл для загрузки модулей ядра alias <имя-модуля> <тип-модуля> – указывает псевдоним для устройства install <имя-модуля> <команда> – указывает выполнить заданную команду при загрузке модуля. На самом деле, указанный здесь модуль не загружается (он может и не существовать вовсе), но при выполнении modprobe указанная команда будет выполнена remove <имя-модуля> <команда> – аналогична install, но вызывается при выгрузке модуля include <имя-файла> – включить и обработать заданный файл 5 2. Управление пространством сетевых имён За определение и разрешение символьных имен отвечают сразу несколько файлов: /etc/hostname /etc/networks /etc/hosts /etc/host.allow /etc/host.deny /etc/host.conf /etc/resolv.conf Рассмотрим их назначение: */etc/hostname В данном файле содержится символьное имя локального узла. Это имя обычно также отображается в приглашении bash. Для работы с этим файлом используется команда hostname: /etc/networks Этот файл определяет символические имена сетей. Зададим следующие имена наших подсетей. Формат следующий: на каждой строке в первом слове указывается имя сети и соответствующий сетевой адрес /etc/hosts Данный файл содержит перечень IP адресов и имен хостов, которым они соответствуют. В общем случае /etc/hosts содержит только записи для локальной машины и, возможно, других "важных" машин (таких как сервер имен или шлюз). При включении компьютера, необходимо знать карту соответствия IP адресов и имен машин, пока DNS сервер не отвечает. Перевод символьного имени в адрес для других машин сети обеспечивает сервер имен. Ниже приводится пример нашего файла "/etc/hosts": 127.0.0.1 192.168.26.1 192.168.26.2 192.168.26.3 192.168.26.4 192.168.26.205 192.168.26.206 192.168.26.207 192.168.26.208 localhost.localdomain localhost localhost 5426-1 5426-2 5426-3 5426-4 5426-5 5426-6 5426-7 5426-8 6 192.168.26.209 5426-9 Строка, задающая адрес localhost, должна присутствовать обязательно, иначе возможны разного рода ошибки. В левой колонке записываются IP адреса, а в правой соответствующие им имена машин. Пропингуем Отображение имен настроено корректно. При попытке пинговки по символьному имени, не указанному в файле /etc/hosts, сразу выдаётся, что неизвестен такой хост. /etc/host.allow и /etc/host.deny Файлы /etc/hosts.allow и /etc/hosts.deny содержат разрешение входов и отрицание доступа соответственно, к некоторым услугам и хостам. Просматриваются сначала hosts.allow, затем hosts.deny. Если запись была найдена в hosts.allow, доступ предоставляется независимо от hosts.deny. Если соответствие найдено в hosts.deny, то запрос будет отклонен и связь разорвана. Если никакое соответствие не найдено вообще, запрос будет принят. Записи в этих файлах имеют следующий формат: servicelist: hostlist [:shellcmd] servicelist – службы из файла /etc/services или ключевое слово ALL hostlist – IP-адреса, имена хостов или ключевые слова ALL, LOCAL, UNKNOWN. ALL – любой хост; LOCAL – хосты, не имеющие точки в названии; UNKNOWN – хосты, имя или адрес которых не удалось найти. shellcmd – может содержать команду shell, которая выполнится, когда запись файла совпадет с запросом. В нашем случае оставим данные файлы пустыми. /etc/host.conf Файл /etc/host.conf содержит настройки для библиотеки резолвера (resolver). Резолвером называется механизм преобразования имен узлов (обычно компьютеров) сети в IP адреса и обратно (так называемое прямое и обратное преобразование). Данный файл должен содержать в каждой строке одно ключевое слово, за которым следует информация о соответствующей этому ключевому слову настройке: order – данное ключевое слово задает метод, с помощью которого будет осуществляться поиск адреса узла. За этим словом должно следовать одно или несколько названий методов, разделенных запятыми: 1)bind 2)hosts 3)nis trim – данное ключевое слово может быть использовано больше одного раза. Каждый раз, когда указывается это слово, за ним должен следовать список 7 доменов, начинающихся с точки и разделённых двоеточем (`:'), точкой с запятой (`;') или запятой (`,'). Эта настройка говорит библиотеке resolv+ отсекать указанное имя домена из конца всех имен узлов, которые преобразуются в адреса через DNS. Этот параметр задумывался для использования с локальными узлами и доменами. Стоит отметить, что отсечение не будет выполняться для имен узлов, обрабатываемых через NIS или файл /etc/hosts. multi – допустимыми для этого ключевого слова являются значения on и off. Если задано on, то библиотека resolv+ будет возвращать все допустимые адреса узла, которые встретились в файле /etc/hosts, а не только первый из них. По умолчанию стоит off, так как в противном случае возможно существенное снижение производительности на сайтах с большими файлами узлов. nospoof – допустимыми для этого ключевого слова являются значения on и off. Если задано on, библиотека resolv+ будет пытаться предотвращать обман по именам узлов для усиления безопасности rlogin и rsh. Это работает так: после выполнения поиска адреса узла по имени, резолвер будет выполнять поиск имени узла по адресу. Если эти два имени не совпадут, то результат операции будет признан ошибочным. По умолчанию значение установлено в off. spoofalert – допустимыми для этого ключевого слова являются значения on и off. Если значение данного ключевого слова установлено в on и при этом также установлено nospoof, то резолвер будет записывать в системный журнал предупреждения об ошибках через syslog. По умолчанию значение этого ключевого слова установлено в off. spoof – допустимыми для этого ключевого слова являются значения off, nowarn и warn: 1)Если эта опция установлена в off, то обманные адреса допускаются, и в системный журнал через syslog не будет попадать никаких предупреждающих сообщений. 2)Если эта опция установлена в warn, то библиотека resolv+ будет пытаться предотвращать обман по именам узлов для усиления безопасности, и в системный журнал через syslog будут записываться предупреждения об ошибках. 3)Если эта опция установлена в nowarn, то библиотека resolv+ будет пытаться предотвращать обман по именам узлов для усиления безопасности, но предупреждающие сообщения генерироваться не будут. 4)Установка этой опции в значение, отличное от вышеописанных, будет считаться установкой в значение nowarn. reorder – допустимыми для этого ключевого слова являются значения on и off. Если задано on, то резолвер будет пытаться перегруппировать адреса узлов так, чтобы локальные адреса (т. е. адреса в той же подсети) были выданы первыми, когда выполняется вызов gethostbyname(3). Перегруппировка выполняется для всех методов поиска. По умолчанию установлено значение off. Эти строки указывают библиотекам разрешения вначале искать в файле /etc/hosts требуемый домен, а потом обратиться к серверу имен (если таковой имеется). Строка multi допускает множество IP адресов для одного имени компьютера в /etc/hosts. /etc/resolv.conf Данный файл является конфигурационным файлом преобразователя. Он обеспечивает доступ к DNS для разрешения адресов Internet. Строка nameserver указывает системы, на 8 которые локальная система должна посылать запросы для разрешения имён хостов в IPадреса и наоборот 3. Формирование подсетей и маршрутизация. 3.1 Получение таблицы маршрутизации. Маршруты содержатся в таблице маршрутизации, которая хранится файле /proc/net/route. Чтобы вывести ее на дисплей, нужно дать команду route без аргументов. Каждая запись таблицы маршрутизации состоит из нескольких полей содержащих такую информацию, как, например, конечный пункт маршрута и тип используемого интерфейса. Поля таблицы маршрутизации перечислены в следующей таблице. Поле Описание Destination IP-адрес конечного пункта маршрута IP-адрес или хост-имя шлюза, используемого на данном маршруте; символ * Gateway говорит о том, что шлюз в сети не используется Genmask Маска сети маршрута Тип или состояние маршрута: U=активный, Н=хост, С=шлюз, Flags D=динамический, М=модифицированный TCP MSS (Maximum segment size) для маршрута - максимально количество MSS данных, которое может быть передано за один раз Metric "Стоимость" маршрута (количество переходов до шлюза) Ref Количество использований маршрута на текущий момент Размер окна приема. Наибольшее количество данных, которое принимающая Window сторона может принять Use Количество пакетов, пересланных по данному маршруту Iface Тип интерфейса, используемого на данном маршруте В таблице маршрутизации должна содержаться по крайней мере одна запись, предназначенная для закольцовывающего интерфейса, иначе это интерфейс придется конфигурировать командойroute. IP-адрес интерфейс нужно ввести в таблицу до того, как этот интерфейс будет задействован. Адрес добавляется с помощью команды route с опцией add. route add адрес В следующем примере показано, как в таблицу маршрутизации вводится IP-адрес закольцовывающего интерфейса. # route add 127.0.0.1 Опция add имеет несколько спецификаторов (они указаны на страницах диалогового руководства, посвященных команде route). Если вы добавляете конкретный статический маршрут, то эти спецификаторы понадобятся для ввода таких параметров, как маска сети, шлюз, интерфейс и адрес пункта назначения. Если же интерфейс уже конфигурирован командой ifconfig, то система может получить основную информацию из данных конфигурации интерфейса. Например, чтобы задать маршрут для Ethernet-соединения, которое 9 уже конфигурировано командой ifconfig, нужно лишь ввести спецификатор net и IP-адрес пункта назначения. С помощью этого адреса ifconfig находит соответствующий интерфейс и на основании этой информации организует маршрут. Задание маршрута для интерфейса Ethernet иллюстрируется следующим примером. # route add -net 204.32.168.0 Если система подключена к сети, в таблице маршрутизации должна быть сделана по крайней мере одна запись, задающая маршрут по умолчанию. По этому маршруту пакет посылается в том случае, если все остальные маршруты не могут привести его в пункт назначения. Пункт назначения для такого маршрута задается ключевым словом default. Если нужно удалить один из существующих маршрутов, следует вызвать команду ifconfig с опцией del и IP-адресом маршрута, например: # route del -net 204.32.168.0 Вызовем команду root без параметров, чтобы получить текущую таблицу (созданную операционной системой автоматически): [root@5426-6 root]# route Kernel IP routing table Destination Gateway Net1 * 127.0.0.0 * Genmask 255.255.255.0 255.0.0.0 Flags Metric Ref U 0 0 U 0 0 Use Iface 0 eth1 0 lo По полученным данным видно, что в таблице находится два маршрута, где Destination адрес назначения (адрес сети), Gateway – адрес шлюза (ip-адрес шлюза; *-шлюз не задействован), Genmask – маска маршрута, Falgs – флаги U означает, что сетевой интерфейс работает (up), столбец Metric показывает метрику, Ref – количество ссылок, Use - количество отправленных пакетов, сетевой интерфейс, который соответствует данному маршруту. Маршруты, созданные по умолчанию: 1. Сеть net1 (192.168.26.0) доступна непосредственно через интерфейс eth1 — к этой сети принадлежит наш узел 5426-1, 5426-2, 5426-3, 5426-4; 2. Присутствует также обычный маршрут обратной петли, связывающий всю сеть 127.0.0.0/8 с интерфейсом lo. Выводимые флаги описывают некоторые свойства маршрутов, например: 1. U — соответствующий интерфейс «поднят» (up); 2. H — целевой адрес является адресом хоста; 3. G — маршрут проходит через заданный шлюз; 4. D — динамический маршрут и т.п; 5. M — изменен демоном маршрутизации и т.п. В нашем случае все сети назначения доступны непосредственно и созданы статическими, поэтому имеют только флаг U. 10 Метрика показывает стоимость маршрута и используется при выборе маршрута, если доступно несколько альтернатив. Когда ядру нужно определить, как и куда переправить пакет с определенным адресом назначения, оно смотрит на таблицу маршрутизации. При сравнении с каждой записью на адрес назначения в пакете накладывается маска маршрута (выполняется побитовая конъюнкция). Если результат совпадает с адресом назначения маршрута, выбирается этот маршрут. При наличии нескольких подходящих записей обычно выбирается маршрут с наиболее длинной маской и малой метрикой. Добавим статический маршрут соседней сети, выполнив команду [root@5426-6 root]# route add –net2 192.168.26.128 netmask 255.255.255.128 gateway 192.168.26.204 Указали при ее выполнении IP-адрес сети, ее маску и шлюз своей сети, через который нам будет доступна соседняя сеть. Снова посмотрим таблицу маршрутизации, там должна была появиться только что добавленная сеть: [root@5426-6 root]# route Kernel IP routing table Destination Gateway net2 192.168.26.204 net1 * 127.0.0.0 * Genmask 255.255.255.128 255.255.255.128 255.0.0.0 Flags U UG U Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface eth1 eth0 lo Как видно из полученных данных, в таблице маршрутизации добавилась сеть net1, с адресом шлюза, и видно, что в столбце Flags появился флаг G, что означает, как уже было сказано ранее, что маршрут проходит через заданный шлюз. После этого сеть net1 должна быть достижимой. Проверим это: [root@5426-3 root]# ping 192.168.26.205 PING 192.168.26.205 (192.168.26.205) 56(84) bytes of data. --- 192.168.26.205 ping statistics --3 packets transmitted, 0 received, 100% packet loss, time 2014ms В отличие от прежних попыток, производимых нами ранее, в этот раз система попыталась отправить запросы ping (ранее нам выдавалось сообщение «сеть недоступна»), но ни один из них не достиг цели. Этоя объясняется тем, что для корректной работы требуется настройка маршрутизатора: 1. В его таблице маршрутизации должны быть описаны пути к обеим сетям. Маршрутизатор в нашем случае имеет два сетевых адаптера. При назначении им адресов система автоматически создаст нужные маршруты; 2. Нужно разрешить передачу транзитных пакетов в опциях ядра. Включим режим маршрутизации ядра на 4 компьютере, для этого перейдем в директорию /proc/sys/net/IPv4 и откроем файл IPforward запишем туда 1 Данную процедуру можно выполнить командой # echo 1 > /proc/sys/net/ipv4/ip_forward 11 После настройки маршрутизатора снова выполним команду ping для выяснения доступности соседней сети. [root@5426-6 ipv4]# ping 5426-205 PING 5426-205 (192.168.26.2) 56(84) bytes of data. 64 bytes from 5426-205 (192.168.26.205): icmp_seq=1 ttl=63 time=0.855 ms 64 bytes from 5426-205 (192.168.26.205): icmp_seq=2 ttl=63 time=0.390 ms 64 bytes from 5426-205 (192.168.26.205): icmp_seq=3 ttl=63 time=0.400 ms ^C --- 5426-205 ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2022ms rtt min/avg/max/mdev = 0.390/0.548/0.855/0.217 ms По полученным данным видно, что соседняя сеть теперь доступна. 3.2 Трассировка прохождения пакетов по узлам и маршрутизаторам командами ping и traceroute. Traceroute - утилита предназначенная для отслеживания пути прохождения пакетов по IP-сети из пункта А в пункт Б. ДословноВ общем случае результатом работы traceroute будет список всех промежуточных узлов, находящихся между А и Б. В частности же в большинстве реализаций мы можем также получить время задержки до каждого промежуточного узла, то бишь время прохождения пакета туда и обратно. Трассировка, помимо тех данных которые выдает команда ping так же показывает узлы, через которые прошли пакеты, чтобы попасть в сеть назначения и количество хопов. Выполним трассировку маршрута в соседнюю сеть: [root@5426-6 ipv4]# traceroute 5426-205 traceroute to 5426-205 (192.168.26.205), 30 hops max, 60 byte packets 1 5426-4 (192.168.26.4) 0.098 ms 0.077 ms 0.100 ms 2 5426-5 (192.168.26.205) 0.153 ms 0.146 ms 0.154 ms По полученным данным видно - трассировка показывает, что сети разделены одним маршрутизатором (192.168.26.4). /etc/host.conf Файл /etc/host.conf содержит настройки для библиотеки резолвера (resolver). Резолвером называется механизм преобразования имен узлов (обычно компьютеров) сети в IP адреса и обратно (так называемое прямое и обратное преобразование). Эти строки указывают библиотекам разрешения вначале искать в файле /etc/hosts требуемый домен, а потом обратиться к серверу имен (если таковой имеется). Строка multi допускает множество IP адресов для одного имени компьютера в /etc/hosts. Пакеты с адресом источника из указанного диапазона пропускаются маршрутизатором во внешнюю сеть. Проверим доступность маршрутизатора. 12 Маршрутизатор доступен. Чтобы внешняя сеть стала доступной для изолированной подсетки, нужно добавить в таблицу маршрутизации путь по умолчанию, который будет использоваться в тех случаях, когда все другие записи не подходят. Этот маршрут соответствует адресу назначения (Destination) 0.0.0.0 и маске (Genmask) 0.0.0.0 (такая маска является короткой, поэтому маршрут с ней будет использоваться в последнюю очередь). Маршрут был корректно добавлен и появился в таблице. Видно, что команда route преобразует IP-адреса обратно в DNS-имена, используя указанный в resolv.conf сервер. resolv.conf содержит следующее: /etc/resolv.conf Данный файл является конфигурационным файлом преобразователя. Он обеспечивает доступ к DNS для разрешения адресов Internet. Строка nameserver указывает системы, на которые локальная система должна посылать запросы для разрешения имён хостов в IPадреса и наоборот Пропишем: nameserver 192.168.200.18 Ключ -n запрещает выполнение преобразования адресов в имена и может быть полезен, когда нужно избежать лишних задержек. Эта же опция поддерживается программами ping и traceroute. Проверим доступность DNS-сервера, который имеет IP-адрес 192.168.200.18 [root@5426-4 /]# ping 192.168.200.18 PING 192.168.200.18 (192.168.200.18) 56(84) bytes of data. 64 bytes from 192.168.200.18: icmp_seq=1 ttl=127 time=0.540 ms 64 bytes from 192.168.200.18: icmp_seq=2 tt2=127 time=0.588 ms 64 bytes from 192.168.200.18: icmp_seq=3 tt3=127 time=0.575 ms ^C --- 192.168.200.18 ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2815ms rtt min/avg/max/mdev = 0.540/0.567/0.588/0.034 ms DNS-сервер доступен и как мы убедились ранее выполняет свою работу. В случае с первой сетью необходимо на четвертом компьютере поднять NAT. Назначить правило, позволяющее включать NAT. 13 # iptables –t nat –A POSTROUTING –S 192.168.26.0/27 –j MASQUERADE Проверим доступность ресурса сети интернет до www.ngtu.nnov.ru для проверки доступа во внешнюю сеть [root@5426-3 /]# ping www.ngtu.nnov.ru PING www.ngtu.nnov.ru (78.25.80.210) 56(84) bytes of data. 64 bytes from echo.ip-center.ru (78.25.80.210): icmp_seq=1 ttl=250 64 bytes from echo.ip-center.ru (78.25.80.210): icmp_seq=2 tt2=250 64 bytes from echo.ip-center.ru (78.25.80.210): icmp_seq=3 tt3=250 64 bytes from echo.ip-center.ru (78.25.80.210): icmp_seq=4 tt4=250 ^C --- www.ngtu.nnov.ru ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 2815ms rtt min/avg/max/mdev = 18.194/19.938/22.141/1.497 ms time=18.1 time=20.3 time=22.1 time=19.1 ms ms ms ms Выполним теперь трассировку пакетов, до www.ngtu.nnov.ru, чтобы определить количество маршрутизаторов на пути: По полученным данным можно сделать вывод, что пакеты прошли через 13 маршрутизаторов и связь с сетью есть. Нами также была произведена попытка определить количество маршрутизаторов на пути к ресурсу www.microsoft.com, количество маршрутизаторов на пути оказалось очень велико, но, к сожалению, до ресурса мы так и не дошли, нам вывели троеточие, что совсем не означает, что данный ресурс недоступен. Следует отметить, что подобная команда существует в Windows (tracert) Однако, работают команды по-разному Как работает Tracert. Значение времени жизни (TTL) первого отправляемого пакета устанавливается равным 1. Когда протокол IP первого маршрутизатора принимает этот пакет, то он в соответствии со своим алгоритмом уменьшает TTL на единицу и получает 0. Маршрутизатор отбрасывает пакет с нулевым временем жизни и возвращает узлу-источнику ICMP-сообщение об ошибке истечения времени дейтаграммы (ICMP-сообщение тип 11 код 0). Это сообщение содержит имя маршрутизатора и его IP-адрес. Когда это ICMP-сообщение прибывает к отправителю, тот по значению таймера узнает время оборота пакета(RTT), а также (из ICMP-сообщения) имя и IP-адрес промежуточного маршрутизатора. Затем посылается следующий IP-пакет, но теперь со значением TTL равным 2. Этот пакет уже доходит до второго маршрутизатора, но опять там «умирает» о чем аналогичным, же образом сообщается узлу отправителю. И так до тех пор, пока не достигнет конечного узла. На основании данных ответов строится трассировка. Например: Трассировка маршрута к rt.ru [109.207.14.4] с максимальным числом прыжков 30: 14 1 3 ms 1 ms 2 ms net235-72.ufa.ertelecom.ru [212.33.234.72] 2 2 ms 2 ms 1 ms bb2.bsr02.ufa.ertelecom.ru [212.33.234.109] 3 2 ms 1 ms 1 ms lag-10-438.bbr01.samara.ertelecom.ru [212.33.233.111] 4 18 ms 18 ms 18 ms 46.61.227.202 5 19 ms 19 ms 18 ms 46.61.227.201 6 19 ms 19 ms 19 ms so-0-0-0.m10-ar2.msk.ip.rostelecom.ru [87.226.139.74] 7 19 ms 19 ms 19 ms 109.207.0.226 8 19 ms 19 ms 19 ms www.rt.ru [109.207.14.4] Трассировка завершена. Из данной трассы мы видим, что хост www.rt.ru доступен с числом прыжков(хопов) — 8, его ip 109.207.14.4, и время круговой задержки до данного ресурса составляет 19ms. Как работает Traсeroute. Принцип идентичный, за одним исключением. Утила по умолчанию, посылает в сторону заданного хоста UDP-датаграммы на какой-то произвольный порт, обычно — на «высокий», скорее всего не занятый другим сервисом (например 12500, 30678) или на зарезервированный (например 0), в свежих версиях порт по умолчанию — 33434. Сначала посылается серия из 3-х таких пакетов с TTL=1, по приходу ответов замеряется время прохождения и определяется доменное имя транзитного узла. Затем, как сказано выше, посылаются очередные серии пакетов с TTL=2 и т.д. В конце мы получаем от конечного хоста отклик «Порт недоступен» (PORT_UNREACHABLE), что означает завершение трассировки. Пример трассировки до того же ресурса: traceroute to rt.ru (109.207.14.4), 30 hops max, 40 byte packets 1*** 2 bb1.bsr02.ufa.ertelecom.ru (212.33.234.101) 13.059 ms 13.222 ms 13.597 ms 3 lag-10-438.bbr01.samara.ertelecom.ru (212.33.233.111) 0.360 ms 0.382 ms 0.612 ms 4 46.61.227.202 (46.61.227.202) 17.484 ms 17.511 ms 17.512 ms 5 46.61.227.201 (46.61.227.201) 17.803 ms 17.791 ms 17.778 ms 6 so-0-0-0.m10-ar2.msk.ip.rostelecom.ru (87.226.139.74) 18.179 ms 18.211 ms 17.988 ms 7 109.207.0.226 (109.207.0.226) 18.213 ms 18.697 ms 18.288 ms 8*** ^C Из результата вывода возникает вопрос, почему в этом случае трассировка не дошла до конца, и появились в выводе так называемые звездочки (* * *), а ответ как раз и заключается в различие (в данном примере). Очень часто, маршрутизаторы/хосты настраиваются таким образом, чтобы они не отвечали на подобного рода запросы, в таком случае и появляются звездочки. Это совершенно не значит, что имеются какие-то проблемы. Делается это для того, чтобы разгрузить оборудование. В данном примере 1 и 8 хоп не отвечает на UDP-датаграммы, однако если запустить утилу traceroute c ключиком -I, то трассировка дойдет, т.к. данный ключ заставляет посылаю уже ICMP-датаграммы. Следует отметить, что звездочки могут возникать и при трассировке ICMP-пакетами, это также не значит, что существует проблема. Все зависит от того, как настроил оборудование администратор. Это его железо и настраивается оно с его потребностями. Данное явление вполне нормально. Также не следует паниковать, если конечный хост не пингуется. Вполне возможно, что ресурс просто от них закрылся Схема сети на канальном уровне 15 На канальном уровне имеем 2 сети. Первая сеть объединят 4 узла на коммутаторе DLINK. Вторая сеть объединяет 5 узлов на коммутаторе. Коммутатор у 2-ой сети имеет wan-port т.е выход в интернет. Один из узлов входит в 1 и 2-ю сеть Схема IP-сети лаборатории с выходом в интернет В данной лабораторной работе сеть разделена не две подсети. Адрес первой сети – 192.168.26.0, адрес второй сети – 192.168.26.128. Сетевая маска в данном случае будет 255.255.255.128. 4ый узел играет роль маршрутизатора. Для доступа из одной подсети в другую. Также есть выход в сеть деканата через шлюз (ip=192.168.15.1) 16 4. Средства конфигурирования сети в интерфейсной среде GNOME Теперь приступим к конфигурированию сетевых настроек через графическую оболочку. Запускаем апплет Параметры системы и в категории сеть находим выбираем Сеть Открывается окно, в котором доступно настроить параметры проводного соединения, а также настроить прокси Нажимаем кнопку «Параметры» для настроек соединения. В списке по умолчанию содержатся автоматически созданные подключения и у каждого сетевого адаптера отображается имя (p7p1). Перейдем на вкладку настроек IPv4. 17 По умолчанию стоит автоматическое конфигурирование (Method = Automatic(DHCP)), но мы зададим ручное (Method = Manual). Далее пропишем IP-адрес 192.168.26.3 с маской 255.255.255.0 Во вкладке 802.1x Security можно настраивать параметры контроля доступа и аутентификации: 1)Тип аутентификации : MD5,TLS,FAST,Tunneled TLS,Protected EAP (PEAP) 2)Имя пользователя 3)Пароль 3)Периодический запрос пароля Дважды нажимаем переключатель беспроводного соединения (выключить, потом включить). Теперь для нашего соединения действуют новые. Промингуем узел [root@5426-3 sergey]# ping 192.168.26.4 PING 192.168.26.4 (192.168.26.4) 56(84) bytes of data. 64 bytes from 192.168.26.4: icmp_seq=1 ttl=64 time=1.282 ms 64 bytes from 192.168.26.4: icmp_seq=2 ttl=64 time=0.502 ms 64 bytes from 192.168.26.4: icmp_seq=3 ttl=64 time=0.457 ms 64 bytes from 192.168.26.4: icmp_seq=4 ttl=64 time=0.361 ms 64 bytes from 192.168.26.4: icmp_seq=5 ttl=64 time=0.349 ms 64 bytes from 192.168.26.4: icmp_seq=6 ttl=64 time=0.432 ms 64 bytes from 192.168.26.4: icmp_seq=7 ttl=64 time=0.401 ms Все работает корректно. GNOME - это окружение рабочего стола. Оно не может никуда ничего прописывать. За настройки сети в гноме отвечает программа Network Manager. Данная утилита пришла на замену устаревшей утилиты system-config-network, которая работала от root и обрабатывала файлы в /etc/sysconfig/network-scripts/. Неудобство устаревшей утилиты было в трудностях создания соединений доступных и видимых для одних пользователей и невидимых для других. К тому же Network-Manger позволяет соединить настройку всех типов сетей в единой утилите, и настраивать их общими, похожими методами. 18 Утилита управляется на стороне пользователя с помощью апплета, запускаемого демоном nm-applet, в системном лотке пользователя.: Щелчок по апплету вызывает ниспадающее меню со списком соединений. Когда вы выберите соединение значок анимированно изменяется и если произошло удачное подключение, апплет выведет соответствующее сообщение в виде попап окна. Для создания подключений следует пройти в меню, Система/Параметры/Сетевые соединения, или щёлкнуть на апплете правой кнопкой и выбрать изменить соединения. Окно соединений выглядит так: Проводные соединения мы уже рассмотрели. Беспроводная сеть Вторая вкладка основного окна называется Беспроводная сеть и настраивает беспроводные сети, в конфигурационном окне также три вкладки для разных параметров соединения: 19 На первой вкладке указываем общие параметры сетевого соединения, такие как SSID, режимы работы, mac и MTU. На второй вкладке указываем параметры соединения с сетью и метод аутентификации в ней. На четвёртой вкладке, как и в случае с с проводными сетями, указываем параметры IPv4. NetworkManager создаёт для каждой найденной сетевой карты автоподключение, с расчётом на то что в сети есть DHCP. NetworkManager автоматически собирает информацию о доступных сетях и пытается к ним подключиться выводя окно с запросом параметров соединения, введя данные (если они вам известны) вы подключаетесь к сети о чем будет выведено сообщение и значок апплета в системном лотке изменит свою форму (будет показывать мощность сигнала сети), обычно NetworkManager сам определяет метод шифрования в сети и её SSID. Мобильные широкополосные соединения В третьей закладке основного окна можно настроить интернет соединений через мобильное широкополосное соединение. Например через мобильный телефон, или модем провайдера. При подключении устройства NetworkManager автоматически увидит его, и выведет мастер настройки соединения в котором нужно будет указать вашего мобильного провайдера, и регион, после чего NetworkManager найдёт нужные настройки в своей базе настроек. В базе содержится параметры большинства крупных провайдеров, что позволяет очень легко настроить соединение (но нет возможности настроить соединений через bluetooth). Если в этой базе нет вашего провайдера можно указать настройки вручную. После прохождения всех шагов мастера, в основном окне сетевых настроек, появиться пункт сетевого соединения: 20 Если нажать на кнопке изменить, то откроется знакомое нам окно с тремя вкладками, на первой вкладке указываем параметры сетевого соединения, на второй указываются настройки аутентификации и на последней вкладке, как обычно, настройки IPv4. VPN Четвёртая вкладка называется VPN. Она содержит в себе пользовательский сети VPN, поддерживает протоколы vpnc, OpenVPN и MS pptp. Что бы добавить VPN соединение можно использовать два пути. Первый с помощью мастера, либо с помощью импорта из уже существующего файла с настройками. Мастер вызывает нужную форму в зависимости от того какой вид VPN вы укажете. После того как вы пропишете все настройки вашего соединения, щёлкните кнопку Применить, и данное соединений окажется в списке соединений, и будет доступно из допменю апплета NetworkManager. DSL Последняя вкладка отвечает за соединения DSL. Самая распространённая форма соединения с Интернет. Соединения управляются из окна с четырьмя вкладками, два из которых мы видели ранее, а еще два содержат форму ввода логина-пароля и форму настроек аутентификации пользователя. При добавлении нового соединения в форме следует указать пару логин-пароль для соединения, а также если нужно, укажите параметры аутентификации. Обычно это не требуется. Подводя итог, система призвана облегчить настройку соединения с интернет распространёнными способами для неспециалиста, и позволяет автоматизировать рутинные операции настройки сетевых соединений. Примичание Однако (существует, такое мнение),что у программы Network Manager есть один недостаток — она не работает. Точнее, работает, но не так, как надо. С добавлением Network Manager в дистрибутив, добавились дополнительные сетевые проблемы. Проблемы разноплановые: от применения конфигуратора pppoeconf и до поднятия VPNсоединения. Network Manager не любит нестандартных конфигураций. Network Manager отлично управляет "легкими" сетевыми соединениями, но не более. Поэтому многие отказываются от него вообще (настраивая конфигурационные файлы вручную) либо искаь другие решения. Среди таких Wicd - это очень хороший аналог Network Manager, который может достойно заменить его и решить возникшие проблемы. Wicd обладает набором более расширенных настроек, в отличие от Network Manager. Скриншоты программы: Беспроводное соединение 21 Настройка сети. 22 5.Контроль за сетью, получение статистики и другой сетевой информации Команда netstat выдает различную информацию о состоянии сетевого программного обеспечения, включая статистику сетевых интерфейсов, данные о маршрутизации и таблицы соединений. Никакого объединяющего звена во всех этих информационных блоках нет, просто они касаются функционирования сети. Команда netstat включена во все операционные системы, но в каждой из них поддерживаются разные наборы опций. Рассмотрим четыре наиболее распространенных варианта использования команды netstat. Это: проверка состояния сетевых соединений; анализ информации о конфигурации интерфейсов; изучение таблицы маршрутизации; получение статистических данных о различных сетевых протоколах. Контроль состояния сетевых соединений Будучи вызванной без аргументов, команда netstat выдает информацию о состоянии активных TCP- и UDP-портов. Неактивные серверы, ожидающие запросов на установление соединений, как правило, не отображаются. О них можно узнать с помощью команды netstat -а . Результат выглядит так: Для большей наглядности рассмотрим следующий пример % netstat -а Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.6013 *.* LISTEN tcp46 0 0 *.6013 *.* LISTEN 23 tcp4 0 0 nimi.ssh xor.com.4105 ESTABLISHED tcp4 0 20 nimi.ssh xor.com.1612 ESTABLISHED tcp4 0 0 *.13500 *.* tcp4 0 0 nimi.ssh 135.197.2.114.883 ESTABLISHED tcp4 0 0 nimi.1599 tcp4 0 0 *.ssh *.* LISTEN tcp46 0 0 *.ssh *.* LISTEN tcp4 0 0 nimi.ssh 135.197.2.114.776 ESTABLISHED tcp4 0 0 *.cvsup *.* udp4 0 0 *.syslog *.* udp4 0 0 *.ntalk *.* LISTEN xor.com.telnet ESTABLISHED LISTEN Вывод команды свидетельствует о наличии нескольких входящих соединений по протоколу SSH, одного исходящего telnet-соединения и группы портов, ожидающих установления соединения. Внимание на строки, в которых тип протокола — tcp46. Это сервисы, работающие в соответствии со стандартом IPv6. Адреса представлены в формате имя_компьютера.сервис, где сервис — номер порта. Для известных сервисов порты указаны в символическом виде (соответствия между номерами портов и их именами определены в файле /etc/services). При наличии опции -n все адреса отображаются в числовом виде. В колонках Send-Q и Recv-Q показывается, сколько запросов находится во входящих и исходящих очередях на данном компьютере. На другом конце соединения размеры очередей могут быть другими. Желательно, чтобы эти значения были близки к нулю и не были ненулевыми постоянно. Конечно, если команда netstat запускается через сетевой терминал, для ее соединения размер исходящей очереди, скорее всего, никогда не будет равен 0. Состояние соединения имеет значение только для протокола TCP. Протокол UDP не проверяет факт установления соединения. Наиболее распространенные состояния: ESTABLISHED (установлено) — для активных соединений, LISTENING (ожидание) — для серверов, ожидающих поступления запросов (при отсутствии опции -а обычно не показываются), TIME_WAIT (ожидание закрытия) — для соединений, находящихся в процессе закрытия. Эта информация полезна главным образом для устранения проблем на более высоком уровне, если, конечно, базовые сетевые средства работают нормально. Команда netstat позволяет проверить правильность настройки серверов и диагностировать определенные виды нарушений связи, особенно при работе с протоколом TCP. Например, если соединение находится в состоянии SYN_SENT, это означает наличие процесса, который пытается установить контакт с несуществующим или недоступным сервером. 24 Просмотр информации о конфигурации интерфейса Команда netstat -i сообщает о состоянии сетевых интерфейсов. Рассмотрим данную статистику: Iface - имя интерфейса MTU – максимальное число байтов в пакете RX-OK – пакеты, принятые без ошибок RX-ERR - пакеты, принятые с ошибками RX-DRP – пропавшие пакеты RX-OVR – ошибки из-за превышения скорости TX-OK – пакеты, переданные без ошибок TX-ERR – пакеты, переданные с ошибками TX-DRP – пакеты, потерянные при передачи TX-OVR – пакеты, которые не смогли передать Flags – характеристики интерфейса: B – принимает широковещательные пакеты, L – закольцовывающий интерфейс, M – изменяется динамически, R – интерфейс работает, U – интерфейс активизирован lo является закольцовывающим интерфейсом, который активирован и работает p2p1 является динамически изменяющимся и принимающим широковещательные пакеты интерфейсов, который активирован и работает p7p1 является динамически изменяющимся и принимающим широковещательные пакеты интерфейсов, который активирован и работает Количество ошибок должно составлять менее 1% от числа пакетов. Если частота появления ошибок высока, нужно сравнить эти показатели на нескольких соседних компьютерах. Большое число ошибок на одном компьютере свидетельствует о наличии проблемы в его интерфейсе или соединении, тогда как высокая частота ошибок, возникающих на всех компьютерах, в большинстве случаев обусловлена наличием проблемы в среде передачи. Работу сетевого интерфейса можно контролировать в реальном времени, однако соответствующие опции командной строки различаются в зависимости от системы. Показанные ниже команды выдают статистику с интервалом в одну секунду. 25 Непрерывный режим работы команды netstat особенно эффективен при выслеживании источника ошибок. Т.к. мы можем отследить когда теряются пакеты. Команда netstat i может сообщить о существовании проблем, но она не скажет, какова причина ошибок: то ли это постоянно возникающая аппаратная проблема, то ли кратковременное, но фатальное событие. Наблюдение за сетью при различных уровнях загруженности позволит получить гораздо более полное представление о том, что происходит. Проверка таблицы маршрутизации Команда netstat -r отображает таблицу маршрутизации ядра. Пункты назначения и шлюзы могут быть представлены либо доменными именами, либо IP-адресами. Опция -n задает вывод IP-адресов. В колонке Flags отображаются флаги, характеризующие маршрут: U (up) — активный, G (gateway) — шлюз, H (host) — узловой (связан с конкретным адресом, а не сетью). Флаг D- обозначает маршрут, полученный в результате переадресации по протоколу ICMP. Флаги G и H вместе обозначают маршрут к компьютеру, проходящий через промежуточный шлюз. Остальные поля содержат статистические данные о маршруте: текущее число TCP-соединений по этому маршруту, количество отправленных пакетов и имя используемого интерфейса. Точный вид представленных данных зависит от конкретной операционной системы. MSS (Maximum Segment Size) – определяет максимальный размер пакета для этого маршрута Window – задает максимальное количество данных, которое система примет в одном пакете с удаленного компьютера irtt (initial round trip time) – задает значение, которое используется при установке подключения; для большинства сетей подходит значение по умолчанию, но для некоторых медленных сетей (особенно ряд типов пакетного радио) время слишком короткое, что вызывает ненужные повторы Iface – показывает, к какому сетевому интерфейсу относится маршрут Приведенный вариант команды netstat полезен для проверки правильности таблицы маршрутизации. Особенно важно убедиться в наличии и корректности стандартного маршрута. Иногда он обозначается в виде адреса со всеми нулями (0.0.0.0), иногда — словом default. 26 Просмотр статистики функционирования различных сетевых протоколов Команда netstat -s выдает содержимое всевозможных счетчиков, используемых в сетевых программах. Информация разбивается на разделы в соответствии с протоколами: IP, ICMP, TCP и UDP. Ниже приведены отдельные фрагменты листинга команды netstat -s, полученного на ip: 2313683 total packets received 0 bad header checksums 1642600 packets for this host 25743 packets sent from this host 0 output packets dropped due to no bufs, etc. Отсутствие ошибок контрольных сумм говорит о том, что аппаратное соединение работает нормально. Также важен тот факт, что пакеты не отбрасывались из-за недостатка свободной памяти (последняя строка). icmp: 57 calls to icmp_error Output histogram: echo reply: 157 destination unreachable: 57 Input histogram: echo reply: 6 destination unreachable: 4 echo: 157 time exceeded: 14 157 message responses generated Показатели числа эхо-запросов, сгенерированных ответов и эхо-ответов совпадают. Отметим, что сообщения "destination unreachable" (адресат недостижим) могут посылаться даже тогда, когда пакеты, казалось бы, маршрутизируются нормально. Например, дефектные пакеты рано или поздно достигают шлюза, который отклоняет их, и по цепи шлюзов возвращается сообщение об ошибке. tcp: 25087 packets sent 25499 packets received 31 connection requests 30 connection accepts 56 connections established (including accepts) 64 connections closed (including 13 drops) 4 embryonic connections dropped Рекомендуется определить приемлемые диапазоны этих показателей, чтобы можно было сразу же замечать необычное поведение сети. 27 Проведем аналогичные действия в Windows . Синтаксис команды: Получение статистики по протоколам Аналогично как и в линукс, команда имеет те же самые параметры. Просмотрим выполнение команды Статистика IPv4 Получено пакетов = 1825154 Получено ошибок в заголовках = 14 Получено ошибок в адресах = 651 Направлено датаграмм =0 Получено неизвестных протоколов = 728 Отброшено полученных пакетов = 32157 Доставлено полученных пакетов = 2746639 Запросов на вывод = 3001334 Отброшено маршрутов =0 Отброшено выходных пакетов = 5782 Выходных пакетов без маршрута = 73 Требуется сборка = 15151 Успешная сборка = 7076 Сбоев при сборке =0 Успешно фрагментировано датаграмм = 0 Сбоев при фрагментации датаграмм = 0 Создано фрагментов =0 Статистика IPv6 Получено пакетов =0 Получено ошибок в заголовках =0 Получено ошибок в адресах =0 Направлено датаграмм =0 28 Получено неизвестных протоколов = 0 Отброшено полученных пакетов =0 Доставлено полученных пакетов = 228 Запросов на вывод = 251 Отброшено маршрутов =0 Отброшено выходных пакетов =0 Выходных пакетов без маршрута = 0 Требуется сборка =0 Успешная сборка =0 Сбоев при сборке =0 Успешно фрагментировано датаграмм = 0 Сбоев при фрагментации датаграмм = 0 Создано фрагментов =0 Статистика ICMPv4 Получено Отправлено Сообщений 34990 2655 Ошибок 0 0 'Назначение недостижимо' 32904 2608 Превышений времени 2062 15 Ошибок в параметрах 0 0 Просьб "снизить скорость" 15 0 Переадресовано 0 0 Ответных пакетов 7 2 Эхо-сообщений 2 30 Отметок времени 0 0 Ответы на отметки времени 0 0 Масок адресов 0 0 Ответов на маски адресов 0 0 Маршрутизатор 0 0 Маршрутизатор 0 0 ICMPv6 Статистика Получено Отправлено Сообщений 0 0 Ошибок 0 0 'Назначение недостижимо' 0 0 Пакет слишком велик 0 0 Превышений времени 0 0 Ошибок в параметрах 0 0 Эхо-сообщений 0 0 Ответных пакетов 0 0 MLD-запросы 0 0 MLD-отчеты 0 0 MLD выполнено 0 0 Маршрутизатор 0 0 Маршрутизатор 0 0 Окружение 0 0 Окружение 0 0 Переадресовано 0 0 29 Перенумер. маршрутизатора 0 0 Статистика TCP для IPv4 Активных открыто = 176935 Пассивных открыто = 83474 Сбоев при подключении = 91041 Сброшено подключений = 19852 Текущих подключений = 24 Получено сегментов = 2216212 Отправлено сегментов = 2091985 Повторно отправлено сегментов = 207940 Статистика TCP для IPv6 Активных открыто =9 Пассивных открыто =1 Сбоев при подключении = 6381 Сброшено подключений =0 Текущих подключений =0 Получено сегментов = 60 Отправлено сегментов = 44 Повторно отправлено сегментов = 16 Статистика UDP для IPv4 Получено датаграмм = 475042 Отсутствие портов = 321 Ошибки при получении = 66 Отправлено датаграмм = 698048 Статистика UDP для IPv6 Получено датаграмм = 335 Отсутствие портов = 0 Ошибки при получении = 0 Отправлено датаграмм = 168 Также можно получить статистику по конкретному протоколу, указав протокол. Тут комментарии аналогичны как и в линукс. Данная статистика поможет выявить наличие ошибок в сети. Получение информации об активных подключениях с информацией о задействованных портах и процессах, которые используют эти порты Netstat -a -o Активные подключения Имя Локальный адрес Внешний адрес Состояние TCP 0.0.0.0:135 sergey:0 LISTENING 168 TCP 0.0.0.0:445 sergey:0 LISTENING 4 TCP 0.0.0.0:902 sergey:0 LISTENING 2052 PID 30 TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP 0.0.0.0:912 sergey:0 LISTENING 2052 0.0.0.0:1025 sergey:0 LISTENING 904 0.0.0.0:1026 sergey:0 LISTENING 1084 0.0.0.0:1027 sergey:0 LISTENING 1016 0.0.0.0:1028 sergey:0 LISTENING 1144 0.0.0.0:1312 sergey:0 LISTENING 1000 0.0.0.0:1935 sergey:0 LISTENING 4936 0.0.0.0:3050 sergey:0 LISTENING 5688 0.0.0.0:3306 sergey:0 LISTENING 2628 0.0.0.0:5357 sergey:0 LISTENING 4 0.0.0.0:7955 sergey:0 LISTENING 4936 0.0.0.0:12882 sergey:0 LISTENING 4936 0.0.0.0:12883 sergey:0 LISTENING 4268 0.0.0.0:17500 sergey:0 LISTENING 3808 0.0.0.0:31781 sergey:0 LISTENING 3668 0.0.0.0:49152 sergey:0 LISTENING 4936 0.0.0.0:53957 sergey:0 LISTENING 3668 0.0.0.0:59733 sergey:0 LISTENING 2912 0.0.0.0:63870 sergey:0 LISTENING 3668 127.0.0.1:1033 sergey:activesync ESTABLISHED 2912 127.0.0.1:1034 sergey:1033 ESTABLISHED 2912 127.0.0.1:1070 sergey:1071 ESTABLISHED 4672 127.0.0.1:1071 sergey:1070 ESTABLISHED 4672 127.0.0.1:1346 sergey:19872 ESTABLISHED 3808 127.0.0.1:1377 sergey:0 LISTENING 2360 127.0.0.1:1377 sergey:57160 ESTABLISHED 2360 127.0.0.1:1713 sergey:1714 ESTABLISHED 3668 127.0.0.1:1714 sergey:1713 ESTABLISHED 3668 127.0.0.1:1721 sergey:1722 ESTABLISHED 3668 127.0.0.1:1722 sergey:1721 ESTABLISHED 3668 127.0.0.1:1723 sergey:1724 ESTABLISHED 3668 127.0.0.1:1724 sergey:pptp ESTABLISHED 3668 127.0.0.1:5939 sergey:0 LISTENING 4556 127.0.0.1:7880 sergey:0 LISTENING 3668 127.0.0.1:9050 sergey:0 LISTENING 4672 127.0.0.1:9051 sergey:0 LISTENING 4672 127.0.0.1:18936 sergey:0 LISTENING 4936 127.0.0.1:19872 sergey:1346 ESTABLISHED 3808 127.0.0.1:24678 sergey:0 LISTENING 9516 127.0.0.1:28743 sergey:0 LISTENING 2912 127.0.0.1:28744 sergey:0 LISTENING 2912 127.0.0.1:45100 sergey:0 LISTENING 3668 127.0.0.1:57160 sergey:1377 ESTABLISHED 62848 192.168.0.2:139 sergey:0 LISTENING 4 192.168.1.4:139 sergey:0 LISTENING 4 192.168.1.4:24809 ee-in-f125:5222 ESTABLISHED 4116 192.168.1.4:24813 bos-w019a-rdr1:5190 ESTABLISHED 3448 192.168.1.4:24816 ee-in-f125:5222 ESTABLISHED 4116 192.168.1.4:56535 cache:https ESTABLISHED 62848 192.168.1.4:56702 37.9.53.62:8080 ESTABLISHED 105624 192.168.1.4:57161 srv204-131-240-87:http ESTABLISHED 2360 192.168.1.4:58028 la-in-f94:https ESTABLISHED 62848 31 TCP 192.168.1.4:58309 173.194.32.187:https ESTABLISHED 62848 TCP 192.168.1.4:58531 91.230.65.42:http CLOSE_WAIT 3668 TCP 192.168.1.4:58575 server:http CLOSE_WAIT 3668 TCP 192.168.1.4:58708 snt-re3-7d:http ESTABLISHED 3808 TCP 192.168.1.4:58712 5x166x156x243:59054 TIME_WAIT 0 TCP 192.168.1.4:58720 111.111.111.111:http SYN_SENT 4268 TCP [::]:135 sergey:0 LISTENING 168 TCP [::]:445 sergey:0 LISTENING 4 TCP [::]:1025 sergey:0 LISTENING 904 TCP [::]:1026 sergey:0 LISTENING 1084 TCP [::]:1027 sergey:0 LISTENING 1016 TCP [::]:1028 sergey:0 LISTENING 1144 TCP [::]:1312 sergey:0 LISTENING 1000 TCP [::]:3306 sergey:0 LISTENING 2628 TCP [::]:5357 sergey:0 LISTENING 4 TCP [::]:7955 sergey:0 LISTENING 4936 TCP [::]:31781 sergey:0 LISTENING 3668 TCP [::]:53957 sergey:0 LISTENING 3668 TCP [::]:59733 sergey:0 LISTENING 2912 TCP [::]:63870 sergey:0 LISTENING 3668 UDP 0.0.0.0:500 *:* 1144 UDP 0.0.0.0:1900 *:* 3668 UDP 0.0.0.0:1900 *:* 3668 UDP 0.0.0.0:1900 *:* 2912 UDP 0.0.0.0:1900 *:* 4936 UDP 0.0.0.0:1900 *:* 3668 Разберем этот вывод по полочкам. Итак, в первой колонке указан протокол, который используется в соединении. Вторая колонка, "IP адрес":"Порт" на той машине, с которой выполнялся netstat. Третья колонка, отображает все те же "IP адрес":"Порт", но уже для той машины, на которую устанавливается соединение. Кстати, это может быть и та же самая машина, с которой устанавливается соединение. Простой пример такой ситуации - установленный веб-сервер на локальной машины, необходимый для тестирования разрабатываемых вебприложений. Теперь, если мы подключаемся к нему через веб-браузер на той же машине, где установлен сам сервер, то имеем одинаковый IP адрес источника и назначения. Однако, в таблице выше легко заметить, что в третьей колонке IP адрес в ряде случаев представлен в виде, так называемого "канонического" имени (т.е. простым языком в текстовой форме). Такой поведение имеет netstat по умолчанию. В первом примере внешние адреса имели символьные имена. Netstat –a –o -n Активные подключения Имя Локальный адрес Внешний адрес Состояние TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 168 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:902 0.0.0.0:0 LISTENING 2052 TCP 0.0.0.0:912 0.0.0.0:0 LISTENING 2052 TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 904 PID 32 TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING 1084 0.0.0.0:1027 0.0.0.0:0 LISTENING 1016 0.0.0.0:1028 0.0.0.0:0 LISTENING 1144 0.0.0.0:1312 0.0.0.0:0 LISTENING 1000 0.0.0.0:1935 0.0.0.0:0 LISTENING 4936 0.0.0.0:3050 0.0.0.0:0 LISTENING 5688 0.0.0.0:3306 0.0.0.0:0 LISTENING 2628 0.0.0.0:5357 0.0.0.0:0 LISTENING 4 0.0.0.0:7955 0.0.0.0:0 LISTENING 4936 0.0.0.0:12882 0.0.0.0:0 LISTENING 4936 0.0.0.0:12883 0.0.0.0:0 LISTENING 4268 0.0.0.0:17500 0.0.0.0:0 LISTENING 3808 0.0.0.0:31781 0.0.0.0:0 LISTENING 3668 0.0.0.0:49152 0.0.0.0:0 LISTENING 4936 0.0.0.0:53957 0.0.0.0:0 LISTENING 3668 0.0.0.0:59733 0.0.0.0:0 LISTENING 2912 0.0.0.0:63870 0.0.0.0:0 LISTENING 3668 127.0.0.1:1033 127.0.0.1:1034 ESTABLISHED 2912 127.0.0.1:1034 127.0.0.1:1033 ESTABLISHED 2912 127.0.0.1:1070 127.0.0.1:1071 ESTABLISHED 4672 127.0.0.1:1071 127.0.0.1:1070 ESTABLISHED 4672 127.0.0.1:1346 127.0.0.1:19872 ESTABLISHED 3808 127.0.0.1:1377 0.0.0.0:0 LISTENING 2360 127.0.0.1:1377 127.0.0.1:57160 ESTABLISHED 2360 127.0.0.1:1713 127.0.0.1:1714 ESTABLISHED 3668 127.0.0.1:1714 127.0.0.1:1713 ESTABLISHED 3668 127.0.0.1:1721 127.0.0.1:1722 ESTABLISHED 3668 127.0.0.1:1722 127.0.0.1:1721 ESTABLISHED 3668 127.0.0.1:1723 127.0.0.1:1724 ESTABLISHED 3668 127.0.0.1:1724 127.0.0.1:1723 ESTABLISHED 3668 127.0.0.1:5939 0.0.0.0:0 LISTENING 4556 127.0.0.1:7880 0.0.0.0:0 LISTENING 3668 127.0.0.1:9050 0.0.0.0:0 LISTENING 4672 127.0.0.1:9051 0.0.0.0:0 LISTENING 4672 127.0.0.1:18936 0.0.0.0:0 LISTENING 4936 127.0.0.1:19872 127.0.0.1:1346 ESTABLISHED 3808 127.0.0.1:24678 0.0.0.0:0 LISTENING 9516 127.0.0.1:28743 0.0.0.0:0 LISTENING 2912 127.0.0.1:28744 0.0.0.0:0 LISTENING 2912 127.0.0.1:45100 0.0.0.0:0 LISTENING 3668 127.0.0.1:57160 127.0.0.1:1377 ESTABLISHED 62848 127.0.0.1:58881 127.0.0.1:12882 TIME_WAIT 0 192.168.0.2:139 0.0.0.0:0 LISTENING 4 192.168.1.4:139 0.0.0.0:0 LISTENING 4 192.168.1.4:24809 173.194.65.125:5222 ESTABLISHED 4116 192.168.1.4:24813 64.12.30.4:5190 ESTABLISHED 3448 192.168.1.4:24816 173.194.65.125:5222 ESTABLISHED 4116 192.168.1.4:56535 185.11.245.20:443 ESTABLISHED 62848 192.168.1.4:56702 37.9.53.62:8080 ESTABLISHED 105624 192.168.1.4:57161 87.240.131.204:80 ESTABLISHED 2360 192.168.1.4:58758 185.11.245.24:443 ESTABLISHED 62848 192.168.1.4:58789 173.194.71.191:443 ESTABLISHED 62848 33 TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP UDP UDP UDP UDP UDP 192.168.1.4:58829 173.194.32.171:443 ESTABLISHED 62848 192.168.1.4:58864 195.82.146.120:80 CLOSE_WAIT 3668 192.168.1.4:58866 91.218.231.97:80 CLOSE_WAIT 3668 192.168.1.4:58872 74.125.143.94:443 ESTABLISHED 62848 192.168.1.4:58876 108.160.162.104:80 ESTABLISHED 3808 192.168.1.4:58883 195.82.146.123:80 CLOSE_WAIT 3668 192.168.1.4:58886 111.111.111.111:80 SYN_SENT 4268 [::]:135 [::]:0 LISTENING 168 [::]:445 [::]:0 LISTENING 4 [::]:1025 [::]:0 LISTENING 904 [::]:1026 [::]:0 LISTENING 1084 [::]:1027 [::]:0 LISTENING 1016 [::]:1028 [::]:0 LISTENING 1144 [::]:1312 [::]:0 LISTENING 1000 [::]:3306 [::]:0 LISTENING 2628 [::]:5357 [::]:0 LISTENING 4 [::]:7955 [::]:0 LISTENING 4936 [::]:31781 [::]:0 LISTENING 3668 [::]:53957 [::]:0 LISTENING 3668 [::]:59733 [::]:0 LISTENING 2912 [::]:63870 [::]:0 LISTENING 3668 0.0.0.0:500 *:* 1144 0.0.0.0:1900 *:* 3668 0.0.0.0:1900 *:* 4936 0.0.0.0:1900 *:* 3668 0.0.0.0:1900 *:* 3668 Изучить работу протоколов ARP, RARP, BOOTP. ARP – протокол преобразования адресов – выполняет преобразование логических сетевых адресов в аппаратные MAC-адреса. Ядро Linux содержит таблицу ARP, в которой находятся IP-адреса и соответствующие им MAC-адреса. Эта таблица помогает обеспечить более быстрый доступ к машинам, с которыми мы постоянно работаем (кэшируются MAC-адреса этих машин). Данные добавляются в таблицу динамически, однако можно сделать таблицу статической и внести данные самостоятельно. Информация, пересылаемая от одного компьютера другому по сети, содержит в себе физический адрес отправителя, IP-адрес отправителя, физический адрес получателя и IPадрес получателя. ARP-протокол обеспечивает связь между этими двумя адресами. Существует четыре типа ARP-сообщений: ARP-запрос (ARP request), ARP-ответ (ARP reply), RARP-запрос (RARP-request) и RARP-ответ (RARP-reply). Локальный хост при помощи ARP-запроса запрашивает физический адрес хоста-получателя. Ответ (физический адрес хоста-получателя) приходит в виде ARP-ответа. Хост-получатель, вместе с ответом, шлёт также RARP-запрос, адресованный отправителю, для того, чтобы проверить его IP-адрес. После проверки IP-адреса отправителя начинается передача пакетов данных. Протокол RARP (Обратный протокол преобразования адресов) - протокол третьего (сетевого) уровня модели OSI, выполняет обратное отображение адресов, то есть преобразует аппаратный адрес в IP-адрес. Протокол применяется во время загрузки узла, когда он посылает групповое сообщениезапрос со своим физическим адресом. Сервер принимает это сообщение и просматривает свои таблицы (либо перенаправляет запрос куда-либо ещё) в поисках соответствующего физическому, IP-адреса. После обнаружения найденный адрес отсылается обратно на 34 запросивший его узел. Другие станции также могут «слышать» этот диалог и локально сохранить эту информацию в своих ARP-таблицах. RARP позволяет разделять IP-адреса между не часто используемыми хост-узлами. После использования каким либо узлом IP-адреса он может быть освобождён и выдан другому узлу.RARP является дополнением к ARP, и описан в RFC 903. Протокол BOOTP - сетевой протокол, используемый для автоматического получения клиентом IP-адреса. Это обычно происходит во время загрузки компьютера. BOOTP позволяет бездисковым рабочим станциям получать IP-адрес прежде, чем будет загружена полноценная операционная система. Исторически это использовалось для Unix-подобных бездисковых станций, которые в том числе могли получать информацию о местоположении загрузочного диска посредством этого протокола. А также большими корпорациями для установки предварительно настроенного программного обеспечения на новоприобретённые компьютеры. DHCP (Dynamic Host Configuration Protocol) — протокол, основанный на BOOTP, предоставляющий некоторые дополнительные возможности и являющийся более сложным. Многие DHCP-серверы поддерживают и BOOTP.Инкапсуляция происходит следующим образом: BOOTP->UDP->IP->… Для работы с таблицей ARP предназначена утилита arp. Выведем кеш-таблицу протокола ARP с помощью команды arp: Рассмотрим синтаксис команды arp: Как мы видим, мы можем редактировать кэш ARP, явно добавляя в него записи (вручную или из файла), удаляя их. Заранее отметим, что при попытке получить MAC-адрес компьютера из соседней подсети у нас ничего не выйдет, ибо при обращении в другую сеть используется MAC адрес роутера. Поэтому сам маршрутизатор заносится в КЭШ. Чтобы заполнить кэш, не зная MAC-адресов, просто пропингуем все узлы, после чего в таблице будут отображены динамические записи. Получим кэш-таблицы для каждой подсети (с узлов №3 и №6): 35 [root@5426-3]# arp Address HWtype 192.168.15.1 ether 5426-3 ether 5426-1 ether 5426-4 ether HWaddress F8:66:F2:1D:T9:20 00:21:85:18:08:BD 00:21:85:18:45:3A 00:21:85:18:32:8F Flags Mask Iface C eth1 C eth1 C eth1 C eth1 [root@5426-6]# arp Address HWtype 192.168.15.1 ether 5426-7 ether 5426-8 ether 5426-5 ether 5426-4 ether 5426-9 ether HWaddress F8:66:F2:1D:E9:20 00:21:85:18:06:D6 00:21:85:18:07:AC 00:21:85:18:54:5С 00:21:85:18:59:3Е 00:21:85:18:58:8F Flags Mask Iface C eth2 C eth2 C eth2 C eth2 C eth2 C eth2 Аналогично в Windows Отображение и изменение таблиц преобразования IP-адресов в физические, используемые протоколом разрешения адресов (ARP). ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] [-v] Отображает текущие ARP-записи, опрашивая текущие данные протокола. Если задан inet_addr, то будут отображены IP и физический адреса только для заданного компьютера. Если ARP используют более одного сетевого интерфейса, то будут отображаться записи для каждой таблицы. -g То же, что и параметр -a. -v Отображает текущие ARP-записи в режиме подробного протоколирования. Все недопустимые записи и записи в интерфейсе обратной связи будут отображаться. inet_addr Определяет IP-адрес. -N if_addr Отображает ARP-записи для заданного в if_addr сетевого интерфейса. -d Удаляет узел, задаваемый inet_addr. Параметр inet_addr может содержать знак шаблона * для удаления всех узлов. -s Добавляет узел и связывает адрес в Интернете inet_addr с физическим адресом eth_addr. Физический адрес задается 6 байтами (в шестнадцатеричном виде), разделенных дефисом. Эта связь является постоянной eth_addr Определяет физический адрес. if_addr Если параметр задан, он определяет адрес интерфейса в Интернете, чья таблица преобразования адресов должна измениться. Если параметр не задан, будет использован первый доступный интерфейс. Пример: > arp -s 157.55.85.212 00-aa-00-62-c6-09 .. Добавляет статическую запись. > arp -a .. Выводит ARP-таблицу. -a 36 Выведем таблицу Протокол ARP является абсолютно незащищённым. На использовании недостатков протокола ARP основан ARP-spoofing (ARP-poisoning) — техника сетевой атаки, позволяющая перехватывать трафик между узлами. Подробнее Существует несколько программ предназначенных для борьбы с ARP-spoofing и управления ARP таблицами. Демон arpwatch создает базу соответствия между IP и MAC-адресами, и при обнаружении аномалий, посылает сообщение в системный журнал и по электронной почте администратору системы. 37 В файловой системе /proc/net/ найти текущую информацию о сетевой подсистеме ядра. /proc/net Разные псевдо−файлы, содержащие информацию по какой−либо части сетевой подсистемы. Они содержат структуры в ASCII и прекрасно читаются утилитой cat(1). Однако, стандартная утилита netstat(8) предоставляет более понятную информацию из этих файлов. /proc/net/arp Файл содержит читабельный ASCII−дамп ARP таблицы ядра, которая используется для определения адресов. Она покажет как полученные динамически, так и заданные явно записи ARP. Формат файла: IP−адрес Тип обор. Флаги 192.168.0.50 eth0 192.168.0.250 0x1 Аппарат. адрес 0x1 0xc 0x2 Маска Устройство 00:50:BF:25:68:F3 00:00:00:00:00:00 * * eth0 Здесь "IP−адрес" это адрес машины в нотации IPv4, "Тип обор." это тип аппаратного обеспечения для этого адреса согласно RFC 826. Флаги — это внутренние флаги структуры ARP(определённые в /usr/include/linux/if_arp.h), а "Аппарат. адрес" — это адрес канального уровня для IP−адреса, если он известен. /proc/net/dev Псевдо−файл dev содержит информацию о состоянии сетевых устройств. Она представляет собой количество принятых и отправленных пакетов, количество ошибок и коллизий и другую базовую статистику. Эта информация используется программой ifconfig(8) для вывода отчёта о состоянии устройства. Формат информации: Интер−| Передано Принято | фейс |байт пакетов ошиб отбр fifo фрейм сжато пакетов ошиб отбр fifo колл несущ сжато lo: 2776770 11307 0 0 11307 0 eth0: 1215645 4324 0 0 0 ppp0: 1622270 5669 0 0 0 81 tap0: 0 7714 0 0 0 0 0 0 0 0 мульт−ст|байт 0 0 2776770 0 2751 427 0 0 0 0 0 0 0 0 1782404 5552 1 0 0 0 0 0 0 0 354130 0 0 0 0 0 7714 0 81 0 0 0 0 /proc/net/dev_mcast 38 Определено в /usr/src/linux/net/core/dev_mcast.c: индекс имя_интерфейса dmi_u dmi_g адрес_dmi 2 eth0 1 0 01005e000001 3 eth1 1 0 01005e000001 4 eth2 1 0 01005e000001 /proc/net/igmp Internet Group Management Protocol (Протокол Управления Интернет−Группами). Определён в /usr/src/linux/net/core/igmp.c. /proc/net/rarp Данный файл использует тот же формат, что и файл arp и содержит текущую обратную базу данных адресов ARP, используемую при работе служб обратного поиска адресов rarp(8). Если поддержки RARP нет в ядре, то этот файл не существует. /proc/net/raw Содержит дамп таблицы беспротокольных (RAW) сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение «s»" — это хешируемый слот ядра для сокета, «local_address» — это пара локальный адрес, номер протокола. «St» — это внутреннее состояние сокета. «tx_queue» и «rx_queue» — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля «tr», «tm−>when» и «rexmits» не используются в RAW. Поле «uid» содержит эффективный UID создателя сокета. /proc/net/snmp Этот файл содержит ASCII данные, необходимые SNMP−агенту для баз управляющей информации IP, ICMP, TCP и UDP. /proc/net/tcp Содержит дамп таблицы TCP−сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение "sl" — это хешируемый слот ядра для сокета, "local_address" — это пара локальный адрес и номер порта. "rem_address" — это пара удалённого локального адреса и номера порта. "St" — это внутреннее состояние сокета. "tx_queue" и "rx_queue" — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля "tr", "tm−>when" и "rexmits" содержат внутреннюю информацию ядра о состоянии сокета и полезны только для отладки. Поле "uid" содержит эффективный UID создателя сокета. /proc/net/udp Содержит дамп таблицы UDP−сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение "sl" — это хешируемый слот ядра для сокета, "local_address" — это пара локальный адрес и номер порта. "rem_address" — это пара удалённого локального адреса и номера порта. "St" — 39 это внутреннее состояние сокета. "tx_queue" и "rx_queue" — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля "tr", "tm−>when" и "rexmits" не используются в UDP. Поле "uid" содержит эффективный UID создателя сокета. Формат: sl local_address rem_address uid st tx_queue rx_queue tr rexmits tm−>when 1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0 1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0 1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 /proc/net/unix Показывает список доменных сокетов UNIX, присутствующих в системе, а также их состояния. Формат: Номер СчётчикСсылок Протокол Флаги Тип Состояние Путь 0: 00000002 00000000 00000000 0001 03 1: 00000001 00000000 00010000 0001 01 /dev/printer Здесь «Номер» — это номер слота в таблице ядра, «СчётчикСсылок» — количество пользователей данного сокета, «Протокол» — в настоящий момент всегда 0, «Флаги» — представляет внутренние флаги ядра, содержащие состояние сокета. «Тип» в настоящий момент всегда равен "1" (датаграммы доменных сокетов UNIX ядром пока не поддерживаются). «Состояние» — это внутреннее состояние сокета, а «Путь» — это путь привязки (если он есть) данного сокета. 40