SmartEdge NAT vs. PPTP/GRE
Ericsson SmartEdge 600 как и другие аппаратные BRAS, всецело и полностью поддерживает стандартизованные протоколы и не очень дружит с вендор-специфичными. Например PPTP, тунельный протокол работающий поверх GRE, придуман был компанией CISCO и «перелицензирован» Microsoft в далекие времена, для удаленного подключения. Последняя в свою очередь добавила свои патентованные «плюшки». На замену был создан стандартизованный протокол L2TP, как более универсальный, который позволял использовать туннели поверх UDP.
Кое-где до сих пор применяется PPTP для удаленного доступа к защищенным узлам или сетям. Абоненты с «серыми» адресами находящиеся за SmartEdge будут испытывать трудности с подключением, протокол GRE «не сможет пройти» через NАТ. Ситуацию можно решить следующим путем, возьмем софтроутер и завернем на него данный тип трафика (инициация — tcp port 1723 и протокол GRE), в обход центрального NAT. В силу мизерных объемов трафика это может быть малопроизводительный софтроутер, например Juniper SRX100 или даже обычная Unix машина
Для начала исключим pptp тунели из NAT:
policy access-list nat-acl
seq 10 permit tcp 10.1.0.0 0.0.255.255 any eq 1723 class DO-NOT-NAT
seq 20 permit gre 10.1.0.0 0.0.255.255 any class DO-NOT-NAT
seq 30 permit ip 10.1.0.0 0.0.255.255 any class NAT-CLASS
Вариант 1:
nat policy NAT-1
connections tcp maximum 2000 ## важно задать, иначе не работает admission-control
connections udp maximum 2000
connections icmp maximum 20
! Default class
ignore
! Named classes
access-group nat-acl
class NAT-CLASS
pool NAT-POOL local
timeout tcp 18000
timeout udp 60
timeout fin-reset 60
timeout icmp 30
timeout syn 60
admission-control tcp
admission-control udp
admission-control icmp
endpoint-independent filtering udp
В данном варианте, трафик подпадающий под класс — NAT-CLASS поступает на NAT, с остальным по действию в дефолт классе не совершаются никакие действия, пропускается дальше.
Вариант2:
nat policy NAT-1
connections tcp maximum 2000 ## важно задать, иначе не работает admission-control
connections udp maximum 2000
connections icmp maximum 20
! Default class
drop
! Named classes
access-group nat-acl
class NAT-CLASS
pool NAT-POOL local
timeout tcp 18000
timeout udp 60
timeout fin-reset 60
timeout icmp 30
timeout syn 60
admission-control tcp
admission-control udp
admission-control icmp
endpoint-independent filtering udp
class DO-NOT-NAT
ignore
В данном варианте, трафик класса NAT-CLASS поступает в NAT, трафик класса DO-NOT-NAT пропускается, весь остальной трафик отбрасывается.
Далее завернем этот тип трафика на Juniper SRX100.
policy access-list FWD-GRE
seq 10 permit gre 10.1.0.0 0.0.255.255 any class CLS-GRE
seq 20 permit tcp 10.1.0.0 0.0.255.255 any eq 1723 class CLS-1723
seq 30 permit ip any any class CLS-IP
!
! ** End Context **
!
forward policy GRE-PBR
ip access-group FWD-GRE local
class CLS-GRE
redirect destination next-hop 192.168.0.34
class CLS-1723
redirect destination next-hop 192.168.0.34
class CLS-IP
Привяжем политики форварда и НАТ на абонента.
subscriber default
ip source-validation ## обязательно включить sav
nat policy-name NAT-1
forward policy GRE-PBR in
Данная схема может использоваться и на Ericsson SmartEdge 100, софтроутер может быть любой, как SRX100 так и PC с FreeBSD.