ГЛАВА 21. РАБОТА В СЕТЯХ LINUX. Основы TCP/IP

1. Глава 21. Работа в сетях Linux

 

Глава 21 . Работа в сетях Linux

  • Основы TCP/IP
  • Сервисы и порты TCP и UDP
  • Концепция маршрутизации

Мы изучим тему, интересную для большинства пользователей. Это работа в сетях.

Глава начинается с рассмотрения основ работы в сетях Linux (в том числе TCP/IP) и основ маршрутизации. Вы ознакомитесь с основными принципами и компонентами конфигурации ТСРЛР. Узнаете, что такое IP-адреса, маски сети, порты и шлюзы. Затем вы ознакомитесь с сервисами, которые обычно используют ТСР/IР соединения стандартной системы Linux.

 

2. Основы TCP/IP

 

Основы TCP/IP

TCP/IP представляет собой язык взаимодействия компьютеров в Интернете. Исторически сложилось так, что разработка TCP/IP выполнялась в среде Unix. А поскольку система Linux -потомок системы Unix, то Linux прекрасно подходит для работы в Интернете.

Язык, подобный ТСРЛР, фактически представляет собой набор правил или протоколов, используемых для связи между компьютерами. Несмотря на то, что эти протоколы обеспечивают связь систем в реальных коммуникационных средах, они независимы от аппаратуры, посредством которой реализуются соединения.

На физическом уровне сегодняшние сети строятся с использованием разнообразных технологий, включая телефонные кабели, коаксиальные ТВ-кабели, оптоволоконные соединения и т.п. Протокол ТСРЛР, как и другие сетевые протоколы этого уровня, работает в любой коммуникационной среде.

 

3. Что такое TCP/IP

 

Что такое TCP/IP

TCP/IP - составное имя. TCP означает Transmission Control Protocol - Протокол Управления Передачей, a IP означает Internet Protocol - Протокол Internet. Вместе они составляют наиболее распространенный сетевой протокол. Эта мощная комбинация позволяет Internet работать в качестве глобальной TCP/IP сети. Присоединение локальных TCP/IP сетей (ЛВС) к Internet осуществляется очень просто, поскольку одна и та же технология используется и во внутренней (ЛВС), и внешней сети (Internet).

 

4. Суть конфигурации TCP/IP

 

Суть конфигурации TCP/IP

Для понимания процесса конфигурирования TCP/IP и проектирования сетей важно освоить некоторые фундаментальные понятия:

  • IP-адреса;
  • подсети и сетевые маски;
  • широковещательные адреса;
  • адреса шлюзов;
  • серверы имен.

Рассматривая эти понятия, мы будем опираться на IP версии 4 (IPv4)_B настоящее время выполняется переход на IP версии 6 (IPv6), но основные принципы старой версии IPv4 входят в новую схему IP-адресации.

IP-адреса

В мире TCP/IP каждый компьютер (или хост), соединенный с сетью, получает уникальный адрес, известный как W-адрес. IР-адрес - это состоящее из четырех частей число, которое однозначно идентифицирует хост-компьютер.

IP-адреса состоят из четырех целых чисел, каждое величиной от 0 до 255, разделяемых точками. Каждый компьютер, непосредственно подсоединенный к Интернету, имеет свой уникальный IP-адрес. Соединяясь с Internet через провайдера услуг Internet (Internet Service Provider, ISP), на время своего соединения удаленный компьютер получает и использует уникальный IP-адрес, который присваивается ему ISP.

Компьютеры оперируют двоичными кодами: нулями (0) и единицами (1). При этом, например, IP-адрес 192.168.0.34, будучи преобразованным в двоичный код, имеет вид:

11000000 10101000 00000000 00100010 Каждая из этих 32 цифр представляет собой один бит (двоичный разряд). В IР,-адресе 32 бита.

Общее количество доступных IP-адресов - 2 32 или 4 294 967 296. Может показаться, что это огромное количество адресовано при той скорости, с которой Internet растет в последние годы, IP-адреса быстро становятся дефицитом.

В настоящее время предлагается новая структура IP-адреса -IP версия 6 (IPv6) - состоящая из 128-битовых целых чисел и позволяющая сформировать 340282366920938463463374607431768-211456 адресов. Такое число можно получить при возведении в четвертую степень общего числа адресов, доступных сейчас.

Очевидно, что IP-адреса непросто равномерно распределить среди пользователей. Особенно с учетом того, что они назначаются сразу целым сетям - для использования организациями, провайдерами Internet и другими группами, которым необходим IP-адрес для работы с Internet.

Существует три используемых типа TCP/IP сетей: класса А, класса В и класса С.

  • В сетях класса А сеть идентифицируется по первому байту IP-адреса. Оставшиеся три байта определяют конкретный компьютер в сети. Всего в сети класса А доступно 16 777 216 адресов. Первый байт в сети класса А имеет величину от 1 до 126. Например, в сети класса А с первым номером 98, доступны IP-адреса от 98.0.0.1 до 98.255.255.254.
  • В сетях класса В сеть идентифицируется по первым двум байтам ГР-адреса. Оставшиеся два байта определяют конкретный компьютер в сети. Всего в сети класса В имеется 65 536 адресов. Первый байт в сети класса В имеет величину от 128 до 191. Второй байт может иметь любое значение от 0 до 255. Например, в сети класса В с первыми байтами адреса 145.255, доступны IP-адреса от 145.255.0.1 до 145.255.255.254.
  • В сетях класса С сеть идентифицируется по первым трем байтам IP-адреса. Оставшийся байт определяет конкретный компьютер в сети. Всего в сети класса С 254 адреса. Первый байт в сети класса С имеет величину от 192 до 223. Второй и третий байты могут иметь любое значение от 0 до 255. Например, в сети класса С с первыми байтами адреса 212.230.0, доступны IP-адреса от 212.230.0.1 до 212.230.0.254.

Вы, наверное, заметили, что первое и последнее из возможных значений (0 и 255) в полном диапазоне не используются. Это связано с тем, что первое значение используется для адреса сети целиком, а последнее - для широковещательного адреса. Например, упомянутая сеть класса А имеет адрес 98.0.0.0, а ее широковещательный адрес - 98.255.255.255.

Вы, вероятно, также обратили внимание на то, что в качестве первого числа в IP-адресах не используются такие значения, как 0, 127 и 224-255. Кроме того, существует ряд адресов, зарезервированных для приватного использования (см. примечания в следующем разделе).

Работа подсетей и маски сетей

Часто для организаций, нуждающихся в большом количестве ГР-адресов, необходимо получить адрес сети класса В и разделить эту сеть (сегментировать) на 256 сетей класса С. Прекраеный пример - крупные ISP, которым необходимо организовать сети класса С для своих корпоративных клиентов, используя сеть класса В. Например, если провайдер имеет сеть класса В с адресом 165.65, он может поделить ее на 256 подсетей, с адресами от 165.65.0 до 165.65.255. Каждая из этих подсетей будет иметь 254 доступных адреса, подобно тому, как это имеет место в сети класса С.

Но это может привести к неоднозначности адресации. Как компьютер узнает, к какой сети он принадлежит? Если машина имеет IP-адрес 19.148.43.194, то совсем не очевиден способ определения - находится ли он в 19-ой сети класса А, 19.148-ой сети класса В или 19.148.43-ей сети класса С.

Проблема решается использованием масок сетей (или масок подсетей). Маска сети - это набор разделенных точками однобайтовых целых чисел, который определяет какая часть IP-адреса идентифицирует сеть.

Существует три разновидности масок: 255.0.0.0, 255.255.0.0 и 255.255.255.0. Если вам известен IP-адрес и сетевая маска, вы сможете определить IP-адрес сети и диапазон доступных адресов в сети.

Рассмотрим ЕР-адрес 19.148.43.194. Если маска сети 255.0.0.0, то сетевой адрес 19.0.0.0, а диапазон доступных адресов в этой сети от 19.0.0.1 до 19.255.255.254. Если маска сети 255.255.0.0, то сетевой адрес 19.148.0.0, а диапазон доступных адресов в этой сети от 19.148.0.1 до 19.148.255.254. Если маска сети 255.255.255.0, то сетевой адрес 19.148.43.0, а диапазон доступных адресов в этой сети от 19.148.43.1 до 19.148.43.254.

