Раздел: Документация
0 ... 45 46 47 48 49 50 51 ... 125
Internet Рис. 7.3. При базовой трансляции адресов клиентам выделяется по одному адресу из блока адресов Трансляция адресов портов В главе 2 мы обсуждали концепцию сокетов, представляющих собой комбинацию из IP-адреса и номера порта, которая применяется для однозначной идентификации конечных точек TCP- или UDP-соединения. Порты 0-1023 обычно (но не всегда) зарезервированы для серверов, а с портами от 1024-го и последующими могут работать клиенты. Например, в процессе TCP-соединения клиент посылает серверу запрос, включая в его заголовок IP-адрес и номер порта получателя, а также собственный адрес и номер порта. При этом порты отправителя и получателя не обязательно должны совпадать. Они предназначены лишь для однозначной идентификации соединения, чтобы компьютер мог определить, какое приложение взаимодействует с другим приложением на другом узле. Номер порта получателя пакета обычно задает используемую службу. Так, серверы Telnet, как правило, ожидают установки соединения на 23-м порту. Но порт отправителя может быть любым. Нужно лишь, чтобы сервер Telnet знал его и указывал при ответе на запрос клиента. Вы, вероятно, уже догадались, куда я клоню. Чтобы расширить число возможных исходящих соединений и при этом не увеличивать количество отведенных серверу NAT адресов, в новой форме NAT, которая называется трансляцией адресов сетевых портов (Network Address Port Translation, NAPT), допустимо в клиентских запросах заменять и IP-адреса, и номера портов отправителя. С помощью этого метода один IP-адрес можно распределить между множеством клиентов локальной сети просто за счет изменения номера порта отправителя. Сервер NAT поддерживает таблицу, в которой каждому соединению клиента с внешним миром сопоставляется уникальная комбинация IP-адреса и номера порта. Иногда для обозначения NAPT употребляются термины трансляция адресов портов (Port Address Translation, PAT) и перегрузка NAT (NAT Overloading). Благодаря NAPT единственный IP-адрес может одновременно служить большому числу клиентов локальной сети. Другие данные, изменяемые при трансляции адресов Не забывайте, что кроме IP-адреса и, возможно, номера порта отправителя, должны изменяться и другие поля - контрольные суммы заголовков пакетов. Если при изменении IP-адреса не изменить и контрольную сумму заголовка, то пакет на другом конце соединения будет отброшен, поскольку соответствующий стек TCP/IP определит, что пакет был модифицирован или поврежден при передаче. Серверы NAT записывают в заголовок новую контрольную сумму. Как видите, посредством трансляции адресов удается скрывать информацию о внутренней сети. Поскольку настоящий IP-адрес клиента никогда не присутствует в Internet, постороннему сложно, а точнее почти невозможно определить его. Но из этого правила есть исключения. Некоторые приложения помещают адреса отправителя и получателя в область данных пакета. Например, большинство ICMP-пакетов, таких как пакеты типа «адресат недоступен» или «ошибочные параметры», содержат в своей области данных исходный IP-пакет, в котором возникла ошибка. Серверу следует учитывать это и модифицировать такие пакеты. Он должен обладать возможностью изменять информацию, во-первых, в заголовке IP-пакета с сообщением ICMP, а во-вторых - в исходном IP-пакете, который теперь заключен внутри ICMP-пакета. При выборе продукта, применяющего технологию NAT, внимательно изучите документацию, чтобы убедиться, что он поддерживает нужные вам сетевые службы. Увеличение адресного пространства локальной сети Еще одно преимущество трансляции адресов состоит в том, что она позволяет значительно увеличить адресное пространство внутренней сети. До появления NAT каждый присоединенный к Internet компьютер должен был иметь свой уникальный IP-адрес. При подключении к Internet двух сетей с одинаковыми адресными пространствами невозможно будет определить, куда направлять пакеты. Представьте себе, что произойдет, если несколько домов на улице будут иметь один и тот же адрес. Как почтальон разберется, куда доставить письмо? Благодаря трансляции адресов разрешается брать адреса из специального диапазона, выделенного организацией IANA. Вместо того, чтобы довольствоваться сетью класса С, в которой допускается не больше 256 адресов, вы получаете в распоряжение любой из зарезервированных диапазонов адресов. Теми же адресами разрешено воспользоваться и любой другой сети. Суть заключается в том, что сервер NAT будет транслировать внутренние адреса сети в адреса Internet. При работе с NATP вам понадобится меньший диапазон зарегистрированных адресов из-за наличия различных номеров портов. Одним из основных побудительных факторов для разработки следующей версии протокола Internet, IPv6, было убеждение в том, что диапазон адресов IPv4 будет быстро исчерпан. Трансляция адресов смягчает эту проблему, поскольку при этом не требуется, чтобы каждый узел сети обладал уникальным IP-адресом. В течение последних лет несколько образовательных организаций, которые были подключены к Internet с момента его появления (и занимавшие огромные диапазоны адресов класса А), изменили конфигурацию своих сетей и перешли во внутренние диапазоны адресов. Освободившиеся адреса класса А могут быть предоставлены другим организациям. IPv6, безусловно, представляет будущее Internet, однако в краткосрочном плане NAT позволяет уменьшить нехватку сетевых адресов. IPv6 - это наше будущее. Более подробную информацию об этом IP-протоколе следующего поколения вы можете найти в главе 21. I Что такое векторизация адресов Так называемая векторизация адресов (address vectoring) очень похожа на трансляцию сетевых адресов. Предположим, что к популярному Web-сайту ежедневно происходит огромное число обращений. Для обработки этих запросов можно иметь очень мощный сервер с большим числом процессоров и дисковых массивов. Но в конце концов наступит момент, когда любой, даже самый мощный сервер окажется перегруженным и время реакции на запрос увеличится. Для крупного Web-сайта практически не удается обойтись единственным сервером. Одно из возможных решений: предусмотреть несколько серверов, назначив каждому свой адрес и свое имя. Но это не очень удобно: клиентам для доступа к серверу понадобится несколько имен, и не исключено, что придется перепробовать несколько серверов для получения удовлетворительного времени ответа. Векторизация адреса позволяет распределять нагрузку между несколькими серверами, которые выглядят с точки зрения клиента как один сервер, для которого нужен всего один IP-адрес и одно доменное имя. NAT дает возможность транслировать несколько внутренних адресов клиентов в один зарегистрированный внешний IP-адрес. Векторизация адресов работает аналогичным образом и транслирует один внешний IP-адрес в несколько адресов в локальной сети. При этом также можно добавлять серверы, уравновешивая нагрузку. Для выбора при ответе на запрос определенного сервера (обычно наименее загруженного) служат proxy-серверы, поддерживающие векторизацию адресов. Описание установки и настройки сервера Microsoft Proxy Server см. в главе 18. 0 ... 45 46 47 48 49 50 51 ... 125
|