Курс по сетевым технологиям
A A A

 

Возможные неисправности 

Рассмотрим вкратце основные причины неправильного функционирования NAT: 

  • Неправильно настроен список доступа
  • Не указаны команды ip nat inside/ip nat outside либо неверно настроены
  • Не указана команда overload при настройке PAT

 

 

Полезные команды 

Для поиска неисправностей полезно использовать следующие команды:

 

show ip nat translations - показывает все преобразованные адреса 

show ip nat statistics - показывает статистику преобразования адресов 

debug ip nat  - позволяет в режиме реального времени видеть преобразования адресов 

clear ip nat translations * - удаляет кэш-таблицу преобразованных адресов

clear ip nat statistics - удаляет статистику



Алгоритм поиска

С чего же следует начать поиск?

Рассмотрим на основе нескольких примеров.

 

Ситуация №1

Рассмотрим следующий рисунок сети:

Простая сеть с NAT

Пользователи жалуются, что доступ в интернет не работает либо нестабильный.

Начнем двигаться от простого к сложному: 

  1. Проверяем у всех ли это пользователей или только у некоторых
  2. Проверяем настройки Default gateway и DNS на всех компьютерах
  3. Убеждаемся , что шлюз по умолчанию доступен (с помощью Ping) с их компьютеров
  4. Если все настроено верно, то проверяем маршрутизацию на самом шлюзе
  5. Если маршрутизация работает, то проверяем настройки NAT

 

Предположим, что пункты с 1-го по 4-й включительно мы проверили. Проверим теперь преобразования и статистику командами show ip nat translations и show ip nat statistics. 

Так выглядит результат команды, когда преобразование прошло успешно:

Нормальное преобразование адресов

И этому свидетельствует статистика:

Статистика NAT при нормальной работе

Важно знать следующие счетчики: 

CEF Translated packets - количество переданных хостом пакетов + количество обратных пакетов-ответов, вернувшихся данному хосту.. В нашем случае с хоста PC_A мы отправили 5 ICMP эхо-запросов. Удаленный узел ответил 5-ю эхо-ответами. Получилось 5 + 5 = 10 пакетов.

 

Misses - если в NAT таблице отсутствует запись о преобразовании локального адреса для передачи пакета удаленному узлу, то создается новая запись в NAT таблице. Именно такая запись и отображается в выводе команды show ip nat translations.

Иными словами, сколько записей в таблице преобразований  NAT, столько и покажет счетчик Misses. В нашем  случае - 1.

 

Hits - количество совпадений в таблице преобразований NAT. Когда мы послали 5 эхо-запросов, то в таблице преобразований отсутствовала запись о преобразовании данного локального адреса для передачи удаленному узлу. Система создала эту запись и увеличила счетчик misses на единицу. После этого значение счетчика Hits начинает увеличиваться с каждым переданным и принятым пакетами.  При нормальной работе NAT значение счетчика Hits должно увеличиваться.

 

Почему переданных пакетов 10, а счетчик hits равен 9? 

Потому что для первого пакета не было никакой записи в таблице преобразований. Для всех остальных пакетов запись уже присутствовала в таблице.

 

misses - счетчик ошибок, то есть безуспешных попыток преобразовать адреса поступивших пакетов. При нормальной работе NAT должен равняться 0.

 

Теперь в интернет пытаются выйти 2 компьютера. Проверим преобразования:

Неудачное преобразование NAT

Как видно, таблица преобразований NAT не изменилась, то есть NAT успешно работает лишь для одного компьютера, второй - остался без интернета. Но мы все еще не знаем причину. Ищем дальше.

 

Проверяем статистику:

Статистика NAT при неудачном преобразовании

У нас изменились значения новых счетчиков:

CEF punted packets - увеличивается, когда IOS не может коммутировать пакеты в текущем режиме и передает данный процесс на более низкий уровень коммутации или уничтожает пакеты (Cisco Express Forwarding, CEF в данном курсе не рассматривался). В данном случае на вход маршрутизатора поступило 5 ICMP пакетов, которые IOS не смог обработать с помощью NAT.

 

misses - маршрутизатор уничтожил пакеты (5 эхо-запросов) и отправил соответствующее уведомление Destination Unreachable (5 эхо-ответов). И получилось всего 10 пакетов.

 

Но как такое произошло? Ведь в выводе статистики явно указано, что возможно преобразовать 2 адреса:

Статистика NAT

 

Все верно. Однако при более внимательном рассмотрении мы заметим, что маска равна 255.255.255.252. При такой маске можно иметь только 2 адреса, которые в данный момент и используются самим маршрутизатором и провайдером. Адрес 128.0.0.3 - широковещательный.  

Была допущена ошибка по невнимательности. Система не выдаст предупреждение, если в конфигурации NAT используются широковещательные адреса.

 

 

Ситуация №2

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

Проверим таблицу NAT:

Преобразования NAT для 2-х адресов

По крайней мере для двоих пользователей интернет работает.

 

Проверяем статистику:

Статистика NAT для 2-х адресов

И все становится понятным. Пространство адресов (пул) NAT использовано на все 100% и для остальных компьютеров просто не хватило адресов. 

Из этого следует, что администратор забыл указать команду overload при настройке NAT.  Это сразу видно в выводе статистики NAT:

Не указана команда overload

Отсутствие команды overload также видно и в самой конфигурации:

Конфигурация NAT без overload

 

 

Ситуация №3 

Вернемся снова к нашему рисунку, однако вместо серийного интерфейса воспользуемся Fast Ethernet интерфейсом:

Сеть с NAT


Администратор настроил NAT, однако ни у одного пользователя не работает интернет.

 

Команда show ip nat translation ничего не показывает.

Статистика показывает следующее:

Статистика NAT

На первый взгляд никакой полезной информации здесь нет. Возможно.

 

Запустим отладчик событий NAT, который в “прямом эфире” покажет преобразования адресов. Запускается командой debug ip natЧтобы увидеть преобразования адресов запустим Ping на локальном компьютере и посмотрим, что у нас происходит в маршрутизаторе. 

Но как назло отладчик молчит и не выдал ни одного сообщения. То есть маршрутизатор не знает, что ему делать с поступающими из локальной сети пакетами.

 

Проверим конфигурацию:

Конфигурация NAT

Если внимательно посмотреть на конфигурацию, то можно заметить, что просто перепутали команды ip nat inside, ip nat outside для LAN и WAN интерфейсов. 

Такую ошибку легко допустить, если одинаковый тип интерфейса (в нашем случае Fast Ethernet) используется для LAN и WAN.

Ситуации бывают разные и не всегда причиной неисправности является неправильная настройка NAT. Например, это могут быть неправильно настроенные списки доступа, маршрутизация и так далее.