Что такое upnp

.

Любой хороший системный администратор на «семерке» мечтает, чтобы всего его компьютеры в сети были между собой правильно подключены и бесперебойно взаимодействовали. Чтобы мечта обратилась в реальность, он должен знать, как включить upnp на роутере и в windows 7. Рассмотрим основные примеры включения этой службы.

Universal Plug and Play – служба, которая позволяет находить и настраивать, в автоматическом режиме, любые устройства, которые соединены локально в сеть.

Технология UPNP: активация на роутере Ростелекома

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

Не будем углубляться в подробности архитектуры компьютерных сетей, поэтому сразу перейдем к тому, как включить upnp на роутере. Рассмотрим три примера:

  1. Роутеры от D-Link обычно имеют схожие интерфейсы, поэтому следующий скрин почти универсален для них. Во вкладке Advanced находим Advanced Network и в открывшемся меню ставим галочку возле Enable UPnP и сохраняем настройки.
  2. А вот с роутером D-Link 500T другая история, тут всё немножко проще и вы все поймете из скриншота:
  3. Zyxel keenetic (v1) имеет интерфейс удобнее и чтобы включить upnp на роутере, необходимо сделать то, что показано стрелками:

Что касается включения UPnP на компьютере, вам необходимо выполнить следующие действия:

  1. Входим в панель управления.
  2. Добираемся до раздела «Сеть и интернет» или же «Центр управления сетями и общим доступом»
  3. Далее слева в окне выберите пункт изменения дополнительных параметров.
  4. После этого отметьте в следующем окне:
  5. Сохраните изменения и перезагрузите компьютер. В последующих запусках система будет автоматически активировать этот пункт и вам не будет нужно его заново настраивать.

Как вы видите, вопрос о том, как включить UPnP в Windows 7 имеет достаточно лёгкий ответ.

Похожие записи

Как включить wifi на Windows 8?

Чаще всего, те, кто ранее пользовался Windows 7 не могут быстро привыкнуть к «восьмёрке», т.к. она не совсем схожа с «семёркой». Из-за этого возникают казусы и некоторые простые функции не получается найти или включить. В данной статье мы…

Как включить камеру на ноутбуке в Windows 7

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

DHCP как включить

Вы хотите организовать домашнюю локальную сеть или соединить в одну сеть посредством разных архитектур в аудиториях или офисе?

В таких ситуациях, вам необходимо проверить, включен ли динамический протокол конфигурации узла – DHCP. Как…

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

  • перестают работать торрент-клиенты;
  • нет возможности подключиться к игровому онлайн серверу;
  • нет обращений к серверу внутренней сети из вне ни по одному протоколу и ни на один порт.

Решить проблему помогает правильная настройка маршрутизатора, а именно сервиса NAT на нем. Для того, чтобы понять, как настроить NAT на роутере, необходимом узнать, что такое трансляция адресов и для чего это используется.

NAT: общие определения

NAT (network address translation) или трансляция сетевых адресов — это процесс перевода внутренних или локальных адресов во внешние. NAT используется абсолютно всеми маршрутизаторами независимо от их конфигурации, назначения и стоимости. По умолчанию роутер запрещает напрямую обращаться к любому устройству, находящимися внутри сети. Он блокирует доступ на любые порты для входящих соединений поступающие из интернета.

Но NAT и Firewall это суть разные понятия. Firewall просто запрещает доступ к ресурсу по определенному TCP или UDP порту, может устанавливаться на локальной машине для ограничения доступа только к ней или же на сервере для фильтрации трафика по всей локальной сети. Перед NAT задача стоит более развернуто. Сервис запрещает или разрешает доступ внутри сети по конкретному IP адресу или диапазону адресов. Таким образом клиент, который обращается к ресурсу не видит действительного IP адреса ресурса. NAT переводит внутренний IP в адрес, который будет виден из интернета.

Чтобы проверить находится ли компьютер за NAT или транслирует в интернет реальный адрес можно следующим образом:

  • в Windows нужно нажать «Пуск — Выполнить — cmd» и прописать ipconfig и нажать «Ввод»;
  • в Linux и MacOS в терминале выполняется ifconfig.

Вывод команды показывает следующие данные:

  • IP — реальный, действительный адрес компьютера;
  • Subnet mask — маска подсети;
  • Gateway — адрес шлюза маршрутизатора.

Как теперь разобрать является ли адрес локальным или же напрямую «смотрит» в интернет.

Согласно спецификации, существует четыре диапазона адресов, которые ни при каких обстоятельствах не используются в интернете, а являются исключительно локальными:

  1. 0.0.0 — 10.255.255.255
  2. Х.0.0 — 172.Х.255.255, где Х в диапазоне от 16 до 31.
  3. 168.0.0 — 192.168.255.255
  4. 254.0.0 — 169.254.255.255

В том случае, когда адрес машины попадает в один из этих диапазонов, следует считать, что компьютер находится в локальной сети или «за» NAT. Можно также дополнительно использовать специальные службы, которых есть множество в интернете для определения реального IP адреса. Теперь стало понятнее находится ли компьютер за NAT в роутере что это за сервис, и за то он отвечает.

Проблемы NAT и возможности решения

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

В качестве примера можно рассмотреть протокол передачи файлов (FTP), который был саммым распространенным к появлению NAT. Для файловых серверов (FTP) ключевым является реальный IP адрес компьютера, который посылает запрос на доступ. Здесь преобразование адресов не работает, потому что запрос на сервер отправляется с IP, невидимого из интернета. Нет возможности создать сессию клиент-сервер для загрузки файлов. Обойти проблему помогает использование FTP в пассивном режиме. В этом режиме используется другой набор команд, и работа ведется через специальный прокси-сервер, который дополнительно открывает другой порт для соединения и передает его программе клиенту. Проблемой такого решения является то, что необходимо использовать сторонние FTP клиенты.

Полностью избавиться от проблемы доступа получилось только с появлением SOCKS (Socket Secure) протокола.

Ответы на любые вопросы

Этот протокол позволяет обмениваться данными через прокси-сервер в «прозрачном» режиме. То есть сервер не будет знать, что происходит подмена адресов с локальных на глобальные и наоборот. Изобретение SOCKS позволило избавиться от ряда проблем и упростить работу администрирования сети:

  • создает на сервере службу, слушающую входящие запросы, что позволяет обслуживать многосвязные протоколы наподобие FTP;
  • нет необходимости использовать и обслуживать службу DNS внутри локальной сети. Теперь такая задача возложена на кэширующие прокси;
  • дополнительные способы авторизации позволяют с большей эффективностью проводить отслеживание и фильтрацию пакетов. Средствами NAT можно фильтровать запросы только по адресам.

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

Настройка NAT на компьютере

Все современные операционные системы имеют уже встроенный NAT. В Windows эта функция реализована с 1999 года с появлением Windows XP. Управление NAT осуществляется непосредственно через свойства сетевого подключения. Чтобы настроить службу нужно сделать следующее:

  • Через меню «Пуск» запустить программу «Панель управления».
  • Найти иконку «Сетевые подключения» и запустить ее.
  • В новом окне кликнуть правой кнопкой мыши на активном сетевом подключении и выбрать в выпадающем списке «Свойства».
  • Перейти на вкладку «Дополнительно».
  • Установить галочки напротив «Разрешить другим пользователям сети использовать подключение к интернету данного компьютера».
  • Подтвердить изменение кнопкой «Ок».

Если при выведется сообщение что невозможно запустить службу общего доступа, нужно убедиться, что запущена служба DHCP-клиент. При необходимости можно установить запуск службы принудительно, а не по запросу автоматически.

Настройка NAT на маршрутизаторе

Что такое NAT в роутере, целесообразность его использования и проблемы, которые он может создать было описано выше, теперь можно перейти непосредственно к реализации задачи. Настройка службы на роутере зависит от его модели, используемой прошивки и других параметров. Но достаточно понять механизм, чтобы не возникало сложностей и вопросов по настройке отдельного устройства. Для настройки выполняются следующие действия (в качестве примера настройки выполняются на роутере Zyxel на прошивке v1):

  • В браузере зайти на страницу настроек роутера.
  • Перейти в меню «Network — Routing» на вкладку «Policy routing».

Открывшаяся страница и будет той, которая управляет политиками доступа и маршрутизацией. Здесь необходимо включить службу, активировав переключатель в положение «Enable». Сами настройки выполняются в группе «Criteria». Выбираются параметры NAT по нескольким категориям фильтров:

  • User — трансляция по определенному пользователю.
  • Incoming — по сетевому интерфейсу.
  • Source Address — подмена адреса по адресу источника.
  • Destination Address — по адресу конечного получателя
  • Service — по конкретному порту службы.

В качестве объекта перенаправления можно выбрать следующие варианты:

  • Auto — автоматический выбор объекта назначения. По умолчанию установлен Wan интерфейс.
  • Gateway — шлюз, указанный заранее в настройках.
  • VPN Tunel — соответственно через VPN туннель.
  • Trunk — диапазон интерфейсов, настроенных на совместную работу.
  • Interface — конкретный интерфейс по выбору.

В каждом отдельно взятом роутере настройки и название пунктов меню может отличаться, но принцип построения NAT остается неизменным.

Что скрывается за Universal Plug and Play

главная — Статьи — Linux, FreeBSD

Перенаправление (forward) портов iptables

Теги: LinuxНастройка сервераIptablesNAT

Рассмотрим перенаправление (forward) на двух примерах:

1. с внешнего IP на внутренний сервер (без masquerade, IP-адрес источника сохраняется);

2. forward с использованием masquerade, с подменой IP-адреса источника (в локалку, и просто с сервера на сервер).

 

Пример 1: FORWARD (снаружи в локальную сеть, DNAT, меняется только адрес назначения)

Предположим, у вас есть веб-сервер в локальной сети, который должен быть доступным из дикого интернета только по https (443/tcp). Причин не использовать VPN или отдельный IP для отдельного сервера может быть много. Например, архитектура сети, отсутствие свободных IP, веб-сервер — гостевая виртуальная машина, а наш шлюз — хост )) Ну, не знаю, сами придумайте ситуацию.

Причем мы хитрые и хотим, чтобы наш веб сервер из интернета не был виден на 443 порту, а был доступен, скажем, на 1293 порту (примерно вот так: https://1.2.3.4:1293).

Итак, мы хотим перенаправить входящие из интернет на порт 1293 на порт 443 сервера в локальной сети.

IPT="/sbin/iptables"

IF_EXT="eth0" # Внешний сетевой адаптер
IF_INT="eth1" # Внутренний сетевой адаптер

IP_EXT="1.2.3.4" # Внешний IP
IP_INT="192.168.1.1" # Внутренний IP

FAKE_PORT="1293" # Фейковый порт, доступен из интернет

LOCAL_SRV="192.168.1.28" # Web сервер в LAN
SRV_PORT="443" # Настоящий порт

# NAT
$IPT -t nat -A PREROUTING -i $IF_EXT -p tcp -d $IP_EXT —dport $FAKE_PORT -j DNAT —to $LOCAL_SRV:$SRV_PORT

# FORWARD
$IPT -A FORWARD -i $IF_EXT -o $IF_INT -d $LOCAL_SRV -p tcp —dport $SRV_PORT -j ACCEPT

PREROUTING

Каждый пакет, попадающий на интерфейс, сначала предварительно обрабатывается (prerouting). Нам нужно, чтобы до того, как шлюз примет решение о маршрутизации (типа, а что с этим делать-то?), всем пакетам, пришедшим на внешний ($IF_EXT) интерфейс на порт 1293 (например, так: https://1.2.3.4:1293), был бы изменен пункт назначения на IP и порт сервера во внутренней сети. Т.е. шлюз "подкорректирует" destination пришедшего пакета так, чтобы можно было принять правильное решение о маршрутизации.

/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -d 1.2.3.4 —dport 1293 -j DNAT —to 192.168.1.28:443

Дальше пакет попадет в цепочку FORWARD.

FORWARD

Пакет изменен и, очевидно, что он не предназначен хосту 1.2.3.4. Хост знает, как добраться до локальной сети 192.168.1.0. Поэтому после прохождения цепочки PREROUTING пакет будет направлен на маршрутизацию (а не в INPUT или OUTPUT) — до хоста 192.168.1.28. Т.к. все FORWARD по умолчанию запрещены, разрешаем в явном виде отправку данных, попавших на внешний интерфейс, уходящих через внутренний интерфейс на адрес в локальной сети 192.168.1.28 на порт 443:

/sbin/iptables -A FORWARD -i eth0 -o eth1 -d 192.168.1.28 -p tcp —dport 443 -j ACCEPT

Вот и все.

Есть тонкость: это не маскарадинг (когда сервер-получатель не знает, откуда реально пришел запрос). Это изменение адреса назначения. Сервер в локальной сети получит пакет с реального адреса клиента, а не с ip шлюза. Это не плюс и не минус. Это просто факт. Иногда это удобно (когда именно ваш внутренний веб-сервер должен решать, давать кому-то доступ к его ресурсам или нет), а иногда — нет (это в данном случае ответ от веб-сервера пойдет через наш шлюз и не возникнет проблем, а если бы мы делали forward не в локальную сеть, а на другой публичный ip-адрес, то веб-сервер послал бы ответ не шлюзу, а сразу клиенту, и тот мог бы отбросить ответ от ip, который он не запрашивал). 

 

Пример 2: FORWARD с одного ip на другой (DNAT с MASQUERADE, меняется адрес источника и назначения)

Не всегда перенаправление совершается из/в локальную сеть. Бывает, что необходимо сделать проброс соединения на какой-то сервер, используя промежуточный. Это может быть необходимо для дополнительной фильтрации подключаемых клиентов, для разделения нагрузки и других задач.

Есть хост с публичным IP-адресом (1.1.1.1), ему может быть сопоставлено доменное имя, для которого могут быть выпущены SSL-сертификаты и прочее.

Нужно, чтобы клиенты, обращающиеся на 1.1.1.1:25, направлялись бы на 2.2.2.2:25, с 1.1.1.1:443 — на 3.3.3.3:443, а с ip 4.4.4.4 обращения на порт 3535 шли бы на 3.3.3.3:22.

1.1.1.1, 2.2.2.2, 3.3.3.3 — это публичные IP-адреса (а могут быть и внутренними, не важно, могут быть от разных ISP и вообще, в разных местах). Подключающимся клиентам это знать незачем, не придется ничего перенастраивать в почтовых программах и т.п.

(!) Естественно, хосты 2.2.2.2 и 3.3.3.3 должны разрешать трафик на соответствующие порты!

Вот идея правил iptables на сервере 1.1.1.1:

#!/bin/sh IF_EXT="eth0" IPT="/sbin/iptables" # flush $IPT —flush $IPT -t nat —flush $IPT -t mangle —flush $IPT -X # loopback $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # default $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP # allow forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # NAT $IPT -t nat -A PREROUTING -i $IF_EXT -p tcp —dport 25 -j DNAT —to 2.2.2.2:25 $IPT -t nat -A PREROUTING -i $IF_EXT -p tcp —dport 443 -j DNAT —to 3.3.3.3:443 $IPT -t nat -A PREROUTING -i $IF_EXT -p tcp -s 4.4.4.4 —dport 3535 -j DNAT —to 3.3.3.3:22 $IPT -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE # FORWARD $IPT -A FORWARD -m state —state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -i $IF_EXT -o $IF_EXT -s 4.4.4.4 -d 3.3.3.3 -j ACCEPT $IPT -A FORWARD -i $IF_EXT -o $IF_EXT -d 2.2.2.2 -j ACCEPT $IPT -A FORWARD -i $IF_EXT -o $IF_EXT -d 3.3.3.3 -j ACCEPT # log #$IPT -A FORWARD -j LOG —log-prefix " —FORWARD-LOG— " # INPUT $IPT -A INPUT -p tcp ! —syn -m state —state NEW -j DROP $IPT -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT # ssh $IPT -A INPUT -p tcp —dport 22 -j ACCEPT # OUTPUT $IPT -A OUTPUT -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT

Комментарии к скрипту:

1) INPUT разрешен только для 22/tcp, для ssh.

2) Несмотря на то, что интерфейс всего один, masquerade включен все равно. При переброске трафика все последующие сервера будут считать, что источник всего — это 1.1.1.1, а не реальные клиенты! Это важное отличие от предыдущего примера forward, когда менялся только адрес назначения!

3) Пусть вас не смущает, что OUTPUT по дефолту DROP, а ниже — все ACCEPT. Привык всегда вначале ставить DROP на все, а потом по необходимости разрешаю. В данном случае нет необходимости фильтровать исходящие со шлюза пакеты.

 

Отладка

На удаленном компьютере-клиенте запустите что-то вроде "telnet 1.1.1.1 25". Пакет должен прийти на 1.1.1.1:25. Это можно контролировать, запустив на сервере 1.1.1.1 в консоли команду:

tcpdump -n port 25

Если все правильно, то на удаленном клиенте пойдет сеанс связи с SMTP-сервером 2.2.2.2.

Если что-то не так, вы должны понимать, что пакет все же пришел на 1.1.1.1:25. А вот потом не ушел. Он не должен попасть никуда, кроме FORWARD. Поэтому для отлова отбрасываемого трафика в цепочке FORWARD раскомментируйте правило лога (есть в примере) и просматривайте события в реальном времени (например, "tail -f /var/log/messages"). В соответствии с тем, что вы увидите в логе, испрвьте ваши правила iptables. Все должно получиться. Когда это произойдет, не забудьте выключить логирование (иначе размер лог-файла станет огромным).

Авторизуйтесь для добавления комментариев!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *