2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Механизм отправки пакетов с хоста на шлюз
Сообщение10.02.2012, 10:08 
Друзья, помогите пожалуйста разобраться в таком вопросе:
Насколько понимаю ситуация с коммутацией пакетов обстоит следующим образом: сетевой адаптер перед отправкой пакета на удаленный хост, накладывает на IP- адрес удаленного хоста маску подсети и получает адрес сети удаленного хоста. Далее он сравнивает адрес сети к которой принадлежит сам с адресом сети к которой принадлежит удаленный хост. Если они совпадают он отправляет пакеты на этот хост, если не совпадает то он отправляет пакеты на шлюз. Собственно вопрос состоит в раскрытии смысла последнего предложения, которое мне не очень для самого себя понятно…
а вопросы такие:
1. добавляет ли сетевой адаптер в пакеты перед отправкой ещё дополнительно и ip –адрес самого шлюза помимо ip и mac-адреса удаленного хоста если пакеты отсылаются на шлюз? Если «нет», то как пакеты вообще начинают путешествовать по сети без указания того, кому они предназначены? И почему в настройках TCP/IP тогда вообще присутствует ip – адрес шлюза? Если «да», то что же - структура пакетов предполагает более одного получателя?
2. Может ли сетевой адаптер отправлять пакеты на какой угодно адрес, при этом не прописывая сам этот адрес в поле пакетов?
Спасибо.

 
 
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение10.02.2012, 11:39 
Если коротко...
IP адрес — часть заголовка IP-пакета (packet) (сетевой (3-й) уровень сетевой модели OSI), MAC адрес — часть заголовка кадра (frame) протокола канального (2-го) уровня модели OSI, например, Ethernet.
На сетевом уровне по IP адресу получателя определяется (см. ARP) его МАС адрес и IP пакет передается на канальный уровень, т.е. сетевому адаптеру. IP пакет внутри Ethernet кадра ((очень) грубо говоря) не изменяется при пересылке между хостами.

 
 
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение10.02.2012, 12:08 
Прежде всего, IP - это протокол сетевого уровня. IP-пакеты при передаче заворачиваются в пакеты канального уровня, например, в Ethernet-пакеты.

В простейшем случае (локальная сеть Ethernet, единственный шлюз) передача IP-пакетов на удаленный хост происходит примерно следующим образом:

1. Локальный хост накладывает маску локальной подсети на целевой IP и если всем единичкам в маске соответствуют единички в адресе, заключает, что целевой IP принадлежит локальной сети. В этом случае локальный хост определяет MAC-адрес целевого хоста по протоколу ARP (Address Resolution Protocol), заворачивает IP-пакет в Ethernet-пакет, в котором указаны MAC-адреса локального и удаленного хостов, и передает пакет в Ethernet-канал.

2. Если локальный хост приходит к выводу, что целевой IP не принадлежит локальной сети, он по тому же протоколу ARP определяет MAC-адрес шлюза (default gateway) и формирует Ethernet-пакет, в котором указаны MAC-адреса локального хоста и шлюза. Шлюз, получив Ethernet-пакет, извлекает из него IP-пакет и отправляет по назначению.

Dialectic в сообщении #536944 писал(а):
добавляет ли сетевой адаптер в пакеты перед отправкой ещё дополнительно и ip –адрес самого шлюза помимо ip и mac-адреса удаленного хоста
IP-адрес шлюза в IP-пакет не добавляется, шлюз получает IP-пакеты, завернутые в Ethernet-пакеты, адресованные шлюзу MAC-адресом. MAC-адрес удаленного хоста в IP-пакет не добавляется. В случае, когда удаленный хост принадлежит локальной сети, его MAC-адрес прописывается в Ethernet-пакет. Если удаленный хост локальной сети не принадлежит, никаких способов определить его MAC-адрес у локального хоста нет.

Dialectic в сообщении #536944 писал(а):
Может ли сетевой адаптер отправлять пакеты на какой угодно адрес, при этом не прописывая сам этот адрес в поле пакетов?
Если речь идет об IP-сети поверх Ethernet, то нет, не может. MAC-адрес хоста локальной сети, которому предназначен пакет, должен быть прописан в заголовке Ethernet-пакета. Однако IP-адрес получателя IP-пакета (указанный в заголовке IP-пакета), и MAC-адрес получателя "объемлющего" Ethernet-пакета могут соответствовать разным хостам: протокол IP является маршрутизируемым, при движении от отправителя до получателя IP-пакет может пройти через несколько локальных сетей.

 
 
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение01.12.2014, 14:09 
Подниму тему.

Какая инфа содержится в пакетах при передвижении в сети интернет? И как вообще происходит процесс в деталях?

Например, мои предположения:

Хост с адресом 192.168.1.2 с mac-адресом xx:xx:xx:xx:xx в сети 192.168.1.0 255.255.255.0 и шлюзом+днс 192.168.1.1 стучится на сайт с доменом google.com.

1) Хост отправляет DNS-запрос на 192.168.1.1 ---> Хост запаковует IP-пакеты в Ethernet-пакеты. В Ethernet-пакете инкапсулирован IP-адрес хоста, и в заголовке указаны mac-адреса шлюза\днс (dest) и mac-адрес хоста (source).
2) Хост ждёт ответ
3) Шлюз\днс получает dns-запрос от хоста с адресом 192.168.1.2 и с mac-адресом xx:xx:xx:xx:xx
???4) Шлюз сохраняет в буфере инфу о том что нужно отправить dns-ответ адресу 192.168.1.2 с mac'ом (зачем в пакете оба параметра (ip и mac), если это избыточность для LAN?).
5) Днс-шлюз отправляет dns-запрос днс-шлюзу провайдера ---> Днс-шлюз 192.168.1.1 упаковывает свой IP-адрес и Mac-адрес(???) в Ethernet-пакеты и шлёт их на днс-шлюз провайдера.
6) Если днс-шлюз провайдера не содержит в себе записи о данном домене (или он является просто буферным), он шлёт пакет дальше - днс-шлюзу уровнем выше.
7) И так далее по цепочке...
...
8) От днс-шлюза провайдера приходит днс-ответ днс-шлюзу 192.168.1.1, в котором содержится сам днс-ответ (ip-адрес домена), ip и mac адрес отправителя, ну и соответственно ip и mac адрес получателя.
???9) Днс-шлюз 192.168.1.1 смотрит в буфер, чтобы узнать какой хост посылал данный днс-запрос, определяет его и затем ---> упаковывает днс-ответ в ethenet-пакеты. В данных пакетах содержится сам днс-ответ (данные), IP и Mac адреса получателя и отправителя
9) Хост получил ответ. Теперь хост знает что google.com - это ip y.y.y.y
???10) Хост накладывает маску на y.y.y.y, определяет что y.y.y.y принадлежит не локальной сети ---> хост составляет ip пакеты, которые упаковываются в Ethernet пакеты, которые содержат данные и ip-адрес и mac-адрес хоста, мак шлюза\днс (192.168.1.1) и ip-адрес y.y.y.y.
11) Шлюз\днс сохраняет в буфере инфу от какого хоста пришёл запрос, отбрасывает всю инфу, кроме данных и инкапсулирует их в свои пакеты и отправляет их шлюзу выше (шлюз выше получает пакеты, в которых содержатся сами данные, ip и mac адрес шлюза 192.168.1.1)
12) Дальше по цепочке, пока не достигнем цели....
13) Потом всё в обратной последовательности......


К чему я всё это написал. Интересует процесс передвижения пакетов по сетям (от локальной в глобальную) по модели OSI. Интересуют 2,3 и 4 уровни.
Данная инфа нужна для понимания кто, что и когда видит. То есть какая инфа содержится в пакете на каждом этапе его передвижения, а именно - mac'и и IP.

А вышеописанная инфа нужна для максимальной скрытости хоста в интернет. На сколько наслышен, для этих целей используют double-vpn и коннект осуществляют с VM (virtual machine - для сокрытия mac'a). Прип понимании как пакеты двигаются по сетям, можно в деталях понимать суть данной схемы, или же понимать что она избыточна, либо наоборот "несовершенна".

Моё понимание данной схемы:
1) VM используется для сокрытия mac'a хоста. Зачем? Если я правильно понимаю, то роутер в локальной сети, где находится хост общается с миром (а вернее с провайдером) от своего имени (свой ip и mac). А приходящие пакеты с мира перенаправляет хосту в локалке. То есть конкретный хост, с которого юзался интернет, который стоит за роутером никогда и никому не станет известен (за исключением физического изъятия хоста, и то при условии что хост не почищен и ведутся логи на роутере). Поэтому в этом нет никакого смысла? Единственный вариант, по которому можно видеть целесобразность данной операции - если "накрыли" шлюз, через который велась "деятельность" в интернет, пришли в гости по физическому адресу, а машины с таким mac'ом в сети нет. Но они ведь не глупые люди, VM увидят аж бегом. Снести VM? - нужно время. Если есть время, то можно и почистить логи роутера и машину. Верно???
2) Double VPN. Хост что-то "намутил" в WAN'е. Соответствующие органы вычисляют IP. Изымают сервер (2-й впн сервер). Пока они в нём копаются и находят что он в связке с другим впн-сервером, мы видим падение этого сервера Соответственно тушим 1-й сервер - чистим. Органы выходят на первый сервер, а он пуст и возможности отследить с кем он был в связке - невозможно (за исключением что не ведутся логи на роутерах компании что предоставили данный сервис).
Тут вопросы. Могут ли органы не изымать серверы, а по запросу получать к ним прямой доступ? То есть сервер не падает, мы ничего не подозреваем, а органы тем временем вышли на 2-й сервер, увидели связку с первым, вышли на первый, увидели связку с нашим провайдером, вышли на провайдера, получили физ.адрес нашего роутера, зашли к нам неожиданно в гости - изъяли компы, вычислили комп, с которого велась "деятельность"?
3) Даже если вычислили наш роутер, но мы успели почистить логи и ПК, какая ответственность лежит на компании, с чьей сети велась "деятельность", но комп "злоумышленника" неопределён и соответственно нет конкретного физ.лица, который мог быть к этому причастен?

Будьте добры, дайте развёрнутые ответы хотя бы на любые пункты, в ответах на которые вы на 100% уверены.

ЗЫ Не для криминала:)

 
 
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение01.12.2014, 15:03 
Насчет мак-адреса, в линуксе он меняется одной командой (как в windows - не знаю). Можете хоть каждые пять минут переподключаться к сети с новым маком. Однако наверняка можно отследить, куда физически ведет сетевой кабель, по которому шел интересующий трафик.
Можно еще рассмотреть вайфай, тогда физически уже не отследишь.

 
 
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение01.12.2014, 18:57 
Добавлю заключение к вышесказанному о передвижении пакета. Получается что при передаче пакета по локальной сети в пакете находится след.инфа:
- на сетевом уровне: ip адрес получателя и ip адрес отправителя, данные, контрольные суммы
- на канальном: mac-адрес получателя, инкапсулированный сетевой уровень=ip пакет, mac адрес отправителя, контрольные суммы

Если адрес получателя находится за пределами сети, то:
- на сетевом уровне: ip адрес получателя и ip адрес отправителя, данные, контрольные суммы
- на канальном: mac-адрес шлюза, инкапсулированный сетевой уровень=ip пакет, mac адрес отправителя, контрольные суммы

Вопрос - что происходит после шлюза? Моё предположение:
1) Шлюз "скидывает" ethernet пакет, считывает из ip-пакета ip-адрес получателя, накладывает на него маску, определяет непринадлежность его ко всем внутренним сетям и:
- сетевой уровень: ip адрес получателя, ip адрес отправителя (хоста) меняет на свой, данные, checksum
- канальный уровень: mac-адрес получателя (шлюз провайдера\шлюз уровнем выше\шлюз, дефолтный шлюз для нашего шлюза), инкапсулированный сетевой уровень=ip пакет, mac адрес отправителя (нашего шлюза), контрольные суммы

И так далее... Верно ли? Если да, то след.вопросы:
1) Получается что ip-адрес отправителя на каждом переходе из одной сети в другую меняется на ip-адрес шлюза, который граничит между сетями?
Если да, то как шлюз узнаёт кому предназначается пакет, когда приходит ответ? Хранит инфу в буфере? Можно детальное техническое описание данного процесса?
2) Получается что чем больше хопов на пути маршрута, тем тяжелее вычислить хост, который "породил" эти пакеты, поскольку при переходе к новому хопу ip отправителя меняется на ip данного хопа?

 
 
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение01.12.2014, 21:50 
alexnets в сообщении #938792 писал(а):
- на канальном: mac-адрес получателя, инкапсулированный сетевой уровень=ip пакет, mac адрес отправителя, контрольные суммы
Это зависит от протокола канального уровня. Наример, для PPP (Point-to-Point Protocol) MAC-адреса не нужны, так это протокол точка-точка.

Подмена IP-адреса отправителя IP-адресом шлюза выполняется только на узлах сети, выполняющих функцию NAT (Network Address Translation), т. е. на шлюзах, разделяющих приватные сети, через которые идет трафик, или приватную сеть и глобальный интернет. Узлы, маршрутизирующие трафик в глобальном пространстве IP-адресов интернет, передают полученные IP-пакеты без изменений. Почитайте про NAT.

alexnets в сообщении #938792 писал(а):
как шлюз узнаёт кому предназначается пакет, когда приходит ответ
IP - это протокол без гарантированной доставки, в нем нет понятия "ответ". Пакеты хост2 -> хост1 могут идти маршрутом, совершенно отличным от маршрута пакетов хост1 -> хост2. Если на шлюзе работает служба NAT, то IP-адрес хоста назначения определяется по паре (IP-адрес, порт) и таблице трансляции адресов. Если NATа нет, то адрес следующего хоста определяется по IP-адресу назначения и таблице маршрутизации.

 
 
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение01.12.2014, 22:37 
Спасибо за чёткий ответ. Теперь понятно

Ещё если не затруднит, то дайте ответ на счёт анонимности в интернет - double vpn и подмена MAC

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group