NAT (обзор и примеры)
Версия от 12:08, 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. В случае отказа одного из провайдеров - пускать весь трафик по живому каналу.
В чем сложность задачи?
clear ip nat translations?
Схема
Конфиг
!
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
!
!