Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 11
Текст из файла (страница 11)
используется для получения МАС-адресов(аппаратных адресов) сетевых адаптеров.ICMP (Internet Control Message Protocol) ... предназначен для отправки извещений и сообщений об ошибках при передаче пакетов.IGMP (Internet Group Management Protocol)... используется узлами для сообщения маршрутизаторам, которые поддерживают групповую передачу, о своем участии в группах.RIP (Route Internet Protocol) и OSPF (Open Shortest Path First) ... протоколымаршрутизации.На этом уровне реализуется передача пакетов без установки соединения —дейтаграммным способом.
Межсетевой уровень обеспечивает перемещениепакетов по сети с использованием наиболее рационального маршрута (протокол OSPF). Основная функция межсетевого уровня — передача пакетов черезсоставную сеть, поэтому этот уровень также называется уровнем Интернет.39Введение в LinuxТранспортный(основной)уровеньДанный уровень обеспечивает сеансы связи между компьютерами. Существует два транспортных протокола: TCP (Transmission Control Protocol) иUDP (User Datagram Protocol). Протокол TCP ориентирован на установление соединения, то есть перед передачей данных компьютеры «договариваются» между собой.
Обычно по этому протоколу передаются большие объемы данных или данные, для которых требуется подтверждение их приема.Этот протокол используется большинством сетевых приложений, так какобеспечивает достаточную надежность при передаче данных.Протокол UDP не ориентирован на соединение и не гарантирует доставкупакетов (дейтаграмм). Однако протокол UDP является более быстродействующим по сравнению с TCP. Обычно по этому протоколу передаются небольшиеобъемы данных. Ответственность за доставку данных несет сетевая программа.УровеньприложенийДанный уровень является вершиной модели TCP/IP.
На этом уровнеработают практически все распространенные утилиты и службы: DNS, Telnet,WWW, Gopher, WAIS, SNMP, FTP, TFTP, SMTP, POP, IMAP.В качестве завершения данного пункта рассмотрим соответствие уровнейстека протокола TCP/IP семиуровневой модели OSI (см. табл. 1.5).Соответствие уровней стека TCP/IP модели OSIУровень модели OSI7,65,43'2, 1Таблица 1.5ПротоколУровень стека TCP/IPWWW (HTTP), FTP, TFTP, SMTP, POP, telnet, WAIS, SNMPTCP, UDPIP, ICMP, RIP, OSPF, ARP3Ethernet, PPP, SLIP412В следующем пункте рассмотрено такое важное понятие протоколаTCP/IP как порт. В том же пункте будут рассмотрены структуры пакетов IPи TCP, поскольку рассмотрение этого материала без введения определенияпорта не имеет смысла.1.7.6.
Порты и демоныДальнейшее изложение материала построено, исходя из того, что вы ужезнаете, что такое сервер и какие службы вам придется настраивать. В пунктеКак устроена книга (п. 1.5) было подробно описано, в каких главах описананастройка той или иной службы. Здесь же давайте рассмотрим некоторыебазовые понятия, каковыми являются понятие «демон» и «порт».Как уже было отмечено, в заголовке каждого пакета указывается IP-адресотправителя и IP-адрес получателя, а также номер порта. С IP-адресомотправителя и получателя все понятно, осталось сказать, что же такое порт.Дело в том, что сразу несколько приложений на одном компьютере могутосуществлять обмен данными через сеть.
При этом, если в качестве адресатауказывать только IP-адрес получателя, то приложения, выполняемые на нем,не смогут разобраться кому из них предназначены присланные данные. Чтобы40Введение в Linuxрешить эту проблему используется механизм портов.
Номер порта — этопросто номер программы, которая будет обрабатывать переданные данные.Каждой сетевой программе, которая работает по протоколу TCP/IP, сопоставлен свой номер порта. Например, 80 — это порт WWW-сервера (обычно этоApache), a 53 — это порт системы доменных имен.Термин демон происходит от английского слова demon (или daemon) иозначает программу, которая выполняется в фоновом режиме и дополняет операционную систему каким-нибудь сервисом. Как правило, пользователь не замечает работу демона: он даже и не подозревает, что данная программа запущена.Программа-демон чем-то напоминает резидентные программы в операционнойсистеме DOS.
Как видите, нет ничего общего с ужасными существами потустороннего мира. Обычно демон ожидает определенного события, после которогоон активизируется и выполняет свою работу. Сетевые демоны ожидают получения пакета с определенным номером порта и, получив его, обрабатывают содержащиеся в нем данные. В книге мы еще неоднократно поговорим об этих«существах», поэтому сейчас не будем подробно останавливаться на них.1.7.7. Структура пакетов IP и TCPВот теперь можно смело перейти к рассмотрению структуры пакетов IPи TCP.
Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено втабл. 1.6, представляют собой IP-заголовки и добавляются к пакету при егополучении с транспортного уровня.Структура заголовка IP-пакетаТаблица 1.6ПолеSource IP-address(IP-адрес отправителя)Destination IP-address(IP-адрес получателя)Protocol (Протокол)Checksum (Контрольная сумма)TTL (Time to Live, время жизнипакета)VersionHeader Length (Длина заголовка)Type of Service(Тип обслуживания)Total Length (Общая длина)Identification (Идентификация)Fragmentation Flags(Фрагментационные флаги)Fragmentation Offset(Смещение фрагмента)Options and Padding(Опции и заполнение)ОписаниеОтправитель пакетаПолучатель пакетаTCP или UDPЗначение для проверки целостности пакетаОпределяет, сколько секунд дейтаграмма может находиться в сети.Предотвращает бесконечное блуждание пакетов в сети.
Значение TTLавтоматически уменьшается на одну или более секунд при проходечерез каждый маршрутизатор сетиВерсия протокола IP — 4 или 6. Шестая версия протокола IPрассматривается в гл. 8 (4 бита)Минимальный размер заголовка — 20 байт (4 бита)Обозначение требуемого для этого пакета качества обслуживанияпри доставке через маршрутизаторы IP-сети.
Здесь определяютсяприоритет, задержки, пропускная способность. (8 бит)Длина дейтаграммы IP-протокола (16 бит)Идентификатор пакета. Если пакет фрагментирован (разбит на части),то все фрагменты имеют одинаковый идентификатор (16 бит)3 бита для флагов фрагментации и 2 бита для текущего использованияУказывает на положение фрагментов относительно начала поля данныхIP-пакета. Если фрагментации нет, смещение равно 0x0 (13 бит)Опции41Введение в LinuxПротокол TCP, в отличие от протокола IP, ориентирован на установление соединения и обеспечивает надежную доставку данных.
Структура TCPпакета описана в табл. 1.7.Структура TCP-пакетаТаблица 1.7ПолеSource port (Порт отправителя)ОписаниеПорт TCP узла-отправителяDestination Port (Порт получателя)Порт TCP узла-получателяSequence Number (Порядковый номер)Номер последовательности пакетовAcknowledgement Number (Номер подтверждения)Порядковый номер байта, который локальный узелрассчитывает получить следующимData Length (Длина данных)Длина TCP- пакетаReserved (Зарезервировано)Зарезервировано для будущего использованияFlags (Флаги)Описание содержимого сегментаWindow (Окно)Checksum (Контрольная сумма)Показывает доступное место в окне протокола TCPЗначение для проверки целостности пакетаUrgent Pointer (Указатель срочности)При отправке срочных данных (поле Flags) в этомполе задается граница области срочных данных1.8.
Общие рекомендацииПоздравляю с успешным окончанием курса молодого бойца (администратора)! Осталось только сказать несколько слов об общей настройке сервера. Настройку сервера «с нуля» следует проводить именно в такой последовательности, которая описана в книге. После установки системы следуетразобраться с правами пользователей, определить, кто и к чему будет иметьдоступ. Именно с этого и начинается локальная безопасность сервера. Нетсмысла настраивать все службы с соблюдением всех требований безопасности, если пользователь pupkin имеет доступ ко всему и его пароль 123! (илиже установлены права доступа к корневой файловой системе, позволяющиевсем модифицировать ее).Я рекомендую использовать RAID-массивы, если это, конечно, позволяют ваши финансы. Использование массивов RAID значительно повыситнадежность вашего сервера.
К тому же, при использовании аппаратныхмассивов, настройка которых не рассматривается в этой книге, можносущественно повысить производительность сервера, особенно при использовании SCSI-дисков. Хотя в последнее время производительность некоторыхмоделей АТА-дисков (АТА133) практически не уступает производительностидисков с интерфейсом SCSI, а по цене АТА-диски дешевле, чем SCSI.После того, как вы наведете порядок на локальном уровне, можноприступать к настройке сети. Сначала следует сконфигурировать сервер какобыкновенную рабочую станцию и проверить корректность работы компьютера в сети.