Нашел отличный ответ на вопрос: “в чем разница команд ip nat inside и ip nat outside?”
Маршрутизатор делит всю сеть на две части: INSIDE и OUTSIDE.
Это разделение задаётся командами на интерфейсах маршрутизатора:
(config-if)#ip nat inside
(config-if)#ip nat outside
Адреса всех устройств в сети, подключённой к первому интерфейсу будут с точки зрения маршрутизатора INSIDE, ко второму – OUTSIDE.
INSIDE LOCAL – это реальный IP-адрес сетевого устройства в сети INSIDE.
OUTSIDE GLOBAL – это реальный IP-адрес сетевого усвтройства в сети OUTSIDE.
INSIDE GLOBAL – это своего рода псевдоним устройства INSIDE в сети OUTSIDE, под которым его знают устройства OUSIDE.
OUSIDE LOCAL – это псевдоним устройства OUTSIDE в сети INSIDE, под которым его знают устройства INSIDE.
О соответсвии псевдонима реальным IP-адресам знает только маршрутизатор.
Команда (config)#ip nat inside транслирует INSIDE LOCAL IP-адрес в INSIDE GLOBAL IP-адрес.
Команда (config)#ip nat outside транслирует OUTSIDE GLOBAL IP-адрес в OUTSIDE LOCAL IP-адерс.
Пример 1. (Подобное применение NAT самое распростарнённое)
INSIDE – локальная сеть с частными IP-адресами.
OUTSIDE – интернет
Нужно на границе сетей преобразовать частные IP-адерса локальной сети в адреса, используемые в интеренете.
В этом случае используется команда ip nat inside
Пример 2. Мы объединяем две локальные сети.
Первая – INSIDE c адресным пространством 192.168.1.0/24
Вторая – OUTSIDE с адресным пространством 172.16.0.0/16
Какой-нибудь сервер находиться во второй сети по адресу 172.16.0.10.
Но мы хотим, чтобы пользователи первой сети обращались к нему как к локальному ресурсу по адресу 192.168.1.10
На граничном маршрутизаторе используется команда ip nat outside [sourse static 172.16.0.10 192.168.1.10]
В данном случае 172.16.0.10 – OUTSIDE GLOBAL; 192.168.0.10 – OUSIDE LOCAL.
Подробнее о cisco ip nat можно почитать тут: http://habrahabr.ru/post/108931/