пересылая IP пакет, содержащий запрос клиента, во внешнюю сеть, заменяет адрес отправителя своим. Когда маршрутизатор получает ответ от сервера, он по таблице открытых соединений, содержащей адреса клиента и сервера, восстанавливает адресата и ретранслирует ему ответ. Помимо замены адресов могут также анализироваться и заменяться номера портов TCP и UDP.
Технология NAT, обеспечивая экономию публичных IP адресов (целая сеть может использовать для доступа к Интернет один публичный адрес), имеет ряд ограничений. Так, без специальных настроек маршрутизаторов невозможно из внешней сети установить соединение с узлом (сервером), находящимся за NAT. Также внешние серверы не могут идентифицировать клиентов по IP адресам, т.к. к ним приходят запросы, в которых адресом отправителя является адрес NAT маршрутизатора, результат – ограничение доступа к услугам на сервере по IP адресу коснется всех клиентов, подключенных через этот маршрутизатор. Решением проблем, связанных с исчерпанием адресного пространства IPv4, станет переход на IPv6.
16
4 Рекомендации по выполнению практических заданий
4.1 Характеристика задач
При эксплуатации оборудования, имеющего IP интерфейсы, приходится решать ряд задач, связанных с IP адресацией:
выяснение принадлежности адреса к заданному блоку адресов (к сети);
определение блока адресов, принадлежащего сети узла;
определение специальных адресов;
оценка возможности и объединение блоков адресов (агрегация маршрутов);
деление блоков адресов на более мелкие блоки и т.д.
Задания на выполнение подобных задач представлены в разделе 5. Решение таких задач заключается в выполнении последовательности типовых действий. Рассмотрим их подробно с примерами, затем дадим общие указания по решению более сложных задач.
4.2 Методические указания по решению задач
4.2.1 Преобразование IP адреса из десятичного вида в двоичный
Вдесятичной форме записи IP адрес представляет собой десятичные коды октетов, разделенные точками. Перевод адреса в двоичную форму осуществляется в пределах каждого октета (методика перевода целых чисел представлена в приложении 1).
Например, дан IP адрес 172.27.133.20.
Вдвоичном виде октеты будут выглядеть следующим образом:
17210=128+32+8+4=101011002;
2710=16+8+2+1=000110112;
13310=128+4+1=100001012;
2010=16+4=000101002.
Таким образом, двоичная запись данного адреса:
10101100.00011011.100000101.00010100
Заметим, что в каждом октете должны быть записаны все 8 разрядов, включая незначащие нули.
17
4.2.2 Преобразование маски подсети из десятичного вида в двоичный
Дана маска подсети: 255.255.255.240. Аналогично переводу IP адреса можно представить в двоичном виде октеты маски:
25510=111111112;
24010=111100002.
Таким образом, двоичная запись маски:
11111111.11111111.11111111.11110000
Следует отметить, что поскольку понятие маски подсети предполагает, что в ней не может двоичная «1» стоять правее «0», октеты маски не могут иметь произвольные значения, а принимают только следующие:
000000002=010;
100000002=12810;
110000002=19210;
111000002=22410;
111100002=24010;
111110002=24810;
111111002=25210;
111111102=25410;
111111112=25510.
Оперируя этими значениями, при формировании маски подсети можно не прибегать к переводу между системами счисления.
4.2.3 Преобразование длины префикса в маску подсети
Так как битовые единицы в маске неразрывны, удобнее записывать маску числом единиц в ней – префиксом. Длина префикса n бит означает, что соответствующая ему маска подсети содержит данное количество единиц и 32-n= нулей.
Например, дан префикс /26.
Для заданного значения префикса количество единиц в маске равно 26. Следовательно, в первых трех байтах маски все биты равны «1» (значение
111111112=25510), а в четвертом 26-8*3=2 единицы и 6 нулей; 110000002=19210.
Таким образом, маска подсети: 255.255.255.192.
18
4.2.4 Преобразование маски подсети в длину префикса
Длина префикса равна количеству двоичных «1» в маске подсети. Поэтому для получения длины префикса необходимо преобразовать десятичную запись октетов маски в двоичный вид и записать после символа «/» количество единиц. Например, маске подсети 255.255.252.0 соответствует префикс /22.
4.2.5Применение маски подсети для вычисления адреса сети (начального адреса блока)
Адрес сети содержит все нули в поле «Номер узла». Для обнуления номера узла при сохранении номера сети необходимо применить операцию побитового «И» (часто обозначается символом «&») данного IP адреса и маски подсети.
Табл. 1. Таблица истинности операции «И»
x |
y |
x&y |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Например, задан IP адрес 192.168.18.141 и маска подсети 255.255.255.192.
Найти адрес сети.
Для выполнения данной задачи необходимо исходный адрес и маску подсети перевести в двоичный вид. Затем для каждого бита следует выполнить операцию «И» (рис. 11).
И
Рис. 11. Вычисление адреса сети по заданному IP адресу и маске
Полученный в результате логической операции «И» адрес сети
11000000.10101000.00010010.10000000 в десятичном виде будет иметь следующее значение192.168.18.128.
19
4.2.6Применение маски подсети для вычисления широковещательного адреса (конечного адреса блока)
Направленный широковещательный (broadcast) адрес (см. п. 3.2) содержит все биты «1» в поле «Номер узла». Установить все биты этого поля в «1» можно, выполнив побитовое «ИЛИ» (часто обозначается знаком «+») IP адреса с инвертированной маской подсети, содержащей в разрядах номера сети нули, а в разрядах номера узла единицы.
Табл. 2. Таблица истинности операции «ИЛИ»
x |
y |
x+y |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Например, задан IP адрес 192.168.18.141 и маска подсети 255.255.255.192.
Найти направленный широковещательный адрес для данной сети.
Переведем исходный адрес и маску подсети в двоичный вид, затем выполним операцию побитового «И» (рис.12).
ИЛИ
Рис. 12. Вычисление широковещательного адреса
В десятичной форме записи направленный broadcast адрес для данной сети
192.168.18.191.
4.2.7Вычисление размера блока адресов (количества адресов, принадлежащих блоку)
Блок IP адресов (см. п. 2.3) начинается с адреса, в котором все биты, которые не входят в префикс блока, равны «0», и заканчивается адресом, в котором все эти биты содержат «1». Если блок адресов имеет отношение к некоторой сети, эти адреса являются соответственно адресом сети (см. п. 3.1) и широковещательным адресом (см. п. 3.2).
20