Комментарии 24
Мне понравилось высказывание одного из руководителей разработки этого самого IP:
I'm serious, the decision to put a 32-bit address space on there was the result of a year's battle among a bunch of engineers who couldn't make up their minds about 32, 128 or variable length. And after a year of fighting I said - I'm now at ARPA, I'm running the program, I'm paying for this stuff and using American tax dollars - and I wanted some progress because we didn't know if this is going to work. So I said - 32 bits, it is enough for an experiment, it is 4.3 billion terminations - even the defense department doesn't need 4.3 billion of anything and it couldn't afford to buy 4.3 billion edge devices to do a test anyway. So at the time I thought we were doing a experiment to prove the technology and that if it worked we'd have an opportunity to do a production version of it. Well - it just escaped! - it got out and people started to use it and then it became a commercial thing. So, this [IPv6] is the production attempt at making the network scalable. Only 30 years later.
Цитату приводят в таком виде в вики на английском на странице «IPv4 address exhaustion». Также есть ссылка на ролик на ютубе от 2008 года, откуда эту цитату и взяли.
Суть всего этого. IPv4 задумывался как протокол, который должен был работать в условиях «лаборатории». Даже размер адресного пространства выбрали исходя из того, что больше не понадобится, ибо никто, даже министерство обороны США в те года не могли себе позволить такое количество оконечных устройств, чтобы понадобилось больше адресов. А потом этот протокол просто утёк за пределы лаборатории и стал применяться для коммерческих целей. Естественно, спустя какое-то время столкнулись с ограничениями протокола. А если взглянуть на сам заголовок пакета IPv4, то можно увидеть кучу «лишних» полей, которые добавляли, чтобы проверить концепции, а не для реального использования. Как результат, в IPv6 всё лишнее выкинули и сделали реально удобный протокол.
Ну а NAT - это просто костыль, которые приходится применять в IPv4 хочешь ты того или нет. В IPv6 он тоже есть, но если твоя сеть грамотно спроектирована, то он не нужен.
Жду ваши комментарии!
При обращении в обычном режиме как только данные были получены от сервера соединения закрывается и не прошлушивает данные так как выставляет флаг закрытия соединения и по идее роутер тоже должен убить это соединение и сделать его не действительным а в Cisco есть история этих соединений и ели её не очистить то она будет очень длинная есть другая команда для просмотра только активных nat сессий
NAT-сессии в Cisco очищаются через заданное время, если они не активны, и это время можно настроить с помощью команды ip nat translation timeout, они не очищаются только тогда когда был сделан проброс портов. Активные сессии открывают порты, создавая временные "дыры" в сети. Эти порты могут оставаться уязвимыми, если соединение не завершено или не проброшено. Поэтому важно контролировать время жизни сессий и использовать дополнительные меры безопасности для защиты от возможных атак.
Подробнее про это в статье написано.
Нужно отличать поведение маршрутизатора и межсетевого экрана. Даже если оба Cisco, есть нюанс.
К примеру, маршрутизатор Cisco в режиме ZBPF отслеживает флаги.
сократить количество публичных IP-адресов
Хорошо бы добавить в текст главу определений. Что значит публичный IP?
Если очень просто, то откройте командную строку (cmd) и введите команду ipconfig. Там будет отображаться ваш приватный IP-адрес. Затем зайдите на сайт myip.com, чтобы увидеть свой публичный IP-адрес. Теперь проверьте ваш приватный IP на других устройствах — он будет из диапазона класса A (10.X.X.X), B (172.16-31.X.X) или C (192.168.X.X). Публичный IP-адрес будет совершенно другим. Таких публичных IP-адресов ограниченное количество, и для решения этой проблемы в локальных сетях используются приватные IP-адреса для всех устройств. Все эти устройства транслируются через один публичный IP-адрес, который предоставляет провайдер.
Есть ли аналог консольной утилиты NetCat (nc.exe), чтобы обмениваться текстами не только в пределах локальной сети, а вообще между любыми двумя компьютерами в мире?
Было бы интересно почитать про то какой путь проходит текст между отправкой и приемом в текстовом мессенджере типа TG. Пакеты каких протоколов участвуют во всем процессе.
на маршрутизаторе мы настраиваем дефолтный маршрут (обычно это маршрут с сетью 0.0.0.0/0)
Не "обычно", а ВСЕГДА. Маршрут в любую другую подсеть - это частный маршрут.
Эти частные адреса не маршрутизируются в интернет.
Ничто, никакой документ, не устанавливает такого запрета.
Более того, с формальной точки зрения Интернет - это всё, что за пределами твоей зоны ответственности. То есть маршрутизирующая сеть провайдера - это уже Интернет. А он имеет полное право маршрутизировать пакеты к богонам.
как видем если пингануть сервер с нашего компа, он не пинганется т.к частные адреса не маршрутизируются в интернете, поэтому нужно настроить NAT.
Но прежде чем настроим NAT, сделаем базовую статическую маршрутизацию на наших роутерах.
Совершенно безосновательное утверждение. Timeout может иметь миллион разных причин. Тем более что прям следующая фраза говорит, что маршрутизация не настроена. Чем не причина для непрохождения пинга?
Да, глагол "видеть" в русском языке - один из глаголов-исключений. Следует писать "видим", через И.
Основное различие между ними заключается в следующем:
Статический NAT: для каждого частного IP-адреса назначается один публичный IP-адрес. Это решение подходит для случаев, когда необходимо, чтобы конкретные внутренние устройства всегда использовали один и тот же публичный IP-адрес.
Динамический NAT: создается пул публичных IP-адресов, из которого выбирается адрес для трансляции частных IP. Это позволяет нескольким устройствам использовать один публичный IP-адрес, но с разными портами для разных соединений.
Плюс скриншоты с определениями Static, Dynamic и Port Address Translation (2 экземпляра) выше - всё это содержит, увы, некорректные определения. Подвела вас статья в википедии, из которой вы содрали все эти определения...
Когда происходит NAT-трансляция, на маршрутизаторе открывается "дыра" в сети, через которую злоумышленники могут попытаться получить доступ к внутренним ресурсам.
Да с какого перепугу-то?
Проброс портов
Нет такого ТЕХНИЧЕСКОГО термина, это слэнг для бесед вечерком на лавочке. Port Mapping - это "сопоставление портов".
Внимание! Если используется один публичный IP для всех устройств в локальной сети, это может привести к перегрузке трансляции и исчерпанию IP-адресов, особенно при высокой активности в сети. Нужно внимательно следить за состоянием пула IP-адресов.
Исчерпанию КАКИХ адресов? если публичный адрес ОДИН... Ну и пул с одним адресом - хотя ладно, для единообразия сойдёт.
----------------------------
PS. Не, так и не дочитал до конца - надоело. Кто вам всё это понарассказывал-то? Прям какая-то могучая смесь корректных фактов и совершенной ереси.
Давайте по порядку. Чем плох маршрут /0? Просто из возможных всегда выбирается самый узкий(меньшая маска).Хотите называть маршрут частным? Дело ваше, но тогда не приставание к тем, кто порт мапинг переводит иначе.
Исчерпание ресурсов - это когда заканчивается адресация в таблице нат или уже заняты все 64к динамических портов(на практике не встречал)
Про дыру: да формально можно прокинуть трафик в открытый сокет, но для этого и нат не нужен. Атака теоретически возможна только если митить трафик и подделывать заголовки на 3м уровне.
Давайте по порядку. Чем плох маршрут /0?
Давайте. Укажите точно, где сказано, что он плох.
Просто из возможных всегда выбирается самый узкий(меньшая маска).
Это верно. Хотя и неполно.
Хотите называть маршрут частным? Дело ваше, но тогда не приставание к тем, кто порт мапинг переводит иначе.
Что должна означать эта фраза? Не вижу в ней вообще никакого смысла.
Исчерпание ресурсов - это когда заканчивается адресация в таблице нат или уже заняты все 64к динамических портов(на практике не встречал)
Опять не понимаю, о чём речь. Я тему исчерпания ресурсов вообще не затрагивал.
Атака теоретически возможна только если митить трафик и подделывать заголовки на 3м уровне.
А можно то же, но нормальным техническим языком?
Да, если вы имеете в виду man-in-the-middle, то при его наличии атака УЖЕ состоялась, и состоялась успешно. Какой смысл обсуждать дальнейшие действия?
злой ты -)
Не "обычно", а ВСЕГДА.
Статья про Cisco. У Cisco кроме 0/0 может быть шлюз последней надежды. Формально это не маршрут - в RT не будет строчки с маршрутом, но будет определён IP-адрес, на который по дефолту будут отправляться все пакеты не для присоединенных подсетей.
Ничто, никакой документ, не устанавливает такого запрета.
Есть RFC 1918, определяющий приватные адресные блоки, и RIR нашего региона - RIPE - однозначно запрещает маршрутизацию этих блоков в Интернет: "
The IPv4 blocks
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
are reserved as private address space, specified in the RFC 1918. This means everybody can set up an internal network using addresses in these blocks, but packets originating from those addresses should never appear on the internet."
Формально это не маршрут - в RT не будет строчки с маршрутом, но будет определён IP-адрес, на который по дефолту будут отправляться все пакеты не для присоединенных подсетей.
То есть вы полностью подтверждаете, что формулировка автора некорректна. Спасибо.
и RIR нашего региона - RIPE - однозначно запрещает маршрутизацию этих блоков в Интернет
На уровне своих внутренних документов и договора с вами (на базе вышеупомянутых документов) они могут написать что угодно - но в рамках основополагающих документов. И персонально для вас это станет почти законом... но только для вас.
Кстати, они ТОЛЬКО ЭТИ блоки включили в запрет? а то ведь таких блоков куда как больше трёх...
Каких ещё внутренних документов и что значит персонально? :) RIPE - это ассоциация Интернет провайдеров европейской и ближневосточной части Земли. Никаких внутренних и персональных договоров не существует. Все операторы подписывают один и тот же набор публичных документов и регламентов, которые обязаны выполнять без оговорок и условий как члены ассоциации. Каждый оператор, выполняя пункт RIPE-826 пункт 2.0 подпункт 2, будет резать приватные сети на BGP-пирах, а на клиентских подключениях дропнет просто по uRPF.
А если оператор вдруг с этим не согласен, то не проблема: он выходит из ассоциации, выданные ему номера автономных систем и блоки публичных адресов в базе данных RIPE помечаются как unallocated и автоматически исчезают из global BGP таблицы маршрутизации, т.е. из Интернет.
Вопрос "только этих блоков" не корректен, так как IANA и пять региональных регистратур Интернет (RIR), одной из которых является RIPE NCC, как раз и определяют какие адреса в Интернет чем являются. Проще говоря, они не ЧИТАЮТ эти документы, они эти документы ПИШУТ.
1.Спасибо за комментарий! Однако, мы не всегда настраиваем дефолтный маршрут. В сложных сетях могут использоваться динамические протоколы маршрутизации, такие как BGP или OSPF, где маршрут по умолчанию генерируется автоматически. В некоторых сценариях дефолтный маршрут может отсутствовать, например, при строгом контроле трафика. Также добавлю, что есть такие понятия как default-gateway, gateway of last resort
Термин "частный маршрут" некорректен, так как "частный" относится к IP-адресам, а не маршрутам (согласно RFC 1918).
В нашей топологии, например, провайдер может назначить IP-адрес для интерфейса. Когда мы подключаемся к интернету, провайдер сообщает нам, какой IP-адрес повесить на интерфейс. Мы прописываем дефолтный маршрут (например, 0.0.0.0) до роутера провайдера. В случае использования Point-to-Point over Ethernet, IP-адрес на интерфейсе может быть назначен автоматически, либо он может быть получен через DHCP от роутера провайдера.
Существует несколько способов подключения к провайдеру через BGP с использованием дефолтного маршрута. Это может быть подключение одного роутера к двум разным провайдерам или подключение двух роутеров к двум различным провайдерам.
2. RFC 1918.
3. Какая еще причина может быть того, что не проходит пинг в рамках нашей лабораторной работы? Если маршрутизация правильно настроена
Да, в определении Динамического NAT есть неверность, обязательно исправлю, спасибо за замечание! Динамический NAT использует пул публичных IP-адресов, назначая их внутренним устройствам временно (например, при выходе в интернет). Каждому внутреннему устройству выделяется уникальный публичный IP из пула на время сессии.
5.Да, NAT-трансляция не создаёт автоматически "дыру" в сети. Риски возникают только при неправильной настройке маршрутизатора)
6. Да port forwarding – port mapping , но для меня главное, чтобы читатель понял, о чем идет речь, и мог применить эти знания на практике.
7. Про исчерпание ресурсов: может произойти перегрузка трансляции, если одновременно много устройств в локальной сети пытаются выйти в интернет, так как NAT использует порты для связи между внутренними и внешними адресами. В таких случаях важно следить за состоянием пула портов, чтобы избежать перегрузки. Хотя такие ситуации случаются редко, важно знать их — предупрежден, значит, вооружен.
Спасибо за коментарий!
Дефолтных маршрутов может быть ноль, один, более одного. В последнем случае формально - обязаны быть различные метрики, хотя ошибок в реализации экзотических состояний никто не отменял. Но дефолтный маршрут - это всегда маршрут в сеть 0.0.0.0/0. Маршрут с любой другой маской - не дефолтный, маршрут с маской /0 в любую другую сеть - ошибочный. Всё, варианты кончились. Определение - безальтернативно.
gateway of last resort, как правильно сказано одним товарищем выше - это вообще не маршрут.
RFC1918 говорит should not, и нигде не говорит must. То есть не приказывает, а рекомендует.
removed
Мне понравилось высказывание одного из руководителей разработки этого самого IP:
I'm serious, the decision to put a 32-bit address space on there was the result of a year's battle among a bunch of engineers who couldn't make up their minds about 32, 128 or variable length. And after a year of fighting I said - I'm now at ARPA, I'm running the program, I'm paying for this stuff and using American tax dollars - and I wanted some progress because we didn't know if this is going to work. So I said - 32 bits, it is enough for an experiment, it is 4.3 billion terminations - even the defense department doesn't need 4.3 billion of anything and it couldn't afford to buy 4.3 billion edge devices to do a test anyway. So at the time I thought we were doing a experiment to prove the technology and that if it worked we'd have an opportunity to do a production version of it. Well - it just escaped! - it got out and people started to use it and then it became a commercial thing. So, this [IPv6] is the production attempt at making the network scalable. Only 30 years later.
Цитату приводят в таком виде в вики на английском на странице «IPv4 address exhaustion». Также есть ссылка на ролик на ютубе от 2008 года, откуда эту цитату и взяли.
Суть всего этого. IPv4 задумывался как протокол, который должен был работать в условиях «лаборатории». Даже размер адресного пространства выбрали исходя из того, что больше не понадобится, ибо никто, даже министерство обороны США в те года не могли себе позволить такое количество оконечных устройств, чтобы понадобилось больше адресов. А потом этот протокол просто утёк за пределы лаборатории и стал применяться для коммерческих целей. Естественно, спустя какое-то время столкнулись с ограничениями протокола. А если взглянуть на сам заголовок пакета IPv4, то можно увидеть кучу «лишних» полей, которые добавляли, чтобы проверить концепции, а не для реального использования. Как результат, в IPv6 всё лишнее выкинули и сделали реально удобный протокол.
Ну а NAT - это просто костыль, которые приходится применять в IPv4 хочешь ты того или нет. В IPv6 он тоже есть, но если твоя сеть грамотно спроектирована, то он не нужен.
В начале статьи приведено описание, что есть каждый из видов NAT:
Динамический NAT - трансляция нескольких частных на несколько публичных IP-адресов.
Перегруженный NAT - трансляция нескольких частных IP на один публичный с использованием портов.
Но далее в статье Вы объясняете тонкости и отличия каждого из видов. И в одном из примеров видно, что один и тот же публичный IP-адрес ассоциирован с разными частными IP-адресами (за исключением портов, порты у каждого статического IP разные).
"Когда устройства из внутренней сети пытаются выйти в интернет, маршрутизатор с помощью динамического NAT переводит их локальные IP-адреса в этот публичный IP-адрес, используя различные порты для разных соединений. Таким образом, все устройства внутри локальной сети могут использовать один публичный IP-адрес для выхода в интернет, но их соединения будут иметь уникальные порты для отличия.
Динамический NAT позволяет множеству устройств внутри частной сети использовать один публичный IP-адрес для выхода в интернет. При этом для каждого соединения назначается уникальный порт. Например: ..... "
Я не совсем понимаю тогда в чем отличие PAT от динамического NAT, и описание в статье отличается от тех понятий, которые привиденты в самом начале для каждого вида NAT.
Динамический NAT: основная функция - сопоставление IP-адресов (из пула). Порты используются для различения соединений, но это не главная цель.
PAT: основная функция - использование портов для различения соединений, позволяя нескольким устройствам использовать один публичный IP-адрес.
Динамический NAT поддерживает преобразование адресов портов (PAT) и списки контроля доступа (ACL). PAT, также известный как перегрузка, является формой динамического NAT, которая сопоставляет несколько незарегистрированных IP-адресов с одним зарегистрированным IP-адрес с использованием разных портов.
Есть локальная сеть. В ней три PC: A B C. Они подключены к маршрутизатору Z.
Есть три сервера D E F.
Каждый PC из локальной сети обращается к одному из удалённых серверов.
Как маршрутизатор поймет куда отвечать в локальной сети, если белый IP у всех был один и тот же?
Как маршрутизатор поймет куда кому пересылать ответы сервера?
Маршрутизатор для каждого коннекта формирует сессию. В сессии содержится информация:
1) протокол
2) адрес, при наличии порт, узла источника
3) адрес, при наличии порт, узла назначения
4) использованный внешний адрес, при наличии порт
Соответственно пришедший в ответ пакет проверяется на соответствие по пунктам 1, 3 и 4, если соответствие найдено, выполняется преобразование и ретрансляция в соответствие с пунктом 2, иначе пакет уничтожается. Совокупность информации по пунктам 1+3+4 в подавляющем большинстве случаев уникальна, посему у роутера проблем с пониманием не возникает.
В тех весьма редких случаях, когда на узле назначения (сервере) соединение требует определённого порта не только на стороне сервера (а также в случаях, когда протокол не предусматривает наличия порта), но и на стороне клиента, два разных клиента локальной сети не смогут одновременно обратиться к серверу, для одновременной их работы потребуется наличие нескольких внешних адресов.
Network Address Translation (NAT) — CISCO (дырка в сети)