Когда компьютер отправляет сообщение, он использует соответствующий IP-адрес. Если ему известна сетевая маска, то он знает, как распорядиться этим адресом.

Примечание

Возможны и более сложные маски сетей, но здесь мы их рассматривать не будем. Существует множество способов подразделения и комбинирования адресных пространств. Более подробные сведения по этому вопросу можно найти в IP Sub-networking mini-HOWTO по адресу http://www.linuxdoc.org/HOWTO/mini/IP-Subnetworking.html или в гл. 2 руководства Linux Network Administrators Guide no адресу http : //www . linuxdoc.org/LDP/nag2/index.html. Если вы проектируете собственную ТСР/IР-сеть, не забудьте уделить особое внимание вопросу приватных адресов.

IP версия 6 (IPv6)

В настоящее время мировое информационное сообщество осуществляет переход на схему адресации IPv6, обеспечивающую до 2 различных адресов. Конечно, этот переход представляет собой не моментальный акт и поэтому в течение некоторого времени аппаратура и программное обеспечение сетей должны поддерживать обе версии адресации: IPv4 и IPv6. В рамках огромного диапазона адресов IPv6 можно разместить все адресное пространство IPv4. Ваш теперешний IP-адрес (IPv4) будет работать и в адресном пространстве IPv6.

На практике процесс конвертирования адреса из старой схемы в новую весьма прост. Так IРv4-адресу:

192.168.33.54

соответствует IPv6-aapec

: :192.168.33.54

После завершения перехода на новую схему адресации, адреса в IPv6 будут записываться в шестнадцатеричной нотации. В ней существует 16 "цифр": 0, 1,2, 3, 4, 5, 6, 7, 8, 9, а, b, с, d, e, f. Типичный 1Ру6-адрес может выглядеть, например, так

3dfe:0b80:0al8:1def:0000:0000:0000:0287

В схеме IPv6 разрешается отбрасывать ведущие нули, поэтому приведенный выше адрес эквивалентен следующему

3dfе:b80:а!8:Idef:0:0 : 0 : 287

Чтобы записать приведенный выше IPv4-адрес 192.168.33.54 в новой нотации, переведем сначала его составляющие в двоичный код

11000000 10101000 00100001 00111000

После перевода в шестнадцатеричную форму он выглядит так

с0а8:2138 Полный IPv6-anpec будет выглядеть так

0000:0000:0000:0000:0000:0000:с0а8:2136

или

0:0:0:0:0:0:с0а8:2136

или

::192.168.33.54

Широковещательные адреса

Широковещательный адрес - это специальный адрес, который можно использовать при передаче информации всем хост-компьютерам сети. Вместо того, чтобы отсылать отдельные пакеты каждому хост-компьютеру, можно отослать единственный пакет для всех компьютеров (подобно радио- или телевизионному сигналу).

В основе широковещательного адреса лежит адрес сети, но часть адреса, задающая хост-компьютер, заменена на 255. Для сети класса В 174.148 широковещательный адрес- 174.148.255.255, а для сети класса С 194.148.43 - 194.148.43.255.

Адреса шлюзов

В параграфе, посвященном маршрутизации, отмечено, что сконфигурированные для локальной сети или подсети компьютеры не знают, как связываться с компьютерами, принадлежа-щими внешней сети (например, Internet).

Шлюзы - это компьютеры, которые обеспечивают связь с внешним миром. Они имеют как минимум два сетевых интерфейса: один - для соединения с локальной сетью и другой - с внешним миром. Шлюз пересылает пакеты в локальную сеть из глобальной или обратно.

Для соединения хост-компьютера с внешней сетью шлюзу необходимо знать IP-адрес хотя бы одного шлюза вне локальной сети.

Серверы имен

