NAT (обзор и примеры)

Материал из wiki
Версия от 12:06, 7 ноября 2013; Moiseevvi (обсуждение | вклад) (Резервирование интернет-канала от двух провайдеров при помощи NAT, ip sla)
Перейти к: навигация, поиск

NAT != proxy

Это абсолютно разные технологии. Не путайте их.

Что такое NAT

зачем нужен NAT, как его используют

как устроен NAT

Порядок работы NAT

Порядок применения правил NAT различается у различных производителей и на различном оборудовании. Приведем порядок применения политик NAT для маршрутизаторов на cisco IOS:


Inside-to-Outside

If IPSec then check input access list
decryption - for CET (Cisco Encryption Technology) or IPSec
check input access list
check input rate limits
input accounting
redirect to web cache
policy routing
routing
NAT inside to outside (local to global translation)
crypto (check map and mark for encryption)
check output access list
inspect (Context-based Access Control (CBAC))
TCP intercept
encryption
Queueing

Outside-to-Inside

If IPSec then check input access list
decryption - for CET or IPSec
check input access list
check input rate limits
input accounting
redirect to web cache
NAT outside to inside (global to local translation)
policy routing
routing
crypto (check map and mark for encryption)
check output access list
inspect CBAC
TCP intercept
encryption
Queueing

Резервирование интернет-канала от двух провайдеров при помощи NAT, ip sla

Дано: мы получаем для нескольких компьютеров интернет от провайдера ISP1. Он выделили нам адрес 212.192.88.150. Выход в интернет организован с этого ip адреса через NAT.

Задача: подключить резервного провайдера - ISP2. Он выделит нам адрес 212.192.90.150. Организовать балансировку трафика: web-трафик пускать через ISP1, прочий трафик - через ISP2. В случае отказа одного из провайдеров - пускать весь трафик по живому каналу.


Схема

NAT_2isp.PNG

Конфиг

!
username ИМЯ password 0 ПАРОЛЬ
enable secret 0 ПАРОЛЬКОНФИГА
!
! контроль входа на маршрутизатор
line vty 0 4
 login local
!
! ДХЦП
ip dhcp pool LAN
   network ВнутрСеть Маска
   default-router Шлюз
   dns-server 10.10.10.10
! DNS - фиктивный придумали
!
!
! Монитор пинга на адрес шлюза провайдера-1
! Ждать ответа 50 мс
! Пинговать с частотой 1 секунда
ip sla monitor 1
 type echo protocol ipIcmpEcho ШлюзПров1
 timeout 50
 frequency 1
!
! Монитор пинга на провайдера-2
ip sla monitor 2
 type echo protocol ipIcmpEcho ШлюзПров2
 timeout 50
 frequency 1
!
! Запуск пинговалок 1 и 2, сейчас и навсегда
ip sla monitor schedule 1 life forever start-time now
ip sla monitor schedule 2 life forever start-time now
!
! Трэки 10 и 20 - отслеживание состояния пинговалок
! Реагирует на состояние Down или Up с задержкой 1 сек.
track 10 rtr 1 reachability
 delay down 1 up 1
!
track 20 rtr 2 reachability
 delay down 1 up 1
!
!
! Маршруты на все внешние сети на обоих провайдеров
! Маршруты привязаны к трэкам
! и будут активироваться только если трэк в состоянии Up
! т.е. если шлюз на соответствующего провайдера доступен
ip route 0.0.0.0 0.0.0.0 ШлюзПров1 track 10
ip route 0.0.0.0 0.0.0.0 ШлюзПров2 track 20
!
!
!
int fa 0/0
  no shut
!
! Саб-интерфейсы в сторону внешних провайдеров
! помечаются как outside для NAT
interface FastEthernet0/0.1
 description ISP1
 encapsulation dot1Q НомерВланПров1
 ip address ipНаПров1 Маска
 ip nat outside
!
interface FastEthernet0/0.2
 description ISP2
 encapsulation dot1Q НомерВланПров2
 ip address ipНаПров1 Маска
 ip nat outside
!
! Интерфейс на внутр сеть
! помечается как inside для NAT
! Привязывается политика маршрутизации PBR
interface FastEthernet0/1
 ip address ipНаВнутрСеть маска
 ip nat inside
 ip policy route-map PBR
 no shut
!
! Аксесс-листы из внутр сети наружу
! На веб-трафик и на все остальное
ip access-list extended LOCAL
 permit ip внутрСеть any
!
ip access-list extended WEB
 permit tcp внутрСеть any eq www
 permit tcp внутрСеть any eq 443
!
ip access-list extended ALL
 permit ip any any
!
!
! хитрый рут-мап PBR
! Если трафик из локалки на Веб
!    то назначить ему шлюзом первого провайдера
! Иначе, прочему трафику из локалки
!    назначить шлюзом второго провайдера.
! При назначении шлюза проверяются Трэки
route-map PBR permit 10
 match ip address WEB
 set ip next-hop verify-availability ШлюзПров1 1 track 10
!
route-map PBR permit 20
 match ip address ALL
 set ip next-hop verify-availability ШлюзПров2 1 track 20
!
!  
!  хитрый рут-мап ISP1
!  срабатывает если трафик из локалки
!  пытается выйти через интерфейс Fa0/0.1
route-map ISP1 permit 10
 match ip address LOCAL
 match interface FastEthernet0/0.1
!
!  хитрый рут-мап ISP2
!  срабатывает если трафик из локалки
!  пытается выйти через интерфейс Fa0/0.2
route-map ISP2 permit 10
 match ip address LOCAL
 match interface FastEthernet0/0.2
!
!
! Наконец, NAT ;-)
!
! Трафик из локалки в первого провайдера Натить через первый интерфейс
ip nat inside source route-map ISP1 interface FastEthernet0/0.1 overload
!
! Трафик из локалки во второго провайдера Натить через второй интерфейс
ip nat inside source route-map ISP2 interface FastEthernet0/0.2 overload
!
! Трафик на фиктивный ДНС переНатить на Гугл-ДНС
ip nat outside source static 8.8.8.8 1.1.1.1 no-alias
!
! проброс внутреннего порта 3389 на внешний порт 1111
ip nat inside source static tcp внутрХост 3389 внешip 1111 extendable
ip nat inside source static tcp внутрХост 3389 внешip 1111 extendable
!
!