Это вводная статья из серии "Что нам стоит NAT построить", в которой я расскажу, как обеспечивать Интернетом домашнюю сеть в любых конфигурациях, а не только тех, которые предусмотрены Apple.
Давным давно, когда компьютеры были большими, считалось что 640Мб памяти должно хватить для всех задач, а диапазона адресов IPv4 - для всех желающих приобщиться к сети.
С той поры прошло не так уж и много времени, а эти предположения оказались не совсем верными. Количество желающих выросло настолько, что раздать всем по личному адресу стало невозможным. Кроме банальной нехватки адресов приходилось учитывать нюансы обеспечения безопасности и защиты от проникновения извне.
И выход был найден:
Из всего диапазона адресов было выделено три специальных, а именно
10.0.0.0 - 10.255.255.255
192.168.0.0 - 192.168.255.255
172.16.0.0 - 172.16.127.255
Эти диапазоны назвали частными. Они не могут получать траффик от узлов интернета, но зато каждый может их использовать в личных целях свободно, без регистраций, разрешений и согласований. Благодаря недоступности их извне можно не отвлекаться на дополнительные меры предосторожности.
Если нужно соединить частную сеть с Интернет обычно используют пограничные решения, мозготовитый маршрутеризатор, одной стороной смотрящий в частную сеть, другой - в публичный сегмент.

Если же нужно не просто соединить сети, но и обеспечить возможность выхода из внутрисети наружу, то простой маршрутеризации недостаточно. Одним из выходов является технология, называемая NAT (трансляция сетевых адресов).
Для примера рассмотрим ситуацию, в которой пользовательский компьютер с частным адресом 10.10.12.14 обращается к веб-серверу с адресом 194.44.163.133, посылая запрос на порт 80 сервера (http) со своего исходящего порта 20242

Проблема, собственно, заключается в том, что ответ от сервера никогда не найдет адресата, ибо частные адреса не маршрутеризируются, сервер не знает, в какой стороне света расположен адресат и как к нему добраться.
На помощь приходит NAT, этакий добрый дядя-доктор, который отлавливает пакеты из частной сети наружу и тщательно их препарирует острым скальпелем. Суть операции проста: он аккуратно вырезает адрес отправителя, складывает на полку и в образовавшуюся дырочку вшивает свой собственный наружный (легальный) адрес. После операции пациента отпускают на свободу в интернет и там он добирается до адресата-сервера.
Сервер обрабатывает запрос и посылает ответ адресату, адресатом после операции стал сам дядя-доктор. Пакет ответа приходит доктору, который его снова отлавливает и опять препарирует. Теперь суть операции обратна: по номеру своего порта найти в тазике ампутированный ранее адрес, свой из пакета вырезать и на место пришить старый из тазика.

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

3 коммент.:
640kb, а не мегабайт.
172.16.0.0-172.31.255.255
в обеих картинках справа пропущена цифра 1, тоесть 194.44.63.133 вместо 194.44.163.133,
Отправить комментарий