Мы должны начать с основ, поэтому давайте пересмотрим терминологию NAT. NAT переводит IP-адреса в IP-пакеты, верно? Что это обозначает? То, что это, в основном, создает миражи - да, оптические иллюзии, вы знаете. Например, в типичной конфигурации NAT, когда узлы локальной сети с частной адресацией получают доступ к Интернету с помощью общедоступного IP-адреса интерфейса внешнего маршрутизатора, эти узлы отображаются для интернет-серверов как имеющие этот общедоступный IP-адрес (или IP-адреса из пула общедоступных IP-адресов). Конечно, NAT не создает новых физических хостов - но создает новые виртуальные объекты - в этом примере хосты локальной сети видят себя, скажем, 192.168.1.x, но интернет-серверы видят их как 203.0.113.x - один набор физических хостов, но два набора IP-адресов. Два разных набора (логических) хостов. Оптическая иллюзия. И терминология такая:
- inside local - «реальные» IP-адреса внутренних хостов, назначенные их интерфейсам и видимые друг другом
- inside global - «миражные» IP-адреса, видимые внешним миром
- outside global - «реальные» IP-адреса внешних хостов, которые они видят сами по себе и (почти) во всем Интернете
- outside local - IP-адреса "mirage", поскольку мы видим внешние хосты (если мы попросили NAT перевести соответственно)
И, как вы видите, мы обязаны проводить различие между нашей сетью и Интернетом или другой внешней сетью. Мы делаем это, помечая IP-интерфейсы нашего маршрутизатора как ip nat inside или ip nat outside , согласны?
Теперь давайте вспомним, как обычно реализуется NAT: он поддерживает специальные таблицы, содержащие записи о переводах. И важным моментом является то, что эти записи могут быть созданы статически или динамически . Для динамически создаваемых записей важно направление трафика - инициируется ли трафик изнутри наружу или наоборот? Для статических записей это не так - они симметричны . Операторы конфигурации NAT, содержащие ключевое слово static, создают статические записи сразу после помещения их в работающую конфигурацию; Те, у кого динамическое ключевое слово, следят за интересным трафиком и динамически создают записи перевода, которые затем со временем заканчиваются.
Мы уже можем порассуждать о вашем последнем вопросе: почему не существует варианта внешнего назначения ? ip nat inside source static создает статическую запись NAT, которая преобразуется точно так, как вы описали, но это включает не только трафик, инициируемый с одной конкретной стороны - статические записи NAT симметричны. Итак, ip nat outside target static создаст статическую запись для трансляции IP-адресов назначения трафика, поступающего в вашу сеть извне И IP-адресов источника для трафика, идущего изнутри - но это именно то, что ip nat inside source staticкоманда делает! Так что иметь эту команду просто избыточно. Единственное отличие состоит в том, что вы будете обмениваться источником с целевым ip при использовании той или иной формы в основном одной и той же команды.
Что касается вашего первого утверждения, «есть три возможные комбинации внутри / снаружи / источника / назначения, которые можно настроить» - это не совсем так. Дело в том, что, вообще говоря, операторы конфигурации NAT не являются «математическими формулами» и должны рассматриваться полностью, а не логически построенными из независимых ключевых слов. Таким образом, каждая «комбинация» представляет решение для конкретной задачи, например, ip nat внутри списка назначения используется для настройки балансировки нагрузки TCP сервера, которая использует определенный алгоритм и не работает с UDP. Кроме того, (в современных IOS-системах) внутри статической команды назначения нет ip nat - вы пробовали ее с помощью опции static ?
Вы можете увидеть некоторые конкретные сценарии использования NAT, включая примеры конфигурации, в этом документе Cisco: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/12-2sx /nat-12-2sx-book/iadnat-addr-consv.html
Наконец, я хотел бы отметить, что иногда NAT - это не то, что вам нужно, например, посмотрите на мой ответ на этот «канонический вопрос»: /server/55611/loopback-to-forwarded-public- IP-адреса из-локальной-сети-шпильке-физ / 733532 # 733532
PS Стоит ли мне вдаваться в подробности?