Работа nat введение

Вид материалаДокументы

Содержание


Outside global address –
Overloading, или Port Address Translation (PAT)
Статическая конфигурация
Router(config)#interface FastEternet 0/1 Router(config-if)#ip nat inside
Router(config)#interface FastEternet 0/1 Router(config-if)#ip nat inside
Назначение PAT
Router(config)#interface FastEternet 0/1 Router(config-if)#ip nat inside
Router(config)#interface FastEternet 0/1 Router(config-if)#ip nat inside
Router(config)#clear ip nat translations
Router(config)#show ip nat statistics
Router(config)#debug ip nat
Подобный материал:
Работа NAT

  1. Введение



Предназначение

  • Необходимость выхода из частных сетей в Internet или другие открытые сети


Дефицит IP адресов привел к тому, что частные сети получили наборы IP адресов которые разрешалась использовать внутри закрытых сетей (сетей не имеющих доступа в WAN). Естественно в пределах частной сети набор IP адресов должен быть уникальный, но несколько частных сетей могли повторять наборы адресов. По умолчанию пакеты с этими IP адресами отбрасываются , и даже если частная сеть с частными адресами случайно получит доступ в Internet, конфликтов IP не будет. Но возникает необходимость при использовании частных IP адресов выходить в Internet. Для решения этой проблемы и используется NAT.

  • Решить некоторые вопросы безопасности


Дело в том, что при использовании NAT частная сеть из вне будет видна как один IP адрес или набор Разрешенных IP адресов. В этой случае определить структуру частной сети будет достаточно проблематично.

  1. Работа

NAT – программное обеспечение. Смысл работы заключается в том, что граничный  стоящий на выходе из частной сети принимает пакеты от рабочих станций и если эти пакеты адресованы во внешнюю сеть  подменят частный IP адрес отправителя пакета на разрешенный IP адрес находящийся в распоряжении NAT. При получении ответа происходит обратная процедура.





  1. Термены


Основные термины NAT
  1. Inside local address – Внутренний локальный адрес нашего узла (как правило частный адрес) который посылает пакет во внешнюю сеть.
  2. Inside global address – Внутренний глобальный адрес – разрешенный адрес из набора адресов NAT, который заменяет частный адрес при выходе пакета в открытую сеть.
  3. Outside local address – Удаленный (внешний) локальный адрес – открытый адрес интерфейса  конечной сети в которой находится получатель нашего пакета (адресуемый узел).
  4. Outside global address – Удаленный глобальный адрес – адрес конечного узла к которому мы хотим обратиться (как правило частный адрес), который буде получать наш пакет.






  1. Типы назначений адресов NAT



Статическое


При статическом назначении адресов идет назначение один к одному конкретного частного и конкретного открытого IP адреса. Как правило применяется для Серверов или других сетевых устройств или в целях скрытия структуры частной сети.

Динамическое


При динамическом назначении адресов идет назначение открытых адресов из определенного диапазона IP адресов количество открытых равно количеству частных.


Overloading, или Port Address Translation (PAT)

В этом случае как правило на все частные адреса назначается один открытый адрес (или один из нескольких открытых). Любому пакету который посылается из частной сети присваивается один и тот же открытый IP адрес и уникальный номер порта.


RFC 1918 - определил диапазоны частных IP адресов

10.0.0.0 -10.255.255.255 - одну сеть класса А

172.16.0.0 - 172.31.255.255 - 16 сетей класс В

192.168.0.0 - 192.168.255.255 - 256 сетей класс С






На адрес порта выделяется 16 бит что теоретически составляет 65536 – различных адресов портов. На практике используется около 4000. При назначении порта PAT пытается сохранить адрес порта первоисточника, если в данный момент этот исходный порт уже используется, назначает первый свободный порт из диапазона:

0 – 511

512 – 1023

1024 - 65535

Если все порты заняты, но есть еще один внешний (назначаемый) IP адрес, то будет присвоен этот IP и порт.


  1. Команды

Статическая конфигурация

  1. Установить соответствие локального внутреннего IP адреса и глобального внутреннего.


Router(config)#ip nat inside source static local-ip global-ip

  1. Назначение входящего и исходящего интерфейса  по отношению к NAT
Router(config)#interface FastEternet 0/1
Router(config-if)#ip nat inside
Router(config)#interface FastEternet 0/2
Router(config-if)#ip nat outside



Динамическая конфигурация




  1. Задать набор открытых IP адресов.

Начальный и конечный адрес диапазона разрешенных адресов и маску

Gateway(config)#ip nat pool public 199.99.9.40 199.99.9.62 netmask 255.255.255.224

Где public – имя пула (задается произвольное имя)

  1. Создать Access лист в котором указать кому (в данном случае всем из 10.10.10.0/24 сети) можно пользоваться услугами NAT (кого допустить в Интернет)

Gateway(config)#access-list 1 permit 10.10.10.0 0.0.0.255

Где 1 – имя Access листа

  1. Задать имя Access листа и имя пула IP адресов для службы NAT

Gateway(config)#ip nat inside source list 1 pool public

  1. Назначение входящего и исходящего интерфейса  по отношению к NAT
Router(config)#interface FastEternet 0/1
Router(config-if)#ip nat inside
Router(config)#interface FastEternet 0/2
Router(config-if)#ip nat outside

Насколько я понял адрес исходящего интерфейса, в данном случае FastEternet 0/2 должен быть из диапазона разрешенных адресов к примеру 199.99.9.40/27

Назначение PAT


Если есть один открытый адрес

  1. Создать Access лист, в котором указать кому (в данном случае всем из 10.10.10.0 сети) можно пользоваться услугами NAT (кого допустить в Интернет)

Gateway(config)#access-list 1 permit 10.10.10.0 0.0.0.255

  1. Установить лист доступа с именем «1» на интерфейс serial 0/0 и задать, что этот интерфейс будет транслировать адреса в режиме overload.

Router(config)#ip nat inside source list 1 interface serial 0/0 overload
  1. Назначение входящего интерфейса  по отношению к NAT
Router(config)#interface FastEternet 0/1
Router(config-if)#ip nat inside
Router(config)#interface Serial 0/0
Router(config-if)#ip nat outside


Если есть несколько открытых адресов (отличие от динамического задания только команда overload)

  1. Задать открытые IP адреса.

Начальный и конечный адрес диапазона и маску

Gateway(config)#ip nat pool public_2 199.99.9.40 199.99.9.62 netmask 255.255.255.224

  1. Создать Access лист в котором указать кому (в данном случае всем из 10.10.10.0/24 сети) можно пользоваться услугами NAT (кого допустить в Интернет)

Gateway(config)#access-list 1 permit 10.10.10.0 0.0.0.255

  1. Задать имя Access листа и имя пула IP адресов и объявить что идет назначение overload

Gateway(config)#ip nat inside source list 1 pool public_2 overload

  1. Назначение входящего и исходящего интерфейса  по отношению к NAT
Router(config)#interface FastEternet 0/1
Router(config-if)#ip nat inside
Router(config)#interface FastEternet 0/2
Router(config-if)#ip nat outside


Для стирания результатов в таблицы динамических адресов
Router(config)#clear ip nat translations *


Для просмотра результатов трансляции
Router(config)#show ip nat translations


Router(config)#show ip nat statistics




Показывает информацию о каждом пакете преобразованным NAT.

Показывает также ошибки, если такие возникают, неудачной замены одного IP на другой (global)
Router(config)#debug ip nat


  • Звездочка рядом с NAT показывает, что пакет с этим адресом уже есть в КЕШ памяти порта и произойдет быстрая коммутация (fast-switched path), в начале этих данных в КЕШ не было и происходила коммутация process-switched
  • s = a.b.c.d – адрес источника.
  • Адрес источника a.b.c.d транслируется в w.x.y.z.
  • d = e.f.g.h адрес получателя.
  • Значение в скобках – номер отождествляемый с IP пакетом – идентификатор порта.



  1. Проблемы и их решения


При возникновении проблем с NAT CISCO требует:

  1. Ясно представлять, что NAT пытается достичь;
  2. Проверить преобразования в адресной таблице;
  3. Использовать команду Show и Debug;
  4. Посмотреть, что случается с адресами пакета.


Недостатки NAT
  1. Потеря функциональности, т.к. некоторые приложения и протоколы записывают IP
  2. Увеличивает задержку, из за преобразования адресов, первый пакет будет process-switched остальные fast-switched если конечно КЕШ не отключен.
  3. Замедляет работу и увеличивает нагрузку на процессор особенно если происходят множественные преобразования.
  4. Некоторые приложения не могут функционировать из-за непрерывности адреса IP
  5. Приложения, которые используют физический адрес IP вместо Доменного имени могут не достигнуть получателя



Cisco IOS NAT поддерживает следующие типы:

ICMP

File Transfer Protocol (FTP), including PORT and PASV commands

NetBIOS over TCP/IP, datagram, name, and session services

RealNetworks' RealAudio

White Pines' CUSeeMe

Xing Technologies' StreamWorks

DNS "A" and "PTR" queries

H.323/Microsoft NetMeeting, IOS versions 12.0(1)/12.0(1)T and later

VDOnet's VDOLive, IOS versions 11.3(4)11.3(4)T and later

VXtreme's Web Theater, IOS versions 11.3(4)11.3(4)T and later

IP Multicast, IOS version 12.0(1)T with source address translation only


Cisco IOS NAT не поддерживает:

Routing table updates

DNS zone transfers

BOOTP

talk and ntalk protocols

Simple Network Management Protocol (SNMP)


  1. (DHCP)RFC-2131


Dynamic Host Configuration Protocol (DHCP) – работает в режиме клиент – сервер. Сервер DHCP раздает клиентам в сети IP адреса. Служба DHCP входит в самые современные ОС включая
  • Windows
  • Novell
  • Sun Solaris
  • Linux
  • OC Mac

Клиенты при работе в сетях с DHCP, при загрузки ОС делают Ш запрос и получают от Сервера DHCP IP адрес, на время установленное администратором. Если время аренды IP адреса истекает, то клиент должен освободить IP и запросить новый, как правило, ему будет назначен тот же IP адрес. Если в сети несколько серверов DHCP, то клиент получает IP от первого ответившего сервера.  CISCO имеют встроенную функцию DHCP сервера, и также позволяют раздавать IP адреса. По умолчанию на 24 часа. Это очень полезно в небольших офисах когда  можно использоваться и как сервер NAT и DHCP не прибегая к установке отдельных серверов.

DHCP сервер выполняет следующие функции:
  • Раздает IP адреса из заранее определенного диапазона;
  • Выдает клиенту адрес сервера DNS
  • Адрес сервера WINS
  • Имя домена
  • Определяет какие МАС адреса могут обслуживаться и выдавать им определенные IP адреса.

В качестве транспортного протокола DHCP использует UDP

Клиент отправляет запрос серверу на порт 67



Получает ответ от сервера на порт 68




Клиентами DHCP не должны быть:





Сервера


Сравнение DHCP и BOOTP – RFC 951

Протокол был BOOTP разработан для загрузки бездисковых машин.

Сходства:
  • Порт 67 – запрос на сервер
  • Порт 68 – ответ клиенту
  • Транспорт UDP
  • Передает адрес IP
  • Адрес Шлюза
  • Маску подсети
  • Адрес DNS

Отличия:
  • Не может динамически распределять адреса
  • Жестко закреплены конкретные IP за конкретными МАС адресами – это значит, что это соответствие уже должно быть сконфигурировано.
  • Не поддерживает WINS
  • Не поддерживает Доменные имена
  • Нельзя арендовать адреса на время.


Типы назначения IP адресов в DHCP
  • Автоматическое – Сервер DHCP назначает постоянный адрес клиенту
  • Ручное – клиенту назначается заранее сконфигурированный админом адрес, требуется обращение клиента
  • Динамическое распределение – назначаются IP адреса из списка на период времени.


Обмен сообщениями между Клиентом и Сервером DHCP





Вкратце работа выглядит так:
  1. Рабочая станция посылает Ш запрос на порт 67 всем сетевым устройствам с просьбой выдать IP адрес - DHCPDISCOVER.
  2. Если в сети несколько DHCP серверов, то первый, кто получит этот запрос отвечает, -проверяет по собственной базе IP адресов, может ли он обслужить этот запрос, если нет, то сервер пересылает этот запрос на другой DHCP сервер, если да (может), сервер отвечает на этот запрос своим предложением, посылая конфигурацию IP (адрес IP, адрес Шлюза, Маску подсети, адрес DNS, время аренды и т.д.) на конкретный адрес рабочей станции - DHCPOFFER.
  3. Если станция принимает это предложение она отвечает серверу о принятии предложенных параметров посылая Ш ответ об этом. Широковещание здесь сделано для того, что может сложиться ситуация, когда несколько DHCP серверов в сети и своим ответом произойдет оповещение всех серверов о том предложение какого именно сервера станция приняла - DHCPREQUEST.
  4. Сервер получив от станции согласие на использование параметров IP утверждает (закрепляет эти параметры за станцией) и посылает станции уведомление об этом acknowledgment – DHCPACK. Полученное уведомление от сервера позволяет рабочей станции начать немедленное использование IP адреса.
  5. Если клиент сам обнаруживает, что адрес - уже в использовании он пошлет сообщение DHCPDECLINE и процесс начинается снова. Если клиент больше не нужно IP адрес, клиент посылает сообщение DHCPRELEASE в сервер.

Иногда Админ может случайно назначить сетевому устройству статический IP адрес из динамической области DHCP сервера, если сервер выдаст на запрос клиента этот адрес, то возникнет конфликт адресов, что бы этого не произошло сервера DHCP CISCO всегда проверяют не происходит ли использование адреса, прежде чем предложить этот адрес клиенту (протокол ICMP произведет ping).
  1. Конфигурирование DHCP


Задать Имя пула из которого будут выдаваться IP адреса

campus(config)#ip dhcp pool campus


Задать диапазон IP адресов для выдачи – в качестве диапазона адресов в  задается целая сеть.

campus(dhcp-config)#network 172.16.12.0 255.255.255.0


Задать адреса исключения – которые не должны выдаваться из указанной ранее сети.

campus(config)#ip dhcp excluded-address 172.16.12.1 172.16.12.11


В данном примере из сети 172.16.12.0 255.255.255.0 не должны динамически выдаваться адреса с 172.16.12.1 по 172.16.12.11 как видно дальше, эти адреса зарезервированы за сетевыми устройствами и серверами и DHCP передаст эту информацию хостам следующими командами


Сообщит что шлюз по умолчанию 172.16.12.1

campus(dhcp-config)#default-router 172.16.12.1


Сообщит что DNS сервер имеет адрес 172.16.12.1

campus(dhcp-config)#dns-server 172.16.1.2


Сообщит что имя домена foo.com

campus(dhcp-config)#domain-name foo.com


Сообщит что адрес сервер NetBIOS 172.16.1.10

campus(dhcp-config)#netbios-name-server 172.16.1.10


Теперь если клиент на своей машине настроит в сетевом окружении получить параметры динамически, то все эти данные будут занесены к нему в сетевые настройки



Может возникнуть ситуация когда DHCP сервер находиться в другом широковещательном сегменте сети и чтобы получить свой IP адрес нужно послать запрос этому серверу, рабочая станция делает этот запрос широковещательно, но как известно  блокируют широковещание, что бы решить эту задачу используется команда ip helper-address

remote(config)#interface fastethernet 0

remote(config-if)#ip helper-address 192.168.2.254

Как видно, эта команда подается на интерфейсе и в ней указывается IP адрес DHCP сервера – то есть если запрос пришел на один интерфейс, что бы не пускать широковещание везде  пересылает этот Ш запрос только на определенный интерфейс да еще на определенный Адрес.



Такой услугой пользуются не только службы DHCP но и некоторые другие службы работающие по протоколу UDP

Time

TACACS

DNS

BOOTP/DHCP Server

BOOTP/DHCP Client

TFTP

NetBIOS Name Service

NetBIOS datagram Service


Для проверки работы DHCP и просмотра назначенных адресов ввести команду

campus# show ip dhcp binding




Для просмотра статистики посланных запросов и полученных IP адресов команда

campus# show ip dhcp server statistics


Для отладки (проверять истекло ли время аренды)

campus# debug ip dhcp server events