Если вам необходимо получить доступ к сайту издательства Sybex, вы можете ввести 63.99.19,8.12 в адресное поле вашего браузера. Но гораздо проще запомнить символический WWW-адрес http: / /www. Sybex. com. Эта проблема решается использованием Системы Доменных Имен (Domain Name System, DNS). DNS реализует механизм преобразования доменных имен (например, bahai. org) и имен хост-компьютеров (www. bahai. org) в IP-адреса.

Каждый компьютер, подключенный к Интернету или другой глобальной сети, нуждается в сервере имен. Поэтому, конфигурируя TCP/IP на хост-компьютере большой сети, не забудьте о сервере имен.

Провайдеры предоставляют сервер имен для выхода пользователя в Интернет. На практике, при коммутируемом соединении вам в большинстве случаев даже не нужно знать IP-адрес сервера имен. Соответствующие настройки выполняются автоматически в ходе подключения. Коммутируемые соединения подробно рассмотрены в гл. 22.

 

5. TCP/IP порты

 

TCP/IP порты

Когда два компьютера используют для связи TCP/IP, они определяют адресат по комбинации IP-адреса и порта. Например, доступ к World Wide Web выполняется через порт 80. Для реализации соответствующего подключения после ввода адреса http: / /www. mommabears . com, ТСРЯР

ищет строку www и автоматически преобразует этот адрес в http: / /www. mommabears. com: 8 0. Доступно 65,536 (=2 16 ) различных портов. Первые 1,024 порта и часть остальных выделены

для специальных TCP/IP-сервисов, наподобие www, FTP и др. Широко используемые сервисы, такие как TCP/IP, Web, РТРи e-mail имею собственные порты. В табл. 21.1 приведен список общих портов ТСР./IР..

Табл. 21.1. Общие TCP/IP

Название сервиса

Порт

Тип

Описание

FTP

21

TCP

Протокол передачи файлов - File Transfer Protocol

Telnet

23

TCP

Соединения Telnet

SMTP

25

TCP

Простой протокол передачи почтовых сообщений - Simple Mail Transfer Protocol

Name

42

TCP

Сервисы Системы доменных имен - Domain Name System services

HTTP

80

TCP

Протокол передачи гипертекста - Hypertext Transfer Protocol (World Wide Web)

POPS

110

TCP

Почтовые клиенты РОРЗ

IМАР

143

TCP

Протокол доступа к электронной почте Internet -Internet Message Access Protocol

Более полный список сервисов и портов TCP и UDP можно найти в Internet на странице http://www.isi.edu/in-notes/iana/assignments/port-numbers .

Вернемся к нашему примеру. Если порт 80 - порт по умолчанию для Web, то Web-демон будет прослушивать порт 80 для входящих соединений. Web-клиент инициирует запрос документа через порт 80. Если вы пытаетесь обратиться к Momma Bears' Bears с помощью адреса

http://www.moiranabears.com , соответствующий Web-сервер получает сообщение и возвращает страницу сайта Momma Bears' в качестве сообщения вашему компьютеру.

Но веб-сервер Momma Bears' отвечает не через порт 80. Если он попытается ответить на это порт, то канал порта 80 будет заблокирован для других желающих обратиться к сайту Momma Bears. Именно поэтому Web-клиент динамически назначает собственный порт и отсылает его демону через Web. Тогда Web-демон может возвращать запрошенный документ на порт клиента, оставляя порт 80 свободным для других входящих запросов. Так Web-демон может обрабатывать большое количество входящих запросов, прослушивая только один порт.

 

6. Концепция маршрутизации

 

Концепция маршрутизации

При обсуждении шлюзов мы упоминали термин "маршрутизация". Маршрутизация - это механизм, благодаря которому становится возможной работа в, казалось бы, абсолютно хаотичном Internet.

Используя Netscape Communicator для соединения с Web-сайтом Yahoo, компьютер ничего не знает о действительной физической локализации Web-сервера Yahoo. Однако запрос каким-то образом попадает на Yahoo, а ответ Yahoo находит обратный путь к компьютеру, пославшему запрос;

Для начала рассмотрим простой пример маршрутизации. Ваш компьютер входит в небольшую локальную сеть (ЛВС), которая имеет выход в Internet. Связь с Internet проходит через маршрутизатор, соединяющий ЛВС и вашу компанию по выделенной линии с провайдером Internet Servise Provider (ISP).

Поскольку ваша ЛВС имеет только одно соединение с внешним миром через маршрутизатор, принцип маршрутизации прост. Каждый компьютер в Internet сконфигурирован со шлюзом, определяемым по умолчанию, который указывает на маршрутизатор. Когда хост-компьютер ЛВС устанавливает соединение с компьютером вне локальной сети, он посылает пакеты маршрутизатору, и маршрутизатор отвечает за перенаправление информации.

Таким образом, внешний мир является "черным ящиком": вся информация, которая направляется во внешний мир, просто посылается маршрутизатору, поскольку он представляет сеть, находящуюся за пределами ЛВС. Маршрутизатор решает простую задачу. При поступлении пакета он анализирует адрес получателя. Если пакет адресован в ЛВС, маршрутизатор отсылает его в ЛВС; если пакет имеет внешний адрес, маршрутизатор просто отсылает его по выделенной линии ISP.

Рассмотрим локальную сеть ISP. Вы видите два маршрутизатора: маршрутизатор А, который соединяет по выделенной линии ЛВС ISP с удаленной ЛВС пользователя, и маршрутизатор В, соединяющий ЛВС ISP по выделенной линии с Internet.

Поскольку для каждой сети необходим шлюз, заданный по умолчанию, то маршрутизатор В выполняет функции такого шлюза: когда хост-компьютер ЛВС ISP устанавливает соединение с хост-компьютером, не принадлежащим удаленной ЛВС, маршруты к которому неизвестны, он передает информацию маршрутизатору В.

Но если ISP выделяет только маршрутизатор В как шлюз, заданный по умолчанию для компьютеров в своей ЛВС, то информация, предназначенная провайдеру удаленной ЛВС реально посылается маршрутизатору В.

Постоянный маршрут определяет, какая информация от сети или хост-компьютера должна быть отправлена на различные шлюзы после шлюза, определенного по умолчанию. Постоянный маршрут может быть определен для пересылки всего трафика от провайдера Internet в удаленную ЛВС через маршрутизатор А. Для хост-компьютеров ЛВС ISP есть три правила маршрутизации.

  1. Если пакет адресован хост-компьютеру ЛВС, необходимо отослать его непосредственно на хост.
  2. Если пакет адресован в сеть, соединенную с маршрутизатором А, необходимо отослать его маршрутизатору А.
  3. Остальные пакеты отсылаются маршрутизатору В.

Теперь процесс должен быть понятен. Когда прибывает входящий пакет, адресованный в вашу ЛВС, он идет из Internet к маршрутизатору В. Маршрутизатор В анализирует адрес пакета, определяет адресат в ЛВС, и по постоянному маршруту отсылает пакет маршрутизатору А. Маршрутизатор А анализирует адрес пакета, определяет адресат в удаленной ЛВС и отсылает пакет прямо к адресату.

Чрезвычайно сложна маршрутизация в большой корпорации с множеством сайтов, множеством ЛВС и большим количеством выходов в Internet. В этих случаях для обеспечения более эффективной пересылки информации разрабатываются способы безопасной маршрутизации. Например, два удаленных компьютера могут соединяться по выделенной линии и иметь собственные выходы в Internet. He имеет смысла пересылать пакеты между этими двумя компьютерами по Internet. Такая пересылка неэффективна и не обеспечивает необходимого уровня безопасности.

Маршрутизация в больших сетях в книге не рассмотрена. Мы лишь попытались изложить основы стандартных способов маршрутизации, при помощи которых общается большинство пользователей Linux.

 

7. Что дальше

 

Что дальше

Мы рассмотрели основные концепции сетей ТСРЯР и маршрутизации.

Эти знания понадобятся нам при чтении гл. 22. Они помогут нам понять, как организовать связь компьютеров, работающих под управлением Linux, с Internet посредством коммутируемого соединения Dial-up PPP (наиболее часто реализуемого провайдерами Internet).

В последующих главах также рассмотрено, как под управлением Linux организовать использование таких сервисов Internet, как World Wide Web и e-mail.