PPP — пример настройки и описание
PPP (Point-to-Point-Protocol) – протокол второго уровня модели OSI, использующийся на WAN линках. PPP – открытый протокол, что позволяет его использовать при необходимости соединения устройств Cisco с устройствами других производителей (в отличие от HDLC, в отношении спецификации которого у циски своё мнение).
Сразу стоит сделать важное замечание: протокол PPP – многофункциональный и широко распространённый, в то же время, в рамках курса CCNA рассматривается только один способ его применения: подключение двух маршрутизаторов друг к другу через serial кабель. На самом деле, сфера применения протокола не ограничивается этими случаями. PPP может работать через нуль-модемный кабель, телефонную линию, в сотовой связи. Другие популярные способы использования протокола PPP – инкапсуляция его в другие протоколы второго уровня. Поясню: сам PPP находится на втором уровне модели OSI и обеспечивает прямое соединение между двумя устройствами, но если его инкапсулировать в другой протокол второго уровня – Ethernet (PPP over Ethernet – PPPoE), то ethernet будет заниматься доставкой фреймов с мак адреса отправителя на мак адрес получателя, после получатель будет декапсулировать из Ethernet-а PPP фрейм и дальше для завёрнутых в PPP протоколов (IPv4, IPX, …) будет создаваться полная «иллюзия» того, что соединение точка-точка. Сам же PPP в этом случае будет заниматься такими вещами как аутентификация и сжатие траффика. Существуют другие способы использования PPP, например PPP over ATM – PPPoA, Microsoft Windows использует для создания VPN протокол PPTP, который так же является надстройкой над PPP. Но это всё лирическое отступление, чтобы было понятно, зачем вообще изучать PPP. В курсе «CCNA Accessing the WAN» PPP – это протокол для соединения двух маршрутизаторов через serial кабель.
Что умеет PPP в сравнении с HDLC?
- Управление качеством линии (PPP отключает линк, если количество ошибок превысит заданное значение).
- Аутентификация с помощью PAP или CHAP.
- Multilink – технология напоминающая Etherchannel в Ethernet-е: несколько разных линков объединяются в один логический, со скоростью, равной сумме входящих в него линков.
- PPP Callback – технология, использующаяся для повышения безопасности: клиент устанавливает соединение с сервером, сервер разрывает соединение и устанавливает со своей стороны новое – к клиенту.
На самом деле, при передачи данных с маршрутизатора на маршрутизатор, PPP инкапсулируется в HDLC, который выполняет «транспортные» функции для PPP фреймов. Подробнее про HDLC можно почитать в статье «Протокол HDLC – пример настройки и описание». PPP – обладает уровневой структурой, когда фрейм PPP приходит из сети он поднимается по внутренним подуровням PPP снизу вверх:
- Первый подуровень HDLC – получает фрейм, проверяет адрес получателя, контрольную сумму и передаёт полезнуюинформацию дальше.
- Подуровень LCP (Link Control Protocol), как видно из названия, занимается управлением соединением, отправляет и получает разные служебные флаги, следит за состоянием соединения (подключено/выключено), следит за качеством линии, следит за согласованностью параметров конфигурации между точками.
- Подуровень NCP (Network Control Protocol) состоит из большого количества модулей, каждый из которых занимается связью с каким-то конкретным протоколом третьего уровня (IPv4, IPv6, IPX, AppleTalk, …). Благодаря этому, в рамках одного установленного PPP соединения с одним логином и паролем, можно передавать траффик разных протоколов сетевого уровня.
Установка связи между двумя маршрутизаторами по протоколу PPP происходит по уровням снизу вверх, разрыв связи – сверху вниз.
То есть устанавливается связь в таком порядке: LCP,NCP, полезные данные третьего уровня. А разрывается: конец передачи полезных данных, NCP, LCP. Как видно, HDLC не устанавливает и не разрывает соединения, так как в PPP используются HDLC фреймы без подтверждения доставки.
Структура PPP фрейма имеет следующий вид:
- FLAG – признак начала фрейма, специальная последовательность нулей и единиц («01111110»), которая говорит получателю, что далее будет следовать тело фрэйма.
- ADDRESS – адрес получателя, в протоколе PPP всегда используется широковещательный «11111111».
- CONTROL – поле содержит значение «00000011»
- PROTOCOL – поле, содержащее номер протокола третьего уровня, пакет которого «завёрнут» в данный фрейм.
- DATA – поле с полезными данными вышестоящих протоколов.
- FCS – контрольная сумма, которая считается при отправке фрейма и сравнивается с полученным пересчётом, который делается при получении фрейма. В результате, если суммы не совпадают, кадр считается «битым» и отбрасывается.
- FLAG – признак окончания фрейма, содержит то же значение что и признак начала фрейма.
Настройка PPP на оборудовании cisco, как уже было сказано, в курсе CCNA не сложная. Выполняется она на интерфесе:
- Выбираем алгоритм сжатия командой compress
- Устанавливаем качество линии, которое будет считаться приемлемым (при количестве ошибок, больше заданного связь будет разрываться). Для этого служит команда ppp quality.
- Выбираем способ аутентификации PAP или CHAP (подробнее об этом можно узнать из статьи «В чём разница между PAP и CHAP». Способ аутентификации задаётся командной ppp authentication.
- Необходимо настроить пользователя под которым наш маршрутизатор будет подключаться к другому. Здесь команды разнятся для CHAP и PAP. Сам пользователь добавляется командой username <имя> password <пароль>, причём делать это надо не на интерфейсе, а в режиме глобальной конфигурации, но в случае использования PAP, надо ещё использовать на интерфейсе команду ppp pap sent-username <имя> password <пароль>.
Использование PAP в реальных конфигурациях не желательно, поэтому мы ограничимся примером настройки CHAP. Итак, предположим, что топология следующая, необходимо настроить PPP с аутентификацией CHAP. Настройка на первом маршрутизаторе:
Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#hostname R1 R1(config)#username R2 password 123456789 R1(config)#interface serial 0/3/0 R1(config-if)#en R1(config-if)#encapsulation ppp R1(config-if)#ppp authentication chap R1(config-if)#ip address 192.168.0.1 255.255.255.0 R1(config-if)#no shutdown %LINK-5-CHANGED: Interface Serial0/3/0, changed state to down
Настройка на втором маршрутизаторе:
Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#hostname R2 R2(config)#username R1 password 123456789 R2(config)#interface serial0/3/0 R2(config-if)#encapsulation ppp R2(config-if)#ppp authentication chap R2(config-if)#ip address 192.168.0.2 255.255.255.0 R2(config-if)#no shutdown %LINK-5-CHANGED: Interface Serial0/3/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/3/0, changed state to up
Обратите внимание, что пользователь, которого мы заводим на маршрутизаторе R1 имеет имя R2, а на R2 – R1. Это необходимо, так как когда один роутер подключается к другому, он указывает своё имя, соответственно, другой должен знать это имя (видеть его в своём списке локальных пользователей). Ещё одна немаловажная деталь: пароли к пользователям R1 и R2 обязательно должны совпадать.
Для проверки можем выполнить команду:
R2#sh ip inter brief Interface IP-Address OK? Method Status Protocol … Serial0/3/0 192.168.0.2 YES manual up up …
Если status будет «up», а протокол – «down», то это, как правило означает, что какие-то проблемы с PPP – не та аутентификация, не совпали пароли, качество линии ниже того, что мы заказывали и т.п. В этом случае придётся проверять конфиги и запускать debug ppp, чего я не пожелаю и врагу.
Комментарии
Гость (не проверено)
вс, 10/20/2013 - 22:04
Постоянная ссылка (Permalink)
"Ethernet (PPP over Ethernet – PPPoE), то ethhernet будет"
то ethhernet..
hhhhhhh
bacek
чт, 10/24/2013 - 18:35
Постоянная ссылка (Permalink)
kasienov
вс, 08/06/2017 - 10:10
Постоянная ссылка (Permalink)
Спасибо большое за описание!
Добавить комментарий