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

advertisement
Нижегородский Государственный Технический
Университет им. Р.Е.Алексеева
Лабораторная работа №2
«Настройка сетевой системы ОС Linux»
Выполнил студент группы 10-В-1:
Сидоренко Олег
Проверил:
Кочешков А. А.
Нижний Новгород
2014 год
Цель работы
Изучение установки и конфигурирования сетевого интерфейса, маршрутизации и
контроля сетевых связей в ОС Linux.
1. Конфигурирование сетевого интерфейса.
Предполагаемая архитектура сети в аудитории :
Сеть физически разделена на 2 сегмента. В одной сети присутствует компьютер с двумя
сетевыми интерфейсами, который выполняет роль шлюза.
Первая подсеть:
Адрес сети: 192.168.26.0
Маска: 255.255.255.128
Узлы сети: 192.168.26.1 - 192.168.26.126
Broadcast: 192.168.26.127
Адресация: Адрес сети + № рабочего места.
Вторая подсеть:
Адрес сети: 192.168.26.128
Маска: 255.255.255.128
Узлы сети: 192.168.26.129 - 192.168.26.254
Broadcast: 192.168.26.255
Адресация: Адрес сети. 200 + № рабочего места.
Воссоздание таких же условий для выполнения дома невозможно, поэтому часть работы
содержит примеры выполнения разнообразных действий и на другой архитектуре сети, которая
будет указана.
Настроим параметры сети:
Выполним команду #ifconfig. Используем eth1, для него укажем IP адрес, максу сети и адрес
broadcast.
[root@5426-7 ~]# ifconfig eth1 192.168.26.207 netmask 255.255.255.128 broadcast
192.168.26.255
Проверим состояния интерфейсов:
[root@5426-7 os]# ifconfig
eth1
Link encap:Ethernet HWaddr 00:21:85:18:06:D6
inet addr:192.168.26.207 Bcast:192.168.26.255 Mask:255.255.255.128
inet6 addr: fe80::221:85ff:fe18:6d6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:335 errors:0 dropped:4219664546 overruns:0 frame:0
TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44041 (43.0 KiB) TX bytes:9794 (9.5 KiB)
Interrupt:27 Base address:0x4000
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:27400 (2.6 KiB) TX bytes:2740 (2.6 KiB)
Проверим доступность хостов сети командой #ping. Причем используем три разных варианта
задания адреса:
2
Правильный адрес своей сети:
[root@5426-7 os]# ping 192.168.26.208
PING 192.168.26.208 (192.168.26.208) 56(84) bytes of data.
64 bytes from 192.168.26.208: icmp_seq=1 ttl=64 time=1.004 ms
64 bytes from 192.168.26.208: icmp_seq=2 ttl=64 time=0.082 ms
64 bytes from 192.168.26.208: icmp_seq=3 ttl=64 time=0.085 ms
^С
--- 192.168.26.208 ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 21ms
rtt min/avg/max/mdev = 0.082/0.391/1.007/0.435 ms
По данным можно сказать, что связь установлена.
Правильный адрес чужой сети:
[root@5426-7 os]# ping 192.168.26.3
connect: Network is unreachable
Сеть недоступна.
Неправильный адрес своей сети:
[root@5426-7 os]# ping 192.168.26.210
PING 192.168.26.210 (192.168.26.210) 56(84) bytes of data.
From 192.168.26.210 icmp_seq=1 Destination Host Unreachable
From 192.168.26.210 icmp_seq=2 Destination Host Unreachable
From 192.168.26.210 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.26.210 ping statistics --3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 6999ms
, pipe 3
Такой ответ команды говорит о том, что узел не был обнаружен.
Рассмотрим назначение и содержимое конфигурационных файлов.
 /etc/sysconfig/network
 /etc/sysconfig/network-scripts/*
 /etc/rc.d/rc.sysinit
 /etc/rc.d/rc3.d/*
 /etc/modules.conf
/etc/sysconfig/network
Конфигурационный файл, содержащий информацию обо всех сетевых интерфейсах и
маршрутизации для данного узла. Параметры задаются в виде ключей со значением:
 NETWORKING= yes/no - Настраивать сеть.
 FORWARD_IPV4= yes/no - Выполнять IP маршрутизацию.
 HOSTNAME=hostname. hostname имя узла.
 GATEWAY=GWIP. GWIP - IP адрес удаленного маршрутизатора.
 GATEWAYDEV=GWDEV. GWDEV - имя устройства (eth#) через которое имеется доступ
к удаленному маршрутизатору.
Рис. 1 /etc/sysconfig/network
/etc/sysconfig/network-scripts/
В этом каталоге расположены файлы настроек и сценарии для работы с различными типами
сетевых устройств и подключений. Например, файл /etc/sysconfig/network-scripts/ifcfg-lo
содержит информацию о настройке сетевой Ethernet-карты с интерфейсом lo. Также здесь
присутствуют скрипты запуска и останова интерфейсов (ifup-* и ifdown-*)
3
Рис. 2. Содержимое /etc/sysconfig/network-scripts/
Чтобы изменить сетевые адреса или добавить новое устройство на новом интерфейсе,
необходимо верно отредактировать файл с именем интерфейса, или создать новый, и внести в
него соответствующие изменения.
 DEVICE=devicename. devicename - имя физического сетевого устройства(eth1, p2p7).
 IPADDR=ipaddr. Задает IP адрес.
 NETMASK=netmask. Определяет сетевую маску.
 NETWORK=network. Определяет IP адрес сети.
 BROADCAST=broadcast. Определяет широковещательный IP адрес.
 ONBOOT= yes/no. Активировать интерфейс во время загрузки.
 BOOTPROTO=proto. Использование протокола во время загрузки. proto:
o none - не использовать протоколов времени загрузки.
o bootp - использовать протокол bootp (сейчас pump).
o dhcp - использовать dhcp протокол.
 USERCTL=yes/no. Контроль за устройством доступен не только root.
Рис. 3. /etc/sysconfig/network-scripts/ifcfg-p2p1
/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-раздела, монтирование и проверка
локальных файловых систем.

rc.local вызывается по окончании исполнения файла rc и предназначен для команд,
добавляемых администратором для запуска в процессе начальной загрузки. В него
рекомендуется помещать дополнительные сервисы или персональные настройки.

Каталоги /rcX.d играют исключительную роль в процессе загрузки, поскольку они
содержат основные скрипты, необходимые для организации процесса загрузки. В каталоге
/rcX.d размещаются ссылки на файлы скриптов, находящихся в каталоге /etc/rc.d/init.d.
Названия этих ссылок имеют имена, начинающиеся либо с буквы К(kill), либо с буквы
S(start), после которой идет двухзначное число и имя соответствующей службы. Файл,
начинающийся с буквы S, отвечает за старт соответствующего процесса, а файл,
начинающийся с буквы К, отвечает за остановку соответствующего процесса. Цифры,
идущие после S или К в именах ссылок, задают порядок запуска скриптов.
o /etc/rc.d/rc3.d/ соответствует уровню выполнения 3 (многопользовательский
режим с поддержкой сети).
/etc/modules.conf
Содержит список модулей, а также передаваемые им параметры. При загрузке система читает
этот файл и загружает указанные в нем модули. Загрузка модулей из файла modules.conf
обеспечивается программой modprobe, которая вызывается из сценария инициализации системы
/etc/rc.d/rc.sysinit. Во время работы системы можно явно загрузить нужный модуль. Для этого
нужно использовать программу insmod, входящую в состав пакета modutils.
Конфигурационный файл для загрузки модулей ядра
 alias <имя-модуля> <тип-модуля> – указывает псевдоним для устройства
 install <имя-модуля> <команда> – указывает выполнить заданную команду при загрузке
модуля. На самом деле, указанный здесь модуль не загружается (он может и не
существовать вовсе), но при выполнении modprobe указанная команда будет выполнена
 remove <имя-модуля> <команда> – аналогична install, но вызывается при выгрузке модуля
 include <имя-файла> – включить и обработать заданный файл
5
2. Управление пространством сетевых имен.
За определение и разрешение символьных имен отвечают сразу несколько файлов. Рассмотрим
их назначение:
 /etc/hostname — одержит символьное имя локального узла. Изменить имя можно с
помощью программы #netcfg, которая заменяет хост-имя и помещает новое имя в файл.
 /etc/host.conf — управляет разрешением имен. Он сообщает, какие сервисы использовать
при разрешении имен и в каком порядке.
Строка multi допускает множество IP адресов для одного имени компьютера в /etc/hosts.
Важная опция – Order - определяет порядок в котором использцются сервисы разрешения
имен. Допустимые значения:
o bind – для запроса к серверу имен
o hosts – поиск в /etc/hosts
o NIS – разрешение с помощью механизма NIS
Порядок, в котором записаны значение определяет порядок последовательность
использования служб.
 /etc/resolv.conf — задает адреса DNS-серверов, которые будут использоваться при
разрешении имен. Данный файл является конфигурационным файлом преобразователя.
Он обеспечивает доступ к DNS для разрешения адресов Internet. Строка nameserver
указывает системы, на которые локальная система должна посылать запросы для
разрешения имён хостов в IP-адреса и наоборот
 /etc/hosts — статическая таблица соответствия DNS-имен и IP-адресов. Используется для
разрешения имен без запросов к DNS-серверу.
 /etc/hosts.allow и /etc/hosts.deny. Эти файлы содержат разрешение входов и отрицание
доступа, соответственно, к услугам и хостам. Если запись была найдена в hosts.allow,
доступ предоставляется независимо от hosts.deny. Если соответствие найдено в
hosts.deny, то запрос будет отклонен и связь разорвана. Если никакое соответствие не
найдено вообще, запрос будет принят. Записи в этих файлах имеют следующий формат:
servicelist: hostlist [:shellcmd].
o servicelist – службы из файла /etc/services или ключевое слово ALL
o hostlist – IP-адреса, имена хостов или ключевые слова ALL, LOCAL, UNKNOWN.
o shellcmd – может содержать команду shell, которая сработает когда запись файла
совпадет с запросом.
 /etc/networks - отображает имя сети на сетевой номер и наоборот.
Для работы зададим следующую конфигурацию:
В файле /etc/hosts зададим соответствие именам всем машинам обоих сегментов сети
127.0.0.1
192.168.26.1
192.168.26.3
192.168.26.204
192.168.26.205
192.168.26.206
192.168.26.207
192.168.26.208
192.168.26.209
localhost.localdomain
localhost
localhost
5426-1
5426-3
5426-4
5426-5
5426-6
5426-7
5426-8
5426-9
Причем для машины 5426-4 укажем адрес своей сети.
Строка, задающая адрес localhost, должна присутствовать обязательно, иначе возможны разного
рода ошибки.
В файле /etc/networks зададим соответствие именам сегментам сети:
net2 192.168.26.128
net1 192.168.26.0
Теперь проверим доступ к компьютерам по именам:
[root@5426-7 etc]# ping 5426-8
PING 5426-8 (192.168.26.208) 56(84) bytes of data.
64 bytes from 5426-8 (192.168.26.208): icmp_seq=1 ttl=64 time=1.75 ms
64 bytes from 5426-8 (192.168.26.208): icmp_seq=2 ttl=64 time=0.090 ms
Машина доступна, а значит связь установлена.
6
3. Формирование подсетей и маршрутизация.
Получим таблицу маршрутизации при помощи команды #route:
[root@5426-7 etc]# route
Kernel IP routing table
Destination
Gateway
net2
*
Genmask
Flags Metric Ref
255.255.255.128 U
0
0
Use Iface
0 eth1
Используем аргумент –n, чтобы избавиться от символьных имен
[root@5426-7 etc]# route -n
Kernel IP routing table
Destination
Gateway
192.168.26.128 0.0.0.0
Genmask
Flags Metric Ref
255.255.255.128 U
0
0
Use Iface
0 eth1
Маршрут определяет начальную точку процесса передачи пакета и показывает, на какой узел
система должна передать пакет, чтобы он достиг пункта назначения. Маршруты содержаться в
таблице маршрутизации, которая хранится в файле /proc/net/route.
Каждый столбец показывает какое-либо значение параметра:
 Destination - IP-адрес конечного пункта маршрута
 Gateway – IP-адрес(хост-имя) шлюза, используемого на данном маршруте, * - шлюз не
используется
 Genmask – маска сети маршрута
 Flags – тип или состояние маршрута: U – активный, H – хост, G – шлюз, D –
динамический.
 Metric – количество переходов до шлюза
 Ref – количество использований маршрута на текущий момент
 Use – количество пакетов, пересланных по данному маршруту
 Iface – тип интерфейса, используемого на данном маршруте
Основной принцип работы: На адрес приемника накладывается маска подсети. Если этот
результат совпадает с адресом назначения в таблице, то пакет проходит.
Если система подключена к сети, в таблице маршрутизации должна быть сделана по крайней
мере одна запись, задающая маршрут по умолчанию. По этому маршруту пакет посылается в том
случае, если все остальные маршруты не могут привести его в пункт назначения. Пункт
назначения для такого маршрута задается ключевым словом default.
Когда ядру нужно определить, как и куда переправить пакет с определенным адресом назначения,
оно смотрит на таблицу маршрутизации. При сравнении с каждой записью на адрес назначения в
пакете накладывается маска маршрута (выполняется побитовая конъюнкция). Если результат
совпадает с адресом назначения маршрута, выбирается этот маршрут. При наличии нескольких
подходящих записей обычно выбирается маршрут с наиболее длинной маской и малой метрикой.
Добавим новый маршрут к соседней сети:
[root@5426-7 etc]# route add -net 192.168.26.0 netmask 255.255.255.128 gw
192.168.26.204
Должна была появиться новая запись в таблице. Проверим это командой #route:
[root@5426-7 etc]# route
Kernel IP routing table
Destination
Gateway
net2
*
net1
5426-4
Genmask
Flags Metric Ref
255.255.255.128 U
0
0
255.255.255.128 UG
0
0
Use Iface
0 eth1
0 eth1
Как видно из полученных данных, в таблице маршрутизации добавилась сеть net1, с адресом
шлюза, и видно, что в столбце Flags появился флаг G, означающий, что маршрут проходит через
заданный шлюз.
Проверим доступность узлов соседней сети при помощи команды #ping, указав правильный
адрес соседней сети.
7
Команда #ping укажет на ошибку – узел не был найден. Это значит, что сеть была найдена (в
отличии от испытания в первом пункте), но узел оказался недоступен. Это говорит о том, что
маршрутизатор не выполняет требуемых операций. Должна быть подключена опция
маршрутизации, установить её можно в хранилище параметров в псевдофайловой системе proc.
Перейдем по пути /proc/sys/net/ip4. Параметр ipforward необходимо установить в 1, тем самым
включив необходимую функцию.
Проверим доступность узлов другой сети:
[root@5426-7 etc]# ping 192.168.26.3
PING 192.168.26.3 (192.168.26.3) 56(84) bytes of data.
64 bytes from 192.168.26.3: icmp_seq=1 ttl=63 time=0.492 ms
64 bytes from 192.168.26.3: icmp_seq=2 ttl=63 time=0.146 ms
^C
--- 192.168.26.3 ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 1827ms
rtt min/avg/max/mdev = 0.146/0.319/0.492/0.173 ms
Узлы доступны, связь установлена.
Traceroute - утилита предназначенная для отслеживания пути прохождения пакетов по IP-сети из
пункта А в пункт Б. Дословно, в общем случае, результатом работы traceroute будет список всех
промежуточных узлов, находящихся между А и Б. В некоторых реализациях можно получить
время задержки до каждого промежуточного узла - время прохождения пакета туда и обратно.
Трассировка, помимо тех данных которые выдает команда ping так же показывает узлы, через
которые прошли пакеты, чтобы попасть в сеть назначения и количество хопов по пути туда.
Выполним трассировку маршрута в соседнюю сеть:
[root@5426-7 etc]# traceroute –n 192.168.26.3
traceroute to 192.168.26.3 (192.168.26.3), 30 hops max, 60 byte packets
1 192.168.26.204 0.097 ms 0.081 ms 0.074 ms
2 192.168.26.3 0.151 ms 0.154 ms 0.148 ms
По полученным данным видно - сети разделены одним маршрутизатором (192.168.26.204).
В данной архитектуре сети есть возможность выхода во внешнюю сеть.
На канальном уровне сеть1 изолирована на коммутаторе D-Link, а сеть2 на устройстве 3Com с
возможностью выхода во внешнюю сеть. Адрес порта маршрутизатора 192.168.15.1. Таким
образом, необходимо сконфигурировать третью IP-сеть:
Адрес сети: 192.168.15.0
Маска: 255.255.255.254/27
Адресация: 192.168.15.20 + номер рабочего места
Шлюз: 192.168.15.1
Есть возможность присвоить одному интерфейсу несколько адресов.
Выполним следующую команду:
[root@5426-7 etc]# ifconfig eth1:0 192.168.15.26 netmask 255.255.255.224
Вывод конфигурации укажет на правильность действий.
[root@5426-7 etc]# ifconfig
eth1
Link encap:Ethernet HWaddr 00:21:85:18:06:EA
inet addr:192.168.26.206 Bcast:192.168.26.255 Mask:255.255.255.128
inet6 addr: fe80::221:85ff:fe18:6ea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:920 errors:0 dropped:0 overruns:0 frame:0
TX packets:114 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:103872 (101.4 KiB) TX bytes:14115 (13.7 KiB)
Interrupt:27 Base address:0xe000
eth1:0
Link encap:Ethernet HWaddr 00:21:85:18:06:EA
inet addr:192.168.15.26 Bcast:192.168.15.31 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
8
Interrupt:27 Base address:0xe000
Проверим доступность шлюза:
[root@5426-7 etc]# ping 192.168.15.1
PING 192.168.15.1 (192.168.15.1) 56(84) bytes of data.
64 bytes from 192.168.15.1: icmp_seq=1 ttl=255 time=1.08 ms
64 bytes from 192.168.15.1: icmp_seq=2 ttl=255 time=0.395 ms
^C
--- 192.168.200.18 ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 1782ms
rtt min/avg/max/mdev = 0.395/0.731/1.067/0.336 ms
Все пакеты достигли назначения, связь есть.
Чтобы внешняя сеть стала доступной в таблицу маршрутизации нужно добавить путь по
умолчанию, который будет использоваться в тех случаях, когда все другие записи не подходят.
Этот маршрут соответствует адресу назначения 0.0.0.0 и маске 0.0.0.0. Маршрут с такой маской
будет использоваться в последнюю очередь.
[root@5426-7 etc]# route add default gw 192.168.15.1
[root@5426-7 etc]# route -n
Kernel IP routing table
Destination
Gateway
Genmask
192.168.15.0
0.0.0.0
255.255.255.224
192.168.26.128
0.0.0.0
255.255.255.128
192.168.26.0
192.168.26.204
255.255.255.128
0.0.0.0
192.168.15.1
0.0.0.0
Flags
U
U
UG
UG
Metric
0
0
0
0
Ref
0
0
0
0
Use
0
0
0
0
Iface
eth1:0
eth1:0
eth1:0
eth1:0
Маршрут был корректно добавлен и появился в таблице.
Команда #route преобразует IP-адреса обратно в DNS-имена, используя указанный в resolv.conf
сервер. Укажем в этом файле IP-адрес DNS-сервера строчкой nameserver 192.168.200.18
Проверим доступность DNS-сервера, который имеет IP-адрес 192.168.200.18
[root@5426-7 etc]# 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 ttl=127 time=0.588 ms
64 bytes from 192.168.200.18: icmp_seq=3 ttl=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-сервер доступен и выполняет свою работу.
Т.к. первая подсеть изолирована, и из вне виден лишь компьютер 5426-4, то есть необходимость
поднять NAT. NAT (Network Address Translation) — это механизм в сетях TCP/IP, позволяющий
преобразовывать IP-адреса транзитных пакетов.
Принимая пакет от локального компьютера, роутер(в данном случае 5426-4) смотрит на IP-адрес
назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру.
Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан
локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету»
транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IPадрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным
компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во
временной таблице. Через некоторое время после того, как клиент и сервер закончат
обмениваться пакетами, роутер сотрет у себя в таблице запись о n-ом порте за сроком давности.
Назначим правило, позволяющее включать NAT:
# iptables –t nat –A POSTROUTING –S 192.168.26.0/27 –j MASQUERADE
Проверим доступность удаленного ресурса в сети Интернет: www.ngtu.nnov.ru
[root@5426-7 etc]# ping www.nntu.nnov.ru
PING www.ngtu.nnov.ru (195.122.232.2) 56(84) bytes of data.
64 bytes from www.ngtu.sci-nnov.ru (195.122.232.2): icmp_seq=1 ttl=57 time=2.91 ms
64 bytes from www.ngtu.sci-nnov.ru (195.122.232.2): icmp_seq=2 tt2=57 time=2.44 ms
9
64 bytes from www.ngtu.sci-nnov.ru (195.122.232.2): icmp_seq=3 tt3=57 time=2.82 ms
^C
--- www.ngtu.nnov.ru ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2815ms
rtt min/avg/max/mdev = 2.447/2.729/2.915/0.207 ms
Выполним трассировку пакетов до www.ngtu.nnov.ru, чтобы определить количество
маршрутизаторов на пути:
[root@5426-7 etc]# traceroute –n www.nntu.nnov.ru
traceroute to www.nntu.nnov.ru (195.122.232.2), 30 hops max, 60 byte packets
1 192.168.15.1 0.467 ms 0.536 ms 0.553 ms
2 10.10.255.2 0.857 ms 1.178 ms 1.038 ms
2 195.122.232.2 3.345 ms !X 3.334 ms !X 3.317 ms !X
Пакет прошел 3 маршрутизатора прежде чем достигнуть узла назначения. При этом 192.168.15.1
маршрутизатор факультета, 10.10.255.2 – маршрутизатор, располагающийся в первом корпусе
НГТУ.
Отметим, что подобная команда существует в Windows (tracert), однако, работает она иначе.
Tracert.
Значение времени жизни (TTL) первого отправляемого пакета устанавливается равным 1. Когда
протокол IP первого маршрутизатора принимает этот пакет, то он в соответствии со своим
алгоритмом уменьшает TTL на единицу и получает 0. Маршрутизатор отбрасывает пакет с
нулевым временем жизни и возвращает узлу-источнику ICMP-сообщение об ошибке истечения
времени дейтаграммы (ICMP-сообщение тип 11 код 0). Это сообщение содержит имя
маршрутизатора и его IP-адрес. Когда это ICMP-сообщение прибывает к отправителю, тот по
значению таймера узнает время оборота пакета(RTT), а также (из ICMP-сообщения) имя и IPадрес промежуточного маршрутизатора. Затем посылается следующий IP-пакет, но теперь со
значением TTL равным 2. Этот пакет уже доходит до второго маршрутизатора, но опять там
«умирает» о чем аналогичным, же образом сообщается узлу отправителю. И так до тех пор, пока
не достигнет конечного узла. На основании данных ответов строится трассировка.
Traсeroute.
Принцип идентичный, за одним исключением: Посылает в сторону заданного хоста UDPдатаграммы на какой-то произвольный порт, обычно — на «высокий» или на зарезервированный.
Сначала посылается серия из 3-х таких пакетов с TTL=1, по приходу ответов замеряется время
прохождения и определяется доменное имя транзитного узла. Затем, как сказано выше,
посылаются очередные серии пакетов с TTL=2 и т.д. В конце мы получаем от конечного хоста
отклик «Порт недоступен» (PORT_UNREACHABLE), что означает завершение трассировки.
При работе, в выводе маршрута могут появиться т. н. звездочки (* * *). Очень часто,
маршрутизаторы/хосты настраиваются таким образом, чтобы они не отвечали на подобного рода
запросы, в таком случае и появляются звездочки. Это совершенно не значит, что имеются какието проблемы. Делается это для того, чтобы разгрузить оборудование. В данном примере 1 и 8 хоп
не отвечает на UDP-датаграммы, однако если запустить traceroute c ключиком -I, то трассировка
дойдет, т.к. данный ключ заставляет посылать уже ICMP-датаграммы.
Следует отметить, что звездочки могут возникать и при трассировке ICMP-пакетами, это также
не значит, что существует проблема. Все зависит от того, как настроено оборудование.
Схема сети на канальном уровне
10
Рис.4. Схема сети на канальном уровне
На канальном уровне имеется 2 сети. Первая сеть объединят 4 узла на коммутаторе D-LINK.
Вторая сеть объединяет 5 узлов на коммутаторе 3COM. Порт коммутатора второй сети связан с
портом маршрутизатора на уровне факультета. Один из узлов имеет две сетевые карточки и
входит и в 1-ю и во 2-ю сеть.
Схема IP-сети аудитории с выходом в интернет
Рис. 5. Схема IP-сети аудитории.
Используя команду traceroute можно определить, что после маршрутизатора факультета пакеты
отправляются на маршрутизатор уровня университета(10.10.255.2), а затем в Интернет.
11
4. Средства конфигурирования сети в интерфейсной среде.
Найдем системные утилиты для конфигурирования сети.
Запустим Параметры системы. В разделе Оборудование можно найти апплет Сеть.
Рис.6. Раздел Оборудование Параметров системы
При запуске откроется окно, которое отобразит основную информацию по выбранному
подключению, а также позволить отключить его полностью, либо включить «Авиарежим»
Рис.7.Апплет Сеть
Кнопка Настроить откроет окно конфигурирования выбранного подключения. Там можно задать
его название, автоматическое подключение и настроить разные параметры, разделенные на 4
вкладки.
Рис.8. Изменение Проводное соединение 1
12
Вкладка «Проводные» содержит технические параметры такие как MAC-адрес устройства, MTU.
Во вкладке «Защита 802.1х» можно настраивать параметры контроля доступа и аутентификации:
выбрать метод аутентификации, задать имя пользователя и пароль и пр.
Рис.9. Вкладка Защита 802.1х
Вкладка «Параметры IPv4» позволяет настроить одноименные параметры. Есть возможность
выбора способа настройки:
 Автоматически (DHCP)
 Автоматически (DHCP, только адрес)
 Вручную
 Только для локальной сети
 Общий с другими компьютерами
 Не указывать адрес
Настроим соединение вручную. Зададим ip-адрес 192.168.26.207, маску 255.255.255.128 и шлюз
192.168.26.204.
Рис.10. Вкладка Параметры IPv4
Также в этой вкладке можно добавить маршруты в таблицу маршрутизации. Для этого надо
нажать на кнопку «Маршруты…» и в появившемся окне добавить маршрут путем задания
соответствующих значений.
Вкладка «Параметры IPv6» предоставляет аналогичные возможности для настройки, как и
предыдущая вкладка.
13
Рис.11. Вкладка Параметры IPv6
Стоит отметить, что настройки, установленные с помощью данного средства сохраняются и
после перезагрузки в отличие от настройки сетевых интерфейсов через команду ifconfig. Это
объясняется тем, что вносятся изменения непосредственно в конфигурационные файлы.
Утилита настройки соединений называется GNOME Network Manager. Она позволяет соединить
настройку всех типов сетей в единой утилите, и настраивать их общими, похожими методами.
Утилита управляется на стороне пользователя с помощью апплета, запускаемого демоном nmapplet, в системном лотке пользователя.
Для создания подключений следует пройти в меню Приложения – Прочие – Сетевые соединения
или вызвать утилиту из контекстного меню иконки соединения. Окно сетевых соединений имеет
5 вкладок, каждая из них содержит название какого-либо подключения и возможность его
изменить, нажав соответствующую кнопку или добавить новое.
Рис.12. Сетевые соединения
Проводные.
Содержит список проводных соединений. Настройка их полностью совпадает с
рассмотренной(запускается одна и та же утилита)
Беспроводные
Позволяет настраивать беспроводные сети, в конфигурационном окне имеется четыре вкладки
для разных параметров соединения:
14
Рис.13. Изменение Беспроводное соединение 1




Беспроводные: общие параметры сетевого соединения, такие как SSID, режимы работы,
mac и MTU.
Защита беспроводной сети: параметры соединения с сетью и метод аутентификации в ней.
Параметры IPv4: параметры IPv4.
Параметры IPv6: параметры IPv6.
Мобильные.
Позволяет настроить интернет соединений через мобильное широкополосное соединение.
Например через мобильный телефон, или модем провайдера. При подключении устройства
NetworkManager автоматически увидит его, и выведет мастер настройки соединения в котором
нужно будет указать вашего мобильного провайдера, и регион, после чего NetworkManager
найдёт нужные настройки в своей базе настроек.
Рис.14. Мастер настройки мобильного соединения
Рис.15. Выбор оператора мобильного соединения
15
Можно также указать настройки вручную. После прохождения всех шагов мастера, в основном
окне сетевых настроек, появиться новый пункт сетевого соединения.
VPN
Содержит в себе сети VPN, поддерживает протоколы vpnc, OpenVPN и MS pptp. Что бы добавить
VPN соединение можно использовать два пути. Первый с помощью мастера, либо с помощью
импорта из уже существующего файла с настройками. Мастер вызывает нужную форму в
зависимости от того какой вид VPN вы укажете.
DSL
Последняя вкладка отвечает за соединения DSL. Соединения управляются из окна с четырьмя
вкладками, два из которых известны, а еще два содержат форму ввода логина-пароля и форму
настроек аутентификации пользователя.
Рис.16. Изменение DSL-соединение 1
Рис.17.Вкладка Параметры PPP
16
5. Контроль за сетью, получение статистики и другой сетевой
информации.
Для дальнейших экспериментов пришлось перейти на другую архитектуру сети:
Имеется две машины с установленным дистрибутивом Linux с адресами 192.168.26.1,
192.168.26.2 и именами 5426-1 и 5426-2 соответственно.
Имеется одна машина с Windows-системой и адресом 192.168.1.33. В этой же сети находится
маршрутизатор с адресом 192.168.1.1 и возможностью выхода во внешнюю сеть.
netstat (network statistic) - это утилита командной строки показывающая сетевые соединения
(как входящие, так и исходящие), таблицы маршрутизации и различные статистики сетевых
интерфейсов. Утилита присутствует как в Unix системах, так и в Windows. Разница
использования утилиты в разных операционных системах небольшая, в основном заключается в
синтаксисе, а именно в ключах.
Четыре наиболее распространенных варианта использования команды netstat:
 проверка состояния сетевых соединений;
 анализ информации о конфигурации интерфейсов;
 изучение таблицы маршрутизации;
 получение статистических данных о различных сетевых протоколах.
Проверка состояния сетевых соединений
Будучи вызванной без аргументов, команда #netstat выдает информацию о состоянии активных
TCP- и UDP-портов. Неактивные серверы, ожидающие запросов на установление соединений,
как правило, не отображаются.
Чтобы отобразить состояние всех соединений можно воспользоваться командой с аргументам -a,
более того, можно уточнить что просмотреть – TCP или UDP соединения добавив после -a
соответствующий символ(t или u).
Выполним команду #netstat –at
Рис.18. Результат команды #netstat –at
Адреса представлены в формате имя_компьютера:сервис, где сервис — номер порта. Для
известных сервисов порты указаны в символическом виде (соответствия между номерами портов
и их именами определены в файле /etc/services). При наличии опции -n все адреса отображаются
в числовом виде.
В колонках Send-Q и Recv-Q показывается, сколько запросов находится во входящих и
исходящих очередях на данном компьютере. На другом конце соединения размеры очередей
17
могут быть другими. Желательно, чтобы эти значения были близки к нулю и не были ненулевыми
постоянно.
Состояние соединения имеет значение только для протокола TCP. Протокол UDP не проверяет
факт установления соединения. Наиболее распространенные состояния:
 ESTABLISHED (установлено) — для активных соединений,
 LISTEN (ожидание) — для серверов, ожидающих поступления запросов,
 TIME_WAIT (ожидание закрытия) — для соединений, находящихся в процессе закрытия.
Команда #netstat позволяет проверить правильность настройки серверов и диагностировать
определенные виды нарушений связи, особенно при работе с протоколом TCP. Например, если
соединение находится в состоянии SYN_SENT, это означает наличие процесса, который пытается
установить контакт с несуществующим или недоступным сервером.
Если команда netstat сообщает о большом количестве соединений, находящихся в состоянии
SYN_WAIT, то компьютер, вероятно, не в состоянии обработать запросы на установление
соединений.
Проверим, что покажет команда netstat при подключении с другого узла с помощью ssh. Для этого
выполним команду #netstat -at, выполним подключение (команда #ssh 5426-1)на другом узле и
снова выполним #netstat -at.
Рис.19. Результат команды #netstat -at
Рис.20. Результат команды #netstat –at после выполнения подключения.
18
После подключения состояние соединение, закрепленное за ssh, изменилось из LISTEN в
ESTABLISHED, т.е. оно стало активным. Причем в столбцах адресов стало указываться имя
компьютера к которому совершили подключение(5426-1), и который выступил его
инициатором(5426-2).
В windows-системах сама команда и выводящиеся результаты немного отличаются.
Выполним команду netstat –a –p tcp.
Рис.21. Результат команды netstat –a –p tcp
Команда имеет немного другой синтаксис и в выводе отсутствует информация о количестве
запросов во входящих и исходящих очередях
.
Команда netstat -i сообщает о состоянии сетевых интерфейсов.
Рис.22. Результат команды netstat -i
Вывод статистики представлен в виде таблицы, каждая строчка которой соответствует одному из
интерфейсов, а столбец одному из показателей:
Iface - имя интерфейса
MTU – максимальное число байтов в пакете
RX-OK – пакеты, принятые без ошибок
RX-ERR - пакеты, принятые с ошибками
RX-DRP – пропавшие пакеты
RX-OVR – ошибки из-за превышения скорости
TX-OK – пакеты, переданные без ошибок
TX-ERR – пакеты, переданные с ошибками
TX-DRP – пакеты, потерянные при передачи
TX-OVR – пакеты, которые не смогли передать
Flg – характеристики интерфейса:
 B – принимает широковещательные пакеты,
 L – закольцовывающий интерфейс,
 M – изменяется динамически,
 R – интерфейс работает,
 U – интерфейс активизирован
Количество ошибок должно составлять менее 1% от числа пакетов. Если частота появления
ошибок высока, нужно сравнить эти показатели на нескольких соседних компьютерах. Большое
число ошибок на одном компьютере свидетельствует о наличии проблемы в его интерфейсе или
соединении, тогда как высокая частота ошибок, возникающих на всех компьютерах, в
большинстве случаев обусловлена наличием проблемы в среде передачи.
Работу сетевого интерфейса также можно контролировать в режиме реального времени. Для
этого применяют команду #netstat –i t , где t – время в секундах, через которое будет выводится
новая информация об интерфейсах. Непрерывный режим работы команды #netstat особенно
эффективен при выслеживании источника ошибок. Т.к. мы можем отследить когда теряются
пакеты. Команда #netstat -i может сообщить о существовании проблем, но она не скажет, какова
причина ошибок. Наблюдение за сетью при различных уровнях загруженности позволит
получить гораздо более полное представление о том, что происходит.
Аналогов в windows-системах нет.
19
Получение статистических данных о различных сетевых протоколах
Команда #netstat -s выдает содержимое всевозможных счетчиков, используемых в сетевых
программах. Информация разбивается на разделы в соответствии с протоколами: IP, ICMP, TCP и
UDP.
Выполним #netstat –s и проанализируем полученную статистику
Рис.23. Результат команды #netstat –s
Основное замечание – 2 пакета было отброшено, потому что не был найден маршрут.
Рис.24. Результат команды #netstat –s. Разделы ICMP
Отметим, что количество запросов совпадает с количеством ответов, но не наоборот. Причем в
статистике отмечено кол-во сообщений, означающих, что назначение не достижимо.
Рис.25. Результат команды #netstat –s. Раздел TCP
В разделе TCP указано установленное соединение, а также количество открытых соединений.
Как только соединение, открытое ранее(по ssh) закроется, в этом разделе это будут отображено.
20
Результат команды в системе Windows аналогичен результату команды в linux. Однако, в linux,
результат включает обобщающую статистику по протоколам, чего нет в Windows.
Рис.26. Результат команды netstat –s. Раздел IPv4
Рис.27. Результат команды netstat –s. Раздел ICMPv4
Изучение таблицы маршрутизации
Команда #netstat -r отображает таблицу маршрутизации ядра.
Рис.28. Результат команды #netstat –r
В колонке Flags отображаются флаги, характеризующие маршрут: U (up) — активный, G
(gateway) — шлюз, H (host) — узловой (связан с конкретным адресом, а не сетью). Флаг Dобозначает маршрут, полученный в результате переадресации по протоколу ICMP. Флаги G и H
вместе обозначают маршрут к компьютеру, проходящий через промежуточный шлюз. Остальные
поля содержат статистические данные о маршруте: текущее число TCP-соединений по этому
маршруту, количество отправленных пакетов и имя используемого интерфейса. Точный вид
представленных данных зависит от конкретной операционной системы.
 MSS (Maximum Segment Size) – определяет максимальный размер пакета для этого
маршрута
 Window – задает максимальное количество данных, которое система примет в одном
пакете с удаленного компьютера
 irtt (initial round trip time) – задает значение, которое используется при установке
подключения; для большинства сетей подходит значение по умолчанию, но для некоторых
медленных сетей (особенно ряд типов пакетного радио) время слишком короткое, что
вызывает ненужные повторы
 Iface – показывает, к какому сетевому интерфейсу относится маршрут
21
Приведенный вариант команды #netstat полезен для проверки правильности таблицы
маршрутизации. Особенно важно убедиться в наличии и корректности стандартного маршрута.
Иногда он обозначается в виде адреса со всеми нулями (0.0.0.0), иногда — словом default.
В windows-системах результат команды содержит меньше вспомогательных столбцов(например,
flags,mss). Но присутствует список всех интерфейсов отдельно.
Рис.29. Результат команды netstat –r
Изучить работу протоколов 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-ответа.
22


Хост-получатель, вместе с ответом, шлёт также RARP-запрос, адресованный
отправителю, для того, чтобы проверить его IP-адрес.
После проверки IP-адреса отправителя начинается передача пакетов данных.
Протокол RARP (Обратный протокол преобразования адресов) - протокол третьего (сетевого)
уровня модели OSI, выполняет обратное отображение адресов, то есть преобразует аппаратный
адрес в IP-адрес.
Протокол применяется во время загрузки узла, когда он посылает групповое сообщение-запрос
со своим физическим адресом. Сервер принимает это сообщение и просматривает свои таблицы
(либо перенаправляет запрос куда-либо ещё) в поисках соответствующего физическому, IPадреса. После обнаружения найденный адрес отсылается обратно на запросивший его узел.
Другие станции также могут «слышать» этот диалог и локально сохранить эту информацию в
своих ARP-таблицах.
RARP позволяет разделять IP-адреса между не часто используемыми хост-узлами. После
использования каким либо узлом IP-адреса он может быть освобождён и выдан другому
узлу.RARP является дополнением к ARP, и описан в RFC 903.
Протокол BOOTP - сетевой протокол, используемый для автоматического получения
клиентом IP-адреса. Это обычно происходит во время загрузки компьютера. BOOTP позволяет
бездисковым рабочим станциям получать IP-адрес прежде, чем будет загружена полноценная
операционная система. Исторически это использовалось для Unix-подобных бездисковых
станций, которые в том числе могли получать информацию о местоположении загрузочного
диска посредством этого протокола. А также большими корпорациями для установки
предварительно настроенного программного обеспечения на новоприобретённые компьютеры.
На BOOTP основан DHCP (Dynamic Host Configuration Protocol).
Для работы с таблицей ARP предназначена утилита arp.
Используем её, чтобы вывести кэш-таблицу протокола arp. Так можно найти MAC-адреса всех
сетевых карт всех компьютеров в подсети(эксперимент проводится в аудитории).
Изначально arp-таблица пуста, чтобы она заполнилась динамическими записями достаточно
обратиться к узлам сети. Это можно сделать командой #ping.
Выведем кэш-таблицу arp для первой сети:
[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
C
C
C
C
Mask
Iface
eth1
eth1
eth1
eth1
Flags
C
C
C
C
C
C
Mask
Iface
eth1
eth1
eth1
eth1
eth2
eth1
Кэш-таблица arp для второй сети:
[root@5426-7]# arp
Address
HWtype
192.168.15.1 ether
5426-6
ether
5426-8
ether
5426-5
ether
5426-4
ether
5426-9
ether
HWaddress
F8:66:F2:1D:T9:20
00:21:85:18:06:EA
00:21:85:18:07:AC
00:21:85:18:54:5С
00:21:85:18:59:3Е
00:21:85:18:58:8F
Можно редактировать кэш ARP, явно добавляя в него записи (вручную или из файла) и удаляя
их. Такие записи называются статическими.
Для примера добавим статическую запись в кэш-таблицу arp.
Выполним #arp –s 192.168.26.33 00:21:16:ED:15:AF, затем просмотрим таблицу.
Рис.30.Добавление статической записи
23
Запись была добавлена с флагами C - строка заполнена и M - постоянное значение.
В Windows –системе также имеется аналогичная команда.
Arp с параметром –a выведет всю arp-таблицу для каждого интерфейса.
Выполним такую команду:
Рис.31. Вывод команды arp -a
Вывод отобразит статические и динамические адреса узлов и их физические адреса. Как и
рассмотренные ранее windows-команды она имеет меньший объем выводимый информации.
Протокол ARP является абсолютно незащищённым. На использовании недостатков протокола
ARP основан ARP-spoofing (ARP-poisoning) — техника сетевой атаки, позволяющая
перехватывать трафик между узлами. Подробнее Существует несколько программ
предназначенных для борьбы с ARP-spoofing и управления ARP таблицами. Демон arpwatch
создает базу соответствия между IP и MAC-адресами, и при обнаружении аномалий, посылает
сообщение в системный журнал и по электронной почте администратору системы.
В файловой системе /proc/net/ найти текущую информацию о сетевой подсистеме ядра.
/proc/net
Разные псевдо−файлы, содержащие информацию по какой−либо части сетевой подсистемы.
/proc/net/arp
Файл содержит ARP таблицы ядра, которая используется для определения адресов. Она покажет
как полученные динамически, так и заданные явно записи ARP.
Рис.32. Содержимое /proc/net/arp
Здесь "IP adress" это адрес машины в нотации IPv4, "HW type" это тип аппаратного обеспечения
для этого адреса согласно RFC 826. Flags — это внутренние флаги структуры ARP, а "HW
address" — это адрес канального уровня для IP−адреса, если он известен.
/proc/net/rarp
Данный файл использует тот же формат, что и файл arp и содержит текущую обратную базу
данных адресов ARP, используемую при работе служб обратного поиска адресов rarp. Если
поддержки RARP нет в ядре, то этот файл не существует.
/proc/net/dev
24
Содержит информацию о состоянии сетевых устройств. Она представляет собой количество
принятых и отправленных пакетов, количество ошибок и коллизий и другую базовую
статистику. Эта информация используется программой ifconfig для вывода отчёта о состоянии
устройства.
Рис.33. Содержимое /proc/net/dev
/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" — это внутреннее состояние сокета. "tx_queue" и "rx_queue" — это
исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра.
Поля "tr", "tm−>when" и "rexmits" не используются в UDP. Поле "uid" содержит эффективный
UID создателя сокета.
/proc/net/unix
Показывает список доменных сокетов UNIX, присутствующих в системе, а также их состояния.
Рис.34. Содержимое /proc/net/unix
25
Здесь «Num» — это номер слота в таблице ядра, «RefCount» — количество пользователей
данного сокета, «Protocol» — в настоящий момент всегда 0, «Flags» — представляет внутренние
флаги ядра, содержащие состояние сокета. «Type» в настоящий момент всегда равен "1"
(датаграммы доменных сокетов UNIX ядром пока не поддерживаются). «St» — это внутреннее
состояние сокета, а «Path» — это путь привязки (если он есть) данного сокета.
26
Download