Как адресуются пакеты адресату с серым ip?

Допустим, надо отправить пакет адресату с серым ip на определенный порт. Как роутеры провайдера узнают, на какой именно локальный серый ip отправлять пакет? Правильно понимаю, что по своей инициативе отправить пакет нелья. Можно только в ответ на запрос и в этом запросе есть информация, скорее всего фиктивный порт (проброс портов), позволяющая узнать, на какой именно серый ip переслать пакет?
  • Вопрос задан
  • 575 просмотров
Пригласить эксперта
Ответы на вопрос 6
paran0id
@paran0id
Умный, но ленивый
Технология называется NAT.
Ответ написан
Комментировать
@rPman
Да что же за отвечающие такие, все кто говорит никак - не правы, может хоть немного думать будете прежде чем в заблуждение народ вводить.

Серый ip, это значит машина выделенный ip адрес в сети Интернет не имеет, а для выхода в интернет использует одну из доступных технологий, обычно либо NAT либо proxy (http/socks/web)

При использовании прокси вариантов тупо нет, но вот при использовании NAT, если на роутере, его предоставляющем включена нужная технология либо настроено вручную перенаправление, можно! Называется эта технология UPnP.

Выглядит это так - сервер, запущенный в локальной сети, отсылает запрос (готовых библиотек полно) роутеру на открытие порта, роутер автоматически настраивает перенаправление, поддерживаются tcp/udp протоколы.

При правильной настройке роутера, нормальная работа сервисов внутри локальной сети с доступом из Интернета, возможна, даже если ip адрес в догонку к проблеме nat, еще и динамический (технология называется dyndns)

p.s. есть еще ipv6 (в частности 6to4), в отличии от nat или прокси (или vpn, которая превращает ситуацию в ту же локальную сеть), при наличии поддержки провайдером (точнее не блокировании этой технологии) и роутера, позволяет выделить машинам внутри локальной сети прямые ipv6 адреса, доступные из сети Интернет, но только по этому протоколу.
Ответ написан
martin74ua
@martin74ua Куратор тега Компьютерные сети
Linux administrator
Никак.
Пакеты маршрутизируются согласно правил в таблице маршрутизации. У вас скорее всего таблица простая - дефолт на шлюз провайдера. У провайдера таблица уже посложнее и побольше, full bgp view на сегодня - около миллиона маршрутов. У уважающего себя провайдера все серые сети будут отмаршрутизированы в /dev/null.
Поэтому если вы отправляете пакет на адрес 192.168.54.12 - то скорее всего этот пакет умрет где то на роутерах вашего провайдера. Если же нет - то на ближайшем магистрале.
Рекомендую почитать начальные уроки по сетям, там обычно в картинках нарисовано, что есть в пакете, какие данные и как меняются.
Ответ написан
Комментировать
Griboks
@Griboks
Никак. Это невозможно. Пакеты отправляются на белые адреса операторов, который их пересобирают по своей внутренней базе данных для конечных пользователей.
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
Как роутеры провайдера узнают, на какой именно локальный серый ip отправлять пакет?

Нет такого термина как "серый", это неопределённый до конца слэнг.

Впрочем, неважно. Этот термин является подмножеством термина "немаршрутизируемые адреса". Т.е. адреса, маршрутизация которых запрещена. А потому любой маршрутизатор, получив для передачи пакет с немаршрутизируемым (в т.ч. и с "серым") адресом назначения, просто выбросит его. И даже не озаботится отсылкой уведомления о том, что пакет был убит.

Соответственно на роутер провайдера может прийти только пакет с маршрутизируемым адресом назначения. А чтобы роутер перенаправил его на один из адресов внутренней сети, адрес назначения пакета должен быть адресом внешнего интерфейса (WAN) самого роутера.

Что же касательно вопроса "кому будет передан" - правило маппинга портов включает чёткое и однозначное соответствие между тем, по какому протоколу и с каким портом назначения пришёл пакет, и на какой адрес во внутренней сети его следует перенаправить.
Ответ написан
Комментировать
pindschik
@pindschik
ФЫВА ОЛДЖ
По простому: серверы не отправляют пакет внутренний IP. Они отправляют данные строго В ОТВЕТ на запрос от роутера. Данных может быть несколько, для этого в TCP-IP возникает и висит своего рода "сессия". И по этой же причине UDP пакеты так не могут, т.к. они никогда не ответные.
А "кто на ком стоял" - уже роутер разбирает, он знает, кому что вернуть. Каждое устройство посылает сперва запрос к нему, а он их помечает условными номерами портов. А у себя внутри держит таблицу NAT - соответствия выплюнутых портов внутренним IP. Ответ приходит на тот же порт, с которого ушел запрос, роутер "смотрит" в таблицу и переправляет его внутреннему потребителю.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы