2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Механизм отправки пакетов с хоста на шлюз
Сообщение10.02.2012, 10:08 


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

 Профиль  
                  
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение10.02.2012, 11:39 


16/06/10
199
Если коротко...
IP адрес — часть заголовка IP-пакета (packet) (сетевой (3-й) уровень сетевой модели OSI), MAC адрес — часть заголовка кадра (frame) протокола канального (2-го) уровня модели OSI, например, Ethernet.
На сетевом уровне по IP адресу получателя определяется (см. ARP) его МАС адрес и IP пакет передается на канальный уровень, т.е. сетевому адаптеру. IP пакет внутри Ethernet кадра ((очень) грубо говоря) не изменяется при пересылке между хостами.

 Профиль  
                  
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение10.02.2012, 12:08 
Заслуженный участник


09/08/09
3438
С.Петербург
Прежде всего, 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 


01/12/14
3
Подниму тему.

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

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

Хост с адресом 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 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Механизм отправки пакетов с хоста на шлюз
Сообщение01.12.2014, 18:57 


01/12/14
3
Добавлю заключение к вышесказанному о передвижении пакета. Получается что при передаче пакета по локальной сети в пакете находится след.инфа:
- на сетевом уровне: 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 
Заслуженный участник


09/08/09
3438
С.Петербург
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 


01/12/14
3
Спасибо за чёткий ответ. Теперь понятно

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group