1. Конфигурирование сетевого интерфейса.

advertisement
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
Download