|
Сетевые протоколы
(Материал из Википедии — свободной энциклопедии)
PPTP
PPTP (англ. Point-to-point tunneling protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой, сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.Содержание [убрать]
1 Спецификация
2 Реализация PPTP
3 См. также
4 Ссылки
Спецификация
Спецификация протокола была опубликована как «информационный» RFC 2637 в 1999 году. Она не была ратифицирована IETF. Протокол считается менее безопасным, чем другие VPN-протоколы, например, IPSec. PPTP работает, устанавливая обычную PPP сессию с противоположной стороной с помощью протокола Generic Routing Encapsulation. Второе соединение на TCP-порту 1723 используется для инициации и управления GRE-соединением. PPTP сложно перенаправлять за сетевой экран, так как он требует одновременного установления двух сетевых сессий.
PPTP-трафик может быть зашифрован с помощью MPPE. Для аутентификации клиентов могут использоваться различные механизмы, наиболее безопасные из них — MSCHAP-v2 и EAP-TLS.
Реализация PPTP
Cisco первой реализовала PPTP и позже лицензировала эту технологию корпорации Microsoft.
PPTP удалось добиться популярности благодаря тому что это первый VPN протокол, поддерживаемый корпорацией Microsoft. Все версии Microsoft Windows, начиная с Windows 95 OSR2, включают в свой состав PPTP-клиент, однако существует ограничение на два одновременных исходящих соединения. А сервис удалённого доступа для Microsoft Windows включает в себя PPTP сервер.
До недавнего времени в Linux-дистрибутивах отсутствовала полная поддержка PPTP из-за опасения патентных претензий по поводу протокола MPPE. Впервые полная поддержка MPPE появилась в Linux 2.6.13. Официально поддержка PPTP была начата с версии ядра Linux 2.6.14.
Операционная система FreeBSD поддерживает PPTP протокол, используя в качестве сервера PPTP порт mpd (/usr/ports/net/mpd), используя подсистему netgraph. В качестве клиента PPTP в системе FreeBSD может выступать либо порт pptpclient (/usr/ports/net/pptpclient), либо порт mpd, работающий в режиме клиента.
Mac OS X поставляется со встроенным PPTP клиентом. Cisco и Efficient Networks продают реализации PPTP клиента для более старых версий Mac OS. КПК Palm, имеющие поддержку Wi-Fi, поставляются с PPTP клиентом Mergic.
Microsoft Windows Mobile 2003 и более новые также поддерживают PPTP.
PPPoE
PPPoE и TCP/IP Стек протоколовApplication FTP SMTP HTTP … DNS …
Transport TCP UDP
Network IP IPv6
Network access PPP
PPPoE
Ethernet
PPPoE (англ. Point-to-point protocol over Ethernet) — сетевой протокол передачи кадров PPP через Ethernet. В основном используется XDSL сервисами. Предоставляет дополнительные возможности (аутентификация, сжатие, шифрование).
К сожалению, его MTU ниже, чем на стандартном Ethernet, что иногда вызывает проблемы с плохо настроенными межсетевыми экранами.
PPPoE — это туннелирующий протокол (tunneling protocol), который позволяет наслаивать (или инкапсулировать) IP, или другие протоколы, которые наслаиваются на PPP, через соединения Ethernet, но с программными возможностями PPP соединений, и поэтому используется для виртуальных «звонков» на соседнюю Ethernet-машину и устанавливает соединение точка-точка, которое используется для транспортировки IP-пакетов, работающее с возможностями PPP.
Это позволяет применять традиционное PPP-ориентированное ПО для настройки соединения, которое использует не последовательный канал, а пакетно-ориентированную сеть (как Ethernet), чтобы организовать классическое соединение с логином, паролем для Интернет-соединений. Также, IP-адрес по другую сторону соединения назначается только когда PPPoE соединение открыто, позволяя динамическое переиспользование IP адресов.
PPPoE разработан UUNET, Redback Networks и RouterWare. Протокол описан в RFC 2516.
Стоит отметить, что некоторые поставщики оборудования (Cisco и Juniper, например) ссылаются на PPPoEoE (PPPoE over Ethernet), что означает PPPoE, работающий напрямую через Ethernet или другие сети или связанные в Ethernet (Ethernet bridged over) ATM, для того чтобы отличать от PPPoEoA (PPPoE over ATM), который работает на ATM virtual circuit по спецификации RFC 2684 и SNAP и инкапсулирует PPPoE. PPPoEoA — не то же самое, что Point-to-Point Protocol over ATM (PPPoA) — он не использует SNAP.
Работа PPPoE осуществляется следующим образом. Существует Ethernet-среда, то есть несколько соединённых сетевых карт, которые адресуются MAC-адресами. Заголовки Ethernet-пакетов содержат адрес отправителя пакета, адрес получателя пакета и тип пакета. Одну из карт слушает PPPoE сервер. Клиент посылает широковещательный Ethernet пакет, на который должен ответить PPPoE сервер (адрес отправителя пакета — свой MAC-адрес, адрес получателя пакета — FF:FF:FF:FF:FF:FF и тип пакета — PPPoE Discovery). PPPoE сервер посылает клиенту ответ (адрес отправителя пакета — свой MAC-адрес, адрес получателя пакета — МАС-адрес клиента и тип пакета — PPPoE Discovery). Если в сети несколько PPPoE серверов, то все они посылают ответ. Клиент выбирает подходящий сервер и посылает ему запрос на соединение. Сервер посылает клиенту подтверждение с уникальным идентификатором сессии, все последующие пакеты в сессии будут иметь этот идентификатор. Таким образом, между сервером и клиентом создается виртуальный канал, который идентифицируется идентификатором сессии и MAC-адресaми клиента и сервера. Затем в этом канале поднимается PPP соединение, а уже в PPP пакеты упаковывается IP-трафик.Содержание [убрать]
1 PPPoE Discovery (PPPoED)
1.1 PADI
1.2 PADO
1.3 PADR
1.4 PADS
1.5 PADT
2 Преимущества схемы
3 См. также
PPPoE Discovery (PPPoED)
PADI
PADI — PPPoE Active Discovery Initiation.
Если пользователь хочет подключиться к интернету по DSL, сначала его машина должна обнаружить концентратор доступа (DSL access concentrator или DSL-AC) на стороне провайдера (point of presence (POP)). Взаимодействие через Ethernet возможно только через МAC-адреса. Если компьютер не знает MAC-адреса DSL-AC, он посылает PADI пакет через Ethernet broadcast (MAC: ff:ff:ff:ff:ff:ff) Этот PADI-пакет содержит МАС-адрес пославшей его машины.
Пример PADI-пакета:
Frame 1 (44 bytes on wire, 44 bytes captured)
Ethernet II, Src: 00:50:da:42:d7:df, Dst: ff:ff:ff:ff:ff:ff
PPP-over-Ethernet Discovery
Version: 1
Type 1
Code Active Discovery Initiation (PADI)
Session ID: 0000
Payload Length: 24
PPPoE Tags
Tag: Service-Name
Tag: Host-Uniq
Binary Data: (16 bytes)
Src. (=source) представляет MAC-адрес машины, пославшей PADI.
Dst. (=destination) является широковещательным Ethernet-адресом.
PADI-пакет может быть получен более чем одним DSL-AC.
PADO
PADO — PPPoE Active Discovery Offer.
Как только пользовательская машина отослала PADI-пакет, DSL-AC отвечает посылая PADO-пакет, используя MAC-адреса, пришедшие с PADI. PADO-пакет содержит MAC-адреса DSL-AC, их имена (например LEIX11-erx для концентратора T-Com DSL-AC в Лейпциге) и имя сервиса. Если же более одной точки DSL-AC ответило PADO-пакетом, пользовательская машина выбирает DSL-AC конкретный POP, используя пришедшие имена или имена сервисов.
Вот пример PADO-пакета:
Frame 2 (60 bytes on wire, 60 bytes captured)
Ethernet II, Src: 00:0e:40:7b:f3:8a, Dst: 00:50:da:42:d7:df
PPP-over-Ethernet Discovery
Version: 1
Type 1
Code Active Discovery Offer (PADO)
Session ID: 0000 Payload Length: 36
PPPoE Tags
Tag: Service-Name
Tag: AC-Name
String Data: IpzbrOOl
Tag: Host-Uniq
Binary Data: (16 bytes)
AC-Name — String Data представляет строковое AC имя, в данном случае «Ipzbr001» (Arcor DSL-AC в Лейпциге)
Src. представляет MAC-адрес DSL-AC.
MAC-адрес DSL-AC так же идентифицирует производителя DSL-AC (в данном случае, Nortel Networks)
PADR
PADR расшифровывается как PPPoE Active Discovery Request.
Как сказано выше, пользовательская машина должна выбрать POP (точку доступа) — это делается с помощью PADR-пакета, который посылается на MAC-адрес выбранного DSL-AC.
PADS
PADS — PPPoE Active Discovery Session-confirmation.
PADR-пакет подтверждается концентратором пересылкой PADS-пакета, в нем же приходит Session ID. Соединение с DSL-AC для этой точки доступа теперь полностью установлено.
PADT
PADT — PPPoE Active Discovery Termination.
Этот пакет обрывает соединение с POP. Он может быть послан либо со стороны пользователя, либо со стороны DSL-AC.
Преимущества схемы
IP-пакеты в Ethernet среде игнорируются. То есть пользователь может назначить IP-адрес своей сетевой карте, но это не приведет к «обвалу» сети (теоретически, при работе с сетевым концентратором не должно произойти «обвала» и при смене пользователем MAC-адреса даже на адрес сервера, а при работе с сетевым коммутатором все зависит от конструкции коммутатора).
Каждое соединение отделено от других (работает в своем канале).
Настройки (IP-адрес, адрес шлюза, адреса DNS серверов) могут передаваться сервером.
PPP соединение легко аутентифицируется и обсчитывается (например, при помощи RADIUS).
PPP соединение можно шифровать. Например, при работе с сетевым концентратором (когда на каждой сетевой карте может быть виден весь Ethernet трафик) прочитать чужой IP-трафик весьма затруднительно.
CHAP (англ. Challenge Handshake Authentication Protocol) — широко распространённый алгоритм проверки подлинности, предусматривающий передачу не самого пароля пользователя, а косвенных сведений о нём. При использовании CHAP сервер удаленного доступа отправляет клиенту строку запроса. На основе этой строки и пароля пользователя клиент вычисляет хеш-код MD5 (Message Digest-5) и передает его серверу. Хеш-функция является алгоритмом одностороннего (необратимого) шифрования, поскольку значение хеш-функции для блока данных вычислить легко, а определить исходный блок по хеш-коду с математической точки зрения невозможно за приемлемое время. Сервер, которому доступен пароль пользователя, выполняет те же самые вычисления и сравнивает результат с хеш-кодом, полученным от клиента. В случае совпадения учётные данные клиента удалённого доступа считаются подлинными.
Microsoft Point-to-Point Encryption (MPPE) — протокол шифрования данных, используемый поверх соединений PPP. Использует алгоритм RSA RC4. MPPE поддерживает 40-, 56- и 128-битные ключи, которые меняются в течение сессии (частота смены ключей устанавливается в процессе хэндшейка соединения PPP, в принципе возможно генерировать по новому ключу на каждый пакет.
MPPE не сжимает данных, но часто используется совместно с Microsoft Point-to-Point Compression, предначначенном для этих целей.
MPPE поддерживается далеко не всеми бытовыми маршрутизаторами и, на текущий момент, является частым источником несовместимости оборудования при работе в российских локальных домовых сетях. |
|
| 27.9.2011, 0:59 |
|
|
|