Представив IP-адрес в двоичном виде и побитно умножив его на маску сети, мы получим номер сети (все нули в хостовой части). Номер хоста в этой сети мы можем получить, побитно умножив IP-адрес на инвертированную маску сети.
Пример: IP = 205.37.193.134/26 или, что то же,
IP = 205.37.193.134 netmask = 255.255.255.192.
Распишем в двоичном виде:
IP = 11001101 00100101 11000111 10000110
маска = 11111111 11111111 11111111 11000000
Умножив побитно, получаем номер сети (в хостовой части - нули):
network = 11001101 00100101 11000111 10000000
или, в октетном представлении, 205.37.193.128/26, или, что то же, 205.37.193.128 netmask 255.255.255.192.
Хостовая часть рассматриваемого IP адреса равна 000110, или 6. Таким образом, 205.37.193.134/26 адресует хост номер 6 в сети 205.37.193.128/26. В классовой модели адрес 205.37.193.134 определял бы хост 134 в сети класса С 205.37.193.0, однако указание маски сети (или количества бит в сетевой части) однозначно определяет принадлежность адреса к бесклассовой модели.
Упражнение. Покажите, что адрес 132.90.132.5 netmask 255.255.240.0 определяет хост 4.5 в сети 132.90.128.0/20 (в классовой модели это был бы хост 132.5 в сети класса В 132.90.0.0). Найдите адрес broadcast для этой сети.
Очевидно, что сети классов А, В, С в бесклассовой модели представляются при помощи масок, соответственно, 255.0.0.0 (или /8), 255.255.0.0 (или /16) и 255.255.255.0 (или /24).
18.3.2. Технология NAT.
Две ключевые проблемы встают перед Интернетом - это нехватка адресного пространства и эффективность маршрутизации. Трансляция сетевых адресов позволяет IP-сетям организаций выглядеть снаружи так, будто они используют адресное пространство, отличное от того, которое они на самом деле используют. Таким образом, NAT дает возможность организациям с адресами, глобально недействительными, подключаться к Интернету путем трансляции своих адресов в глобальные. Также NAT предоставляет более гибкую стратегию для тех организаций, которые часто меняют поставщиков сетевого сервиса. Стандарт NAT описан в RFC 1631.
Трансляция сетевых адресов имеет несколько приложений. Целесообразно применять ее в следующих целях:
· Вы хотите подключиться к Интернету, но не все ваши станции имеют глобально уникальные IP-адреса. NAT позволяет частным сетям, использующим незарегистрированные адреса, решить эту проблему. Трансляция конфигурируется на маршрутизаторе, стоящем на границе между локальной областью, называемой внутренней сетью, и публичной сетью (такой как Интернет), называемой внешней сетью. Перед тем, как посылать пакеты во внешнюю сеть, NAT переводит внутренние локальные адреса в глобально уникальные IP-адреса.
· Вы должны изменять свои внутренние адреса. Вместо этого вы можете транслировать их с помощью NAT, что сэкономит вам значительное количество времени и усилий.
· Вы хотите осуществлять распределение TCP-трафика между своими сетевыми узлами. Вы можете поставить в соответствие нескольким локальным IP-адресам один глобальный адрес, используя механизм распределения TCP-загрузки.
В качестве решения проблемы связуемости NAT имеет практическую пользу только тогда, когда сравнительно немного станций из локальной сети открывают связь с внешним миром одновременно. В этом случае лишь малое подмножество IP-адресов в локальной сети должно транслироваться в глобальные адреса. После того, как станция перестает "занимать" глобальный адрес, он может быть использован вновь.
Значительное преимущество технологии адресной трансляции заключается в том, что она может конфигурироваться, не требуя вносить изменения в настройки станций и маршрутизаторов, кроме тех граничных маршрутизаторов, на которых будет включен механизм NAT. Как обсуждалось ранее, применение NAT может быть не очень практичным при большом количестве станций. Более того, некоторые приложения используют встроенные IP-адреса, что делает трасляцию неуместной. Проходя через NAT-устройство, эти приложения могут работать непрозрачно либо вообще не работать. NAT также прячет идентичность станций, что может иметь свои преимущества и недостатки одновременно.
Маршрутизатор, осуществляющий адресную трасляцию, должен иметь, по крайней мере, один внутренний и один внешний интерфейс. В обычных условиях NAT конфигурируется на граничном маршрутизаторе, являющимся для данной локальной сети выходом в глобальную, точкой подключения к сетевой магистрали. Когда пакет покидает внутреннюю область, NAT транслирует локальный адрес источника в глобально уникальный адрес. Когда пакет входит в локальную сеть извне, NAT транслирует глобальный адрес назначения в локальный. Если существует более одной выходной точки в глобальную сеть, все устройства, работающие с NAT, должны иметь идентичные таблицы трансляции. Если программное обеспечение не может транслировать адрес, вследствие того, что имеющееся глобальное адресное пространство полностью занято, оно уничтожает пакет и посылает сообщение ICMP Host Unreachable.
Маршрутизатор, на котором сконфигурирована трансляция, не должен передавать информацию о внутренней сети наружу. Тем не менее, данные о маршрутизации, получаемые извне, могут передаваться в локальную сеть, как обычно.
Как было упомянуто ранее, термин внутренний относится к сетям, которыми владеет данная организация и к которым должна применяться адресная трансляция. Внутри этой области станции будут иметь адреса из одного адресного пространства, в то время, с точки зрения внешнего мира, они будут иметь адреса из другого пространства, если трансляция сконфигурирована. Первое адресное пространство называется локальным, а второе - глобальным.
Подобным образом, термин внешний относится к тем сетям, к которым локальная сеть подключается и которые, вообще говоря, не находятся под контролем данной организации. Станции во внешних сетях также могут быть предметом адресной трансляции и, следовательно, могут иметь локальные и глобальные адреса.
Обобщая, перечислим понятия, используемые при механизме NAT:
· Внутренний локальный адрес - IP-адрес, приписанный станции во внутренней сети. Этот адрес может быть не зарегистрирован, не будучи выданным поставщиком сетевого сервиса.
· Внутренний глобальный адрес - зарегистрированный IP-адрес, который представляет один или более локальных IP-адресов для внешнего мира.
· Внешний локальный адрес - IP-адрес внешней станции в таком виде, как он видится для внутренней сети. Не будучи обязательно легальным адресом, он берется из адресного пространства, маршрутизируемого внутри.
Внешний глобальный адрес -- IP-адрес, приписанный станции во внешней сети ее владельцем.