Lamort>> Я имел в виду IP тех, кто ему что-то передаёт, тем более, что он может передавать и данные других протоколов верхнего уровня.Mishka> Как они ему могут быть до фонаря, если он этими адресами заполняет заголовок IP пакета, а MAC ставит ближащей точки?
Коммутатор как-то заполняет заголовок IP-пакета?
Какое именно устройство вы имеете в виду, как оно называется?
Lamort>> Ещё в DES-1008 приходит линк от тамошнего провайдера с 29-й подсеткой.Mishka> И к чему это? IP от подсетки не зависит.
Как это "не зависит", - как пакет от источника попадёт в нужное место сети, если где-то не будет прописана эта подсеть?
Lamort>> Какой же это протокол таким образом нарушается? Mishka> IP семейство и архитектура расчитаны на то, что IP уникальны. Именно поэтому пришлось городить огород с NATP и серыми адресами, когда стало IP не хватать. Private Addresses появились вовсе не сразу. Ну и критика есть этого дела. Я на Базе уже кидал ссылки на бывшего президента IETF. Вот IP архитектуру и нарушает. И детектирование ситуации, когда IP не уникален встроено в стек ещё в далёких 60-х годах. Вначале просто постулировали, а потом, когда в сети появилось более 100 (или 1000? точно уже не помню) компов, то вручную стало тяжко координировать. Встроили автоматизацию. История в общих чертах очень старндартная. Тот же Пастель был IANA-ой чуть ли не до конца 80-х, начала 90-х. Т.е., если надо было включить протокол, порт, сервис, etc в соответствующий список (зарезервировать имя и номер), писал письмо Джону с обоснованием и на сайте IETF появлялся новый файл с новыми номерами. Он добавлял.
Всё это очень здорово, но что именно контролирует тот факт, что два разных устройства имеют один и тот же IP и каким образом она должна это делать?
Я могу описать ситуацию, когда будут появляться пакеты с одинаковым IP и разными MAC при совершенно нормальной работе, а не при дублировании IP разными сетевыми источниками.
Допустим, между роутером и хостом стоит какая-то дублированная линия передачи, которая по каким-то причинам периодически переключается с одного канала на другой, - какие-нибудь два модема или что-то подобное.
Они передают дальше пакет каждый со своим MAC но с IP источника, таким образом до роутера доходит информация от одного источника с одним IP, но с двумя разными МАС.
Lamort>> В архитектуре TCP/IP может и должен быть уникальный IP, только с какой стати за этим фактом должен следить роутер провайдера? С его точки зрения ничего "криминального" вообще не происходит, - он периодически получает одинаковый IP с разными MAC, и, скажем так, "не его дело" почему так происходит.Mishka> Может надо поучить матчасть? Там всё на этом основано.
Где это "там основано", я вам описываю совершенно реальную ситуацию, когда два устройства с одним и тем же IP работали в одном Ethernet-сегменте, при этом по работе локальной сети за точкой доступа вообще ничего не было заметно, все распрекрасно работали с Инетом и ничего не замечали.
Lamort>> Если бы обмен данными шел вообще только в одну сторону, - от данного IP к внешним адресам, то всё было бы совершенно нормально, фреймы принимались, менялась запись ARP и пакеты уходили бы себе в сеть.Mishka> Ты забываешь, что данные идут по IP адресу не только от тебя.
Ну и что? Они идут каждый к своему адресату, так что проблемы начинаются только когда необходимо получить ответ.
Lamort>> В данном случае VoIP не будет работать потому, что передача голоса реализована с помощью UDP и не допускает потери большого количества пакетов.Mishka> Блин, UDP с точки зрения IP ничем не отличается от TCP или SCTP. Демальплексация происходит на хосте. А TCP, как раз надёжный протокол, а UDP не надёжный. И UDP допускает полную потерю трафика, и приложениям приходится самим за этим следить. А вот за TCP следит стек (все эти знаеменитые хэндшейки, автомат состояний, окна подтверждения, алгоритмы увеличения сегментов и прочее), т.е. с точки зрения пользователя и приложения ОС отвечает за наддёжность.
А я что говорю? TCP благодаря повторной передаче устраняет потери когда пакеты улетают не тому адресату, а голос, который передаётся с помощью UDP не получается передать таким образом, - по этой причине шлюз дозванивался, но голос не передавался.
TCP это тот случай, когда верхний уровень компенсирует проблемы при работе нижних уровней.
Lamort>> Естественно, и она наверняка покажет только MAC шлюза компьютера и его IP. Mishka> Она покажет все MAC, с которыми комп общался. Скажем, все компы в подсети. Только он (кэш) живёт не очень долго. Вот выдай команду arp, а потом пропингуй комп со всех других и опять выдай команду. Потом подожди минут 5 и опять выдай. Увидишь разницу.
Как правило у пользователя открыт только браузер, потому в ARP будет только шлюз, или вообще ничего не будет, если браузер не открыт.
Lamort>> В коммутаторе нет ничего кроме таблицы маков за каким-то портом, а в роутере таблица соответствия IP подсетей за данным интерфейсом и маков.Mishka> Если свитч управляемый, но не уровня 3, то есть. ARP — это необходимый атрибут IP стека. Без него не работает.
В управляемом свитче, разумеется есть, но "управляющая часть свитча" это не "свитч собственно говоря", а некая надстройка.
Неуправляемый свитч может не иметь даже собственного MAC.
Lamort>> В принципе роутер можно заставить следить за процессом смены MAC у IP, только зачем это делать в относительно простом роутере?Mishka> Потому, что стек без этого не работает. И раутером не надо быть. Как только стек появился, так появился кэш.
В данном случае интересна именно работа роутера, у которого стек оканчивается уровнем IP, всё остальное не его дело, кроме, разумеется, общения роутеров друг с другом.
Я вам более того скажу, роутеру, как правило, наплевать и на IP источника, - его интересует IP адресата, чтобы знать что делать с пакетом, а откуда он взялся такой, это не его дело.
Mishka> TCP/IP — 60-е. OSI — 80-е. И не ложился TCP/IP стек чётко на OSI модель. Всё-таки последняя чисто reference model. Кстати, в 90-е физический уровень разбили на два, а потом плюнули. Особенно, как IETF стала разрабатывать всякие дополнения к IP семейсвту: IP-over-IP, оптику через IP, PPP over IP и кучу другого. В общем, на данный момент IP ходит через всё, что хочешь, да и большинстов канальных вещей ходят через IP. Т.е. IP честно стал рекурсивным.
Да, совершенно верно, у меня есть линия Ethernet поверх IP, которая сделана для того, чтобы не разбираться с номерами виланов в сети оператора и нашей, а уже в ней наши пакеты с нашими IP.
Самое замечательное, что это сейчас делают две копеечные мыльницы, а за этот сервис с нас даже ничего не берут, - мы попросили выделенные номера виланов, так вместо этого сделали такое вот соединение.