- •2. Версии iPv4 и iPv6
- •3. Пакеты и их инкапсуляция
- •4. Адресация пакетов
- •Глава 14. Сети tcp/ip 505
- •6. Cidr: протокол бесклассовой междоменной маршрутизации
- •7. Частные адреса и система nat
- •8. Маршрутизация
- •9. Таблицы маршрутизации
- •10. Arp: протокол преобразования адресов
- •11. Dhcp: протокол динамического конфигурирования узлов
- •12. Ррр: протокол двухточечного соединения
- •13. Команда ifconfig: конфигурирование сетевых интерфейсов
- •14. Демоны маршрутизации
- •Глава 15. Маршрутизация 571
- •15. Основные протоколы маршрутизации
- •Глава 15. Маршрутизация 567
- •16. Технология Ethernet: сетевая панацея
- •17. Беспроводной стандарт: локальная сеть для кочевников
- •18. Dsl и кабельные модемы: “последняя миля” 8
- •Глава 16. Сетевые аппаратные средства 593
- •20. Основные задачи системы dns
- •Глава 18. Сетевой протокол Network File System 737
- •22. Серверная часть протокола nfs
- •Глава 18. Сетевой протокол Network File System 745
- •23. Клиентская часть протокола nfs
- •Глава 18. Сетевой протокол Network File System 753
- •24. Ldap: упрощенный протокол доступа к каталогам
- •25. Структура данных ldap
- •Глава 19. Совместное использование системных файлов 775
- •26. Nis: Сетевая информационная служба
- •27. Системы электронной почты
- •Глава 20. Электронная почта 789
- •28. Протоколы smtp, pop3.
- •30. Почтовые серверы
- •Часть II. Работа в сети
- •31. Cпам и вредоносные программы
- •Глава 20. Электронная почта 813 ip range
- •32. Фильтрация почты
- •33. Почтовый агент sendmail
- •34. Почтовый агент Postfix
- •Глава 20. Электронная почта 877
- •35. Поиск неисправностей в сетях
- •Глава 21. Управление сетями 911
- •36. Kоманда traceroute: трассировка ip-пакетов
- •Глава 21. Управление сетями 915
- •37. Команда netstat: получение информации о состоянии сети
- •Глава 21. Управление сетями 919
- •39. Snmp: простой протокол управления сетями
- •40. Протокол NetFlow: мониторинг соединений
- •Глава 21. Управление сетями 939
- •41. Ключевые аспекты безопасности
- •Глава 22. Безопасность 951
- •42. Пароли и учетные записи пользователей
- •43. Эффективное использование команды chroot
- •44. Команда nmap: сканирование сетевых портов
- •45. Bro: программная система для распознавания вторжения в сеть
- •Глава 22. Безопасность 967
- •46. Мандатное управление доступом
- •47. Ssh: безопасная оболочка
- •48. Брандмауэры
- •Глава 22. Безопасность 983
- •49. Функциональный стек lamp
- •50. Обнаружение ресурсов в сети веб
- •Глава 23. Веб-хостинг 1003
- •51. Принцип работы http
- •52. Конфигурирование сервера Apache
- •Глава 23. Веб-хостинг 1011
- •53. Виртуальные интерфейсы
- •54. Протокол Secure Sockets Layes
- •Глава 23. Веб-хостинг 1017
3. Пакеты и их инкапсуляция
Система TCP/IP располагает средствами поддержки целого ряда физических сетей и транспортных систем, включая технологии Ethernet, Token Ring, MPLS (Multiprotocol Label Switching), беспроводную технологию Ethernet, а также системы с последователь ными соединениями. Управление аппаратными устройствами осуществляется на каналь ном уровне архитектуры TCP/IP, а протоколам более высоких уровней неизвестно, как именно используются аппаратные средства.
Данные передаются по сети в виде пакетов, которые имеют максимальный размер, определяемый ограничениями канального уровня. Каждый пакет состоит из заголовка и полезного содержимого. Заголовок содержит сведения о том, откуда прибыл пакет и куда он направляется. В него могут также включаться контрольные суммы, информа ция, характерная для конкретного протокола, и другие инструкции, касающиеся обра ботки пакета. Полезное содержимое — это данные, подлежащие пересылке.
Название базового блока передачи данных зависит от уровня протокола. На каналь ном уровне это кадр, или фрейм, в протоколе IP — пакет, а в протоколе TCP — сегмент. Мы будем придерживаться универсального термина “пакет”.
Готовящийся к отправке пакет передается вниз по стеку протоколов, и каждый про токол добавляет в него собственный заголовок. Сформированный пакет одного прото кола становится полезным содержимым пакета, генерируемого следующим протоколом. Эта операция называется инкапсуляцией. На принимающей стороне инкапсулированные пакеты восстанавливаются в обратном порядке при прохождении вверх по стеку.
Например, датаграмма (пакет UDP), передаваемая по сети Ethernet, упакована в трех различных “конвертах”. В среде Ethernet она “вкладывается” в простой физический фрейм, заголовок которого содержит сведения об аппаратных адресах отправителя и ближайшего получателя, длине фрейма и его контрольной сумме (CRC). Полезным содержимым Ethemet-фрейма является IP-пакет. Полезное содержимое IP-пакета — это UDP-пакет, и, наконец, полезное содержимое UDP-пакета состоит из собственно дан ных, подлежащих передаче. Компоненты такого пакета изображены на рис. 14.2.
Заголовок Ethernet |
Заголовок IPv4 |
Заголовок UDP |
Данные приложения |
Ethernet CRC |
14 байт |
20 байт |
8 байт |
100 байт |
4 байт |
Ethernet фрейм (146 байт)
Рис. 14.2. Стандартный сетевой пакет
4. Адресация пакетов
Подобно письмам и сообщениям электронной почты, сетевые пакеты могут достичь пункта назначения только при наличии правильного адреса. В системе TCP/IP исполь зуется сочетание нескольких схем адресации.
• Адреса MAC (media access control) для использования в сетевом оборудовании.
• Сетевые адреса протоколов IPv4 и IPv6 для использования в программном обе спечении.
• Имена компьютеров для использования пользователями.
Аппаратная адресация (MAC)
Каждый сетевой интерфейс компьютера имеет один МАС-адрес канального уров ня, который отличает его от других компьютеров в физической сети, а также один или несколько IP-адресов, идентифицирующих интерфейс в глобальной сети Интернета. Последнее утверждение стоит повторить: IP-адрес идентифицирует сетевые интерфейсы, а не машины. (Для пользователей это различие не имеет значения, но администраторы должны об этом знать.)
Самый нижний уровень адресации задается сетевыми аппаратными средствами. Например, Ethernet-устройствам в процессе изготовления назначаются уникальные
Шестибайтовые аппаратные адреса. Эти адреса традиционно записываются в виде ряда двухцифровых шестнадцатеричных байтов, разделенных двоеточиями, например 00:50:8D:9A:3B:DF.
Сетевые платы Token Ring также имеют шестибайтовые адреса. В некоторых сетях с двухточечным соединением (например, в РРР-сетях) аппаратные адреса вообще не нуж ны: адрес пункта назначения указывается непосредственно при установке соединения.
Шестибайтовый Ethernet-адрес разбивается на две части: первые три байта опреде ляют изготовителя устройства, а последние три — выступают в качестве уникального серийного номера, назначаемого изготовителем. Системные администраторы могут вы яснить марку устройства, вызывающего проблемы в сети, поискав трехбайтовый иденти фикатор соответствующих пакетов в таблице идентификаторов изготовителей. Текущая таблица доступна по адресу
http://www.iana.org/assignments/ethernet-numbers.
Трехбайтовые коды на самом деле представляют собой идентификаторы OUI (Orga nizationally Unique Identifier — уникальный идентификатор организации), присваивае мые организацией IEEE, поэтому их можно найти непосредственно в базе данных IEEE по адресу
http://standards.ieee.org/regauth/oui.
Разумеется, отношения между производителями микросхем, компонентов и систе мы носят сложный характер, поэтому идентификатор изготовителя, закодированный в МАС-адресе, может ввести пользователя в заблуждение.
Теоретически, аппаратные адреса Ethernet должны назначаться на постоянной основе и оставаться неизменными. К сожалению, некоторые сетевые платы допуска ют программное задание аппаратных адресов. Это удобно при замене испорченных компьютеров или сетевых карт, МАС-адрес которых менять по тем или иным причи нам нежелательно (например, если его фильтруют все ваши коммутаторы, если ваш DHCP-сервер выдает адреса на основе МАС-адресов или МАС-адрес был использован как лицензионный ключ для программного обеспечения). Фальсифицируемые МАС- адреса могут также оказаться полезными, если вам необходимо проникнуть в беспро водную сеть, использующую механизм управления доступом на основе МАС-адресов. Однако, чтобы не усложнять ситуацию, мы рекомендуем сохранять уникальность МАС- адресов.
IP-адресация
На следующем, более высоком, уровне используется Интернет-адресация (чаще на зываемая IР-адресацией). IP-адреса глобально уникальны5 и аппаратно независимы.
Соответствие между IP-адресами и аппаратными адресами устанавливается на ка нальном уровне модели TCP/IP. В сетях, поддерживающих широковещательный режим (т.е. в сетях, позволяющих адресовать пакеты “всем компьютерам данного физического сегмента”), протокол ARP обеспечивает автоматическую привязку адресов без вмеша тельства системного администратора. В протоколе IPv6 МАС-адреса интерфейсов мож-
5 В принципе IP-адреса идентифицируют конкретный и уникальный пункт назначения. Однако в особых случаях ситуация усложняется. Механизм NAT (Network Adrresses Translation — преобразование сетевых адресов) использует IP-адреса интерфейсов для того, чтобы обработать трафик на нескольких машинах. Пространство частных IP-адресов присваивает адреса нескольким сайтам, которые могут использовать их одновременно, поскольку они не видимы в Интернете. Адресация в методе Anycast распределяет один и тот же адрес среди нескольких машин.
504 Часть II. Работа в сети
но использовать как часть IP-адресов, благодаря чему преобразование IP-адресов в ап паратные адреса становится практически автоматическим.
Подробнее о протоколе ARP рассказывается в разделе 14.6.
“Адресация” имен машин
Поскольку IP-адреса представляют собой длинные, на первый взгляд, случайные чис ла, запоминать их трудно. Операционные системы позволяют закреплять за IР-адресом одно или несколько текстовых имен, чтобы вместо 128.9.160.27 пользователь мог ввести “rfc-editor.org”. В системах UNIX и Linux это отображение можно осуществить с помощью статического файла (/etc/hosts), базы данных LDAP и, наконец, DNS (Domain Name System) — глобальной системы доменных имен. Следует помнить о том, что имя компьютера — это лишь сокращенный способ записи IP-адреса, и он относится к сете вому интерфейсу, а не компьютеру.
Подробнее о глобальной системе DNS рассказывается в главе 17.
Порты
IP-адреса идентифицируют сетевые интерфейсы компьютера, но они недостаточно конкретны для идентификации отдельных процессов и служб, многие из которых могут активно использоваться в сети одновременно. Протоколы TCP и UDP расширяют кон цепцию IP-адресов, вводя понятие порта. Порт представляет собой 16-разрядное число, добавляемое к IP-адресу и указывающее конкретный канал взаимодействия. Всем стан дартным службам, в частности электронной почте, FTP и HTTP, назначаются “хорошо известные” порты, которые определены в файле /etc/services.6 Для того чтобы пре дотвратить попытки посторонних процессов замаскироваться под стандартные службы, системы UNIX предоставляют доступ к портам с номерами до 1024 только процессам пользователя root. (Взаимодействовать с сервером через порты с небольшими номера ми может кто угодно; ограничение распространяется лишь на программы, прослуши вающие этот порт.)
Типы адресов
В протоколе IP поддерживается несколько типов адресов, некоторые из которых имеют эквиваленты на канальном уровне.
• Направленные (unicast) — адреса, которые обозначают отдельный сетевой интер фейс.
• Групповые (multicast) — адреса, идентифицирующие группу узлов.
• Широковещательные (broadcast) — адреса, обозначающие все узлы локальной сети.
• Альтернативные (anycast) — адреса, обозначающие любой из группы узлов.
Режим группового вещания используется, к примеру, в видеоконференциях, где одна и та же последовательность пакетов посылается всем участникам конференции. Прото кол IGMP (Internet Group Management Protocol — протокол управления группами узлов Интернета) отвечает за управление совокупностями узлов, идентифицируемыми как один обобщенный адресат.
6 Полный список присвоенных портов можно найти на веб-странице iana.org/assignments/port-numbers.
