Задача: Необходимо настроить транзит для PPTP-туннеля для маршрутизатора с SNAT.
Решение: PPTP (Point-to-Point Tunneling Protocol) -туннельный протокол позволяющий клиенту устанавливать защищенное соединение с сервером за счет создания туннеля в незащищенной сети. Для своей работы PPTP использует два соединения — одно для управления, другое для инкапсуляции данных. Первое работает с использованием TCP, в котором сервер слушает порт 1723. Второе работает с помощью протокола GRE, который является транспортным протоколом. Эта особенность мешает клиентам, находящимся за NAT, установить подключение с сервером, так как для них установление подключения точка-точка не представляется возможным по умолчанию. Однако, поскольку в протоколе GRE, что использует PPTP, есть заголовок Call ID, маршрутизатор, на котором настроен SNAT, может идентифицировать и сопоставить GRE трафик, идущий от клиента локальной сети к внешнему серверу и наоборот. Это дает возможность клиентам за NAT установить подключение point-to-point и пользоваться протоколом GRE. Учтем это при настройке маршрутизатора, будет необходимо включить дополнительные функции.
Ниже приложен дамп установления PPTP-соединения. Видно, что начинается оно с обращения клиента на порт сервера TCP 1723.
После аутентификации клиента и обмена необходимыми параметрами, дальнейший обмен клиент-сервер происходит с помощью gre-туннеля.
При конфигурировании PPTP-сервера (маршрутизатор R3):
На маршрутизаторе R2, с настройками SNAT, необходимо включить:
Пример конфигурации маршрутизатора R1
hostname R1 interface gigabitethernet 1/0/1 description "LAN" ip firewall disable ip address 198.51.100.1/24 exit tunnel pptp 1 ip firewall disable authentication method mschap-v2 description "worker" username ivan password ascii-text encrypted 8CB5107EA7005AFF remote address 203.0.113.2 enable exit ip route 203.0.113.2/32 198.51.100.2 |
Пример конфигурации маршрутизатора R2
hostname R2 interface gigabitethernet 1/0/3 ip firewall disable ip address 198.51.100.2/24 exit interface gigabitethernet 1/0/4 ip firewall disable ip address 203.0.113.1/24 exit ip firewall sessions tracking pptp nat source ruleset pptp to interface gigabitethernet 1/0/4 rule 10 action source-nat interface enable exit exit exit nat alg gre nat alg pptp |
Пример конфигурации маршрутизатора R3
hostname R3 ip firewall sessions counters object-group service PPTP port-range 1723 exit object-group network pptp_outside ip address-range 203.0.113.2 exit object-group network pptp_local ip address-range 10.0.0.1 exit object-group network pptp_remote ip address-range 10.0.0.10-10.0.0.20 exit object-group network pptp_dns ip address-range 8.8.8.8 exit security zone PPTP exit security zone trusted exit interface gigabitethernet 1/0/1 security-zone trusted ip address 203.0.113.2/24 exit security zone-pair PPTP self rule 10 action permit match protocol icmp enable exit exit security zone-pair trusted self rule 10 action permit match protocol tcp match destination-port PPTP enable exit rule 20 action permit match protocol gre enable exit exit remote-access pptp remote-workers authentication mode local authentication method mschap-v2 local-address object-group pptp_local remote-address object-group pptp_remote outside-address object-group pptp_outside dns-servers object-group pptp_dns security-zone PPTP username ivan password ascii-text encrypted 8CB5107EA7005AFF enable exit enable exit ip route 198.51.100.1/32 203.0.113.1 |
Диагностика - просмотр NAT-трансляций на маршрутизаторе R2
Состояние туннеля на клиенте
Состояние подключенных клиентов на сервере
Следует также помнить про ограничения: