Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal
Работа сетевых протоколов не зависит от нашего знания о них. Но если вы хорошо разбираетесь в принципах их функционирования, то это позволит настроить их на оптимальную производительность в соответствии с вашими потребностями. В любом случае, базовые теоретические знания не помешают. В данной главе я хочу бегло познакомить вас с основными сетевыми протоколами, которые применяются для обеспечения работы терминальных решений. Основное внимание здесь уделяется протоколам с открытыми стандартами, которые получили наибольшее распространение. Начнем наш краткий экскурс в сетевые протоколы с рассмотрения такого обобщенного понятия как семейство протоколов TCP/IP. В него входят:
IP (Internet Protocol – протокол Интернета) был первоначально разработан в конце 70-х годов и, конечно, не был рассчитан на такую популярность. Главным ограничением протокола IPv4, как его сейчас принято называть, является ограниченность количества узлов сети (хостов). Так, для IPv4 максимальное теоретическое количество хостов не может превышать 4 миллиардов (232), а на практике это значение еще меньше. Исходя из такого ограничения, был разработан новый стандарт протокола IPv6, который уже утвержден, но, к сожалению, еще не получил широкого распространения. В новой версии протокола IP используются более длинные адреса в 16 байт (вместо 4 для IPv4), применяется гибкий формат заголовка, поддерживается резервирование пропускной способности, а также внедрена поддержка расширяемости протокола (добавление новых функций).
ICMP (Internet Control Message Protocol– межсетевой протокол управления сообщениями) предназначен для передачи низкоуровневых сообщений, например, сообщений об ошибках. Наиболее распространенное применение протокола ICMP – это, наверное, утилита ping, при помощи которой можно проверить функционирование сетевого интерфейса. Как и многие другие сервисные средства, ICMP стал инструментом хакерских атак на узлы Интернет, поэтому знание данного протокола может особенно пригодиться для защиты локальной сети от внешнего вторжения.
ARP (Address Resolution Protocol – протокол преобразования адресов) служит для определения соответствия MAC-адресов IP-адресам. Применяется ARP только в пределах одной сети.
RARP (Reverse Address Resolution Protocol – обратный протокол преобразования адресов) служит для определения соответствия IP-адреса МАС-адресу сетевого устройства. По сути, он выполняет операцию, обратную протоколу ARP. Как и для ARP, RARP применяется только в пределах одной сети.
TCP (Transmission Control Protocol – протокол управления передачей ). TCP – это протокол транспортного уровня, который базируется на протоколе IP и обеспечивает надежную передачу данных с предварительным установлением связи между источником информации и ее приемником. При передаче данных по протоколу TCP создается канал связи путем передачи запроса и получения утвердительного ответа. Важно помнить, что по окончании передачи информации сеанс должен быть явно завершен. Канал передачи имеет повышенную надежность, так как приемник отсылает подтверждающий пакет о успешном получении данных. В возможностях протокола TCP заложены функции управления потоком данных, а также доставка данных исключительной важности. Конечно, за надежность протокола TCP пользователь расплачивается уменьшенной скоростью передачи информации.
UDP (User Datagram Protocol – протокол пользовательских датаграмм), так же как и протокол TCP, обеспечивает пересылку данных (то есть является протоколом транспортного уровня), но в отличие от последнего он не выполняет проверку получения данных. Для подтверждения получения данных должны уже заботятся протоколы уровня приложений, которые используют данный транспортный протокол. По сравнению с TCP, UDP-протокол обеспечивает более высокую скорость передачи данных, но не гарантирует надежность доставки. Применяется UDP при передачи звука и видео через Интернет (если допускаются искажения информации, но важна скорость), сервером DNS, протоколом NTP (синхронизация времени через Интернет), а также протоколом передачи файлов TFTP.
Совершенно другую группу представляют протоколы уровня приложений. В организации распределенных терминальных компьютерных сетей применяют в частности такие протоколы, как NFS, TFTP, DHCP, SSH. Эти протоколы являются протоколами более высокого уровня и в своей работе полагаются на уже существующие протоколы транспортного уровня, такие как TCP/IP и UDP/IP.
NFS (Network File System – сетевая файловая система). Этот протокол был разработан фирмой Sun Microsystems (сайт http://www.sun.com) для обеспечения доступа к файлам и каталогам удаленного сервера. В основном используется UNIX-подобными операционными системами, хотя существуют его реализации и для других ОС. В терминальных решениях получил распространение благодаря возможности удаленной загрузки операционной системы через локальную сеть. В качестве транспортного уровня применяется протокол UDP или реже TCP. Принцип использования данного протокола довольно прост: на сервере выделяются каталоги для экспортирования (общего использования) в локальной сети. К сожалению, данный протокол лишен средств защиты от несанкционированного доступа и не имеет в себе способов аутентификации пользователей. Разграничение доступа осуществляется только по доменным именам или IP-адресам компьютеров в сети. Пользователи принимаются по их идентификационным номерам, что требует дополнительного использования таких средств как NIS или LDAP. Попробую объяснить это более детально. Представьте ситуацию, что на сервере NFS экспортируется домашний каталог /home/masha пользователя masha, с идентификатором пользователя UID=507. Проблема безопасности в модели доступа NFS заключается в том, что если подключается компьютер с пользователем petya, у которого такой же UID=507, то он получит полный доступ к домашнему каталогу /home/masha, так как сервер будет считать, что это пользователь masha. Исходя из таких ограничений, NFS можно применять только в надежных сетях, то есть там, где вы точно доверяете пользователю удаленного компьютера.
TFTP (Trivial File Transfer Protocol – тривиальный протокол передачи файлов) предназначен для передачи файлов по сети с использованием транспортного протокола UDP. В терминальных сетях он применяется для начальной загрузки ядра операционной системы. Использование в качестве транспортного протокола UDP накладывает определенные ограничения на качество соединения, но зато позволяет сделать программную реализацию протокола TFTP очень маленького размера. Например, загрузочная программа может поместиться в 8 Кбайт памяти BootROM сетевой карты. Конечно, столь малые размеры и простоту данного протокола компенсирует его низкая безопасность, поэтому применять данный протокол также рекомендуется только в проверенных сетях.
DHCP (Dynamic Host Configuration Protocol – протокол динамического конфигурирования хостов). Данный протокол предназначен для передачи уникальных параметров конфигурации от сервера DHCP клиентам. К числу таких параметров относится, например, IP-адрес сетевого адаптера, который часто привязан к МАС-адресу. В терминальных решениях на данный протокол возлагают также обязанности передачи клиенту дополнительных данных, таких, как название и расположение загрузочного образа операционной системы, специфические параметры работы с сетевой картой или параметры удаленной загрузки. Практически незаменимым данный протокол является в больших локальный сетях, так как ручное конфигурирование сетевых интерфейсов превращается в них в сущий кошмар.
SSH (Secure SHell – протокол защищенной оболочки) предназначен для выполнения команд на удаленной машине. Механизм аутентификации этого протокола обладает повышенной безопасностью, так как данные в зашифрованном виде передаются через общедоступную сеть. Кроме этого, данный протокол поддерживает сжатие пересылаемых данных и обработку графической информации через поддержку протокола X-Windows. Несмотря на то, что программное обеспечения SSH защищено патентами, существует его свободная реализация OpenSSH, которая обладает практически всеми преимуществами коммерческой версии данного программного продукта.