Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3095 / 613 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 13:

Перенаправление портов

< Лекция 12 || Лекция 13: 12345 || Лекция 14 >
Аннотация: В данной лекции описаны инструменты для перенаправления трафика с одного порта на другой. В конце лекции, как всегда, пример из жизни

Для установления связи большинство TCP/IP-сервисов используют метод клиент/сервер. Чтобы достичь цели, пакет должен иметь IP-адрес получателя (единственный хост в сети) и порт получателя (отдельный "сокет" на хосте). TCP/IP отводит 16 бит для номера порта. Это означает, что для подключения к сокету назначаются числа из интервала от 0 до 65535. Большинство серверов стараются использовать широко известные порты, с номерами от 0 до 1023, чтобы клиенту было легче узнать, как подключиться к сервису. Например, по умолчанию для связи по протоколу HTTP Web-сервер прослушивает TCP-порт 80. Сервер электронной почты по умолчанию прослушивает SMTP-трафик через TCP-порт 25.

Примечание. Многие операционные системы используют в качестве номера порта только небольшой диапазон значений. Windows 2000, например, при динамическом назначении порта по умолчанию использует порты от 1024 до 5000. Linux использует значения, определенные в файле /proc/sys/net/ipv4/ip_local_port_range (1024-4999 по умолчанию).

Номера портов выше 1023 относятся к диапазону зарегистрированных или динамических портов. Номера с 1024 до 49151 представляют зарегистрированный диапазон портов. Эти порты, возможно, имеют установленные сервисные назначения (например, TCP-порт 26000 для Quake), но они также используются, как конечная точка для подключений клиента. Диапазон номеров от 49152 до 65535 содержит динамические порты.

Примечание. Агентство по выделению имен и уникальных параметров протоколов интернета (IANA - Internet Assigned Numbers Authority) назначает сервисы номерам портов. На практике же только широко известному диапазону портов удается избежать проблемы, связанной с тем, что несколько сервисов претендуют на один и тот же номер порта.

Когда вы вводите адрес URL в Web-броузере, вы инструктируете броузер соединяться с TCP-портом 80 по определенному IP-адресу. Когда сервер получает пакет от вашей системы, он знает IP-адрес и номер порта, по которому нужно возвратить данные. Для http-запросов Web-сервер по умолчанию всегда прослушивает TCP-порт 80, а Web-клиент выполняет запрос со случайного порта с номером выше, чем 1023. Web-сервер никогда не знает, на какой порт он собирается передавать данные. Хотя номер порта остается одним и тем же в течение всего сеанса (например, в единственном запросе GET/index.html ), между запросами он может изменяться: например, первая комбинация портов могла бы быть - с номера 1066 на стороне клиента к номеру 80 на сервере, следующая - с номера 1067 на стороне клиента к номеру 80 на сервере. Если вам доведется сдавать экзамен по информатике, используйте технический термин: пара IP-адрес - порт связи называются "блок управления передачей" (Transmission Control Block).

Сервер Secure Shell (SSH) по умолчанию прослушивает TCP-порт 22. Протокол SMB (Server Message Block - блок серверных сообщений), который выполняет большую часть сетевой работы Windows, прослушивает TCP-порт 139 (а также порт 445 в системах Windows 2000 и XP). Большинство Web-серверов прослушивают TCP-порт 80, а FTP прослушивает TCP-порт 21. Средства управления доступом к сети, устанавливаемые маршрутизатором или брандмауэром, определяют, какие порты между двумя сетями являются открытыми, а какие закрытыми. Хосты интернета, возможно, способны обратиться к порту 80 на Web-сервере компании, но устройство сетевой защиты, скорее всего, будет блокировать доступ к порту 139. Существенная часть сетевой защиты базируется на определении того, каким хостам позволено обращаться к определенным портам.

Примечание. Используйте команду netstat -na, чтобы узнать текущие IP-подключения и используемые ими номера портов.
< Лекция 12 || Лекция 13: 12345 || Лекция 14 >
Сергей Постнов
Сергей Постнов
Россия, Москва, МГУ им. М.В. Ломоносова, 2004