Размер шрифта:
Работа со средствами NAT и брандмауэрами
Play

Работа со средствами NAT и брандмауэрами

Зачастую в сетевом подключении между клиентом и сервером отсутствует прямой и открытый путь для взаимодействия. Пакеты фильтруются, перенаправляются, анализируются и преобразуются как на конечных, так и на промежуточных компьютерах в сети. Типичными примерами промежуточных приложений, участвующих в сетевом взаимодействии, служат средства преобразования сетевых адресов (NAT) и брандмауэры.

Windows Communication Foundation (WCF) транспорты и шаблоны обмена сообщениями (шаблонов обмена сообщениями) по-разному реагируют на присутствие сетевых адресов и брандмауэров. В этом разделе описано, как работают средства NAT и брандмауэры в типичных топологиях сети. Рекомендации для конкретных сочетаний переносимых транспортов WCF и шаблонов обмена сообщениями, что помогает сделать ваши приложения более надежными для сетевых nat и брандмауэров в сети.

Влияние преобразования сетевых адресов на обмен данными

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

Преобразование сетевых адресов не обеспечивает периметр безопасности. Однако в распространенных конфигурациях NAT прямая адресация внутренних компьютеров не поддерживается. Это, с одной стороны, позволяет защитить внутренние компьютеры от некоторых нежелательных подключений, а, с другой стороны, затрудняет создание серверных приложений, которым требуется асинхронно отправлять данные назад клиенту. Средство NAT переписывает адреса в пакетах таким образом, чтобы они напоминали подключения, исходящие от компьютера NAT. Это приводит к сбою сервера при попытке открытия обратного подключения к клиенту. Если сервер использует полученный адрес клиента, происходит сбой, поскольку отсутствует возможность открытой маршрутизации на адрес клиента. Если сервер использует адрес NAT, происходит сбой из-за отсутствия прослушивающего приложения на этом компьютере.

Некоторые средства NAT поддерживают настройку правил переадресации, чтобы разрешить внешним компьютерам подключаться к определенному внутреннему компьютеру. Инструкции по настройке правил переадресации различаются в разных системах NAT, поэтому в большинстве случаев не рекомендуется обращаться к конечным пользователям с просьбой изменить конфигурацию NAT. Кроме того, многие конечные пользователи не смогут или не захотят изменять конфигурацию NAT ради одного приложения.

Влияние брандмауэров на обмен данными

Брандмауэр — это программное или аппаратное устройство, которое применяет правила к трафику, проходящему через, чтобы решить, следует ли разрешить или запретить передачу данных. Брандмауэры можно настроить для проверки входящего или исходящего трафика. Брандмауэр создает в сети периметр безопасности либо на границе сети, либо на узле конечной точки. Корпоративные пользователи традиционно размещали свои серверы за брандмауэром для предотвращения вредоносных атак. с момента появления персонального брандмауэра в Windows XP с пакетом обновления 2 (SP2) также значительно увеличилось число домашних пользователей за брандмауэром. Скорее всего, одна или обе конечных точки подключения снабжены брандмауэром, проверяющим пакеты.

Брандмауэры очень сильно различаются по своей сложности и возможностям проверки пакетов. Простые брандмауэры применяют правила на основании исходного и конечного адресов и портов, указанных в пакетах. Более сложные брандмауэры также проверяют содержимое пакетов. Такие брандмауэры поставляются в различных конфигурациях и часто используются для специализированных приложений.

В типичной конфигурации домашнего пользователя брандмауэр запрещает входящие подключения кроме случаев, когда ранее было установлено исходящее подключение к этому компьютеру. В типичной конфигурации корпоративного пользователя брандмауэр запрещает входящие подключения ко всем портам за исключением группы заданных портов. Примером служит брандмауэр, который запрещает подключения ко всем портам, кроме портов 80 и 443 для предоставления услуг HTTP и HTTPS. Также домашним и корпоративным пользователям предлагаются управляемые брандмауэры, которые разрешают доверенному пользователю или процессу изменять конфигурацию брандмауэра. Управляемые брандмауэры чаще используются домашними пользователями, у которых нет корпоративной политики по контролю за использованием сети.

Использование Teredo

Teredo является технологией перехода на IPv6, позволяющей напрямую обращаться к адресам компьютеров, находящихся за устройством преобразования сетевых адресов (NAT). Teredo опирается на использование сервера, который может публично и глобально маршрутизироваться для объявления возможных подключений. Сервер Teredo служит общей точкой пересечения для клиента и сервера приложения, с помощью которой они могут обмениваться информацией о подключении. Затем компьютеры запрашивают временный адрес Teredo, а пакеты туннелируются по существующей сети. Для поддержки Teredo в WCF требуется включить поддержку IPv6 и Teredo в операционной системе. операционная система Windows XP и более поздних версий поддерживает Teredo. Windows Vista и более поздние операционные системы поддерживают IPv6 по умолчанию, и пользователю требуется только включить Teredo. для Windows XP SP2 и Windows Server 2003 требуется, чтобы пользователь включил протоколы IPv6 и Teredo. Дополнительные сведения см. в обзоре Teredo.

Выбор транспорта и шаблона обмена сообщениями

Выбор транспорта и шаблона обмена сообщениями осуществляется в три этапа.

Анализ возможности адресации компьютеров конечной точки. В большинстве случаев для корпоративных серверов доступна прямая адресация, а возможность адресации конечных пользователей блокируется средствами NAT. Если обе конечные точки защищены средствами NAT, например в одноранговых сценариях взаимодействия между конечными пользователями, для обеспечения возможности адресации может потребоваться использование такой технологии, как Teredo.

Анализ ограничений протокола и портов компьютеров конечной точки. Корпоративные серверы, как правило, находятся за мощными брандмауэрами, которые блокируют многие порты. Однако зачастую открыт порт 80 для трафика HTTP и порт 443 для трафика HTTPS. Ограничения портов у конечных пользователей применяются реже, однако может использоваться брандмауэр, разрешающий только исходящие подключения. В некоторых брандмауэрах предусмотрена возможность избирательного открытия подключений для отдельных приложений на конечной точке.

Выбор транспортов и шаблонов обмена сообщениями с учетом возможности адресации и ограничения портов в сети.

В типичной топологии клиент-серверных приложений клиенты расположены за средством NAT без поддержки Teredo с брандмауэром, разрешающим только исходящий трафик. При этом сервер с возможностью прямой адресации расположен за мощным брандмауэром. Для такого сценария хорошо подходит транспорт TCP с дуплексным шаблоном обмена сообщениями и транспорт HTTP с шаблоном обмена сообщениями типа "запрос-ответ". В типичной топологии одноранговых приложений обе конечные точки находятся за средствами NAT и брандмауэрами. В таком сценарии и в сценариях с неизвестной топологией сети необходимо учитывать следующие рекомендации.

Не используйте двусторонние транспорты. Двусторонний транспорт открывает больше подключений, что снижает вероятность успешного установления подключения.

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

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

В следующих таблицах рассматриваются односторонние, запрос-ответ и дуплексные шаблонов обмена сообщениями, а также стандартные протоколы TCP, TCP с Teredo, стандартные и два транспорта HTTP в WCF.

📎📎📎📎📎📎📎📎📎📎