Задача: Необходимо настроить транзит для 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):
- разрешим правилами firewall порт TCP 1723 в зону self;
- разрешим правилами firewall протокол gre в зону self.
На маршрутизаторе R2, с настройками SNAT, необходимо включить:
ip firewall sessions tracking pptp - функция отслеживания сессий уровня приложений;
nat alg gre - функцию трансляции IP-адресов в заголовках уровня приложений для gre;
nat alg pptp - функцию трансляции IP-адресов в заголовках уровня приложений для pptp.
Пример конфигурации маршрутизатора R1
Конфигурация PPTP клиента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
Конфигурация маршрутизатора с NAThostname 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
Конфигурация PPTP сервера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 object-group 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
Состояние туннеля на клиенте
Состояние подключенных клиентов на сервере
Следует также помнить про ограничения:
- При подключении к pptp серверу двух клиентов, находящихся за одним и тем же NAT и имеющих один и тот же "белый" IP адрес, подключится только один клиент. Который первым инициировал соединение.
- Количество одновременных сессий к pptp серверу будет ограничено на маршрутизаторе R2 размером expected - таблицы. Дочерние gre-сессии попадают не сразу в основную таблицу firewall, первоначально они размещаются в expected - таблице. В основную таблицу они перейдут когда начнется передача трафика в рамках сессии. По умолчанию размер expected - таблицы составляет 256 записей. Если ожидается транзит через R2 большого количества pptp - сессий, размер expected - таблицы необходимо будет увеличить.
R (config)# ip firewall sessions max-expect 512







Комментарии ()