Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос про Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Beginning
Хочу понять как работает адресация в сети Ethernet, сотоящая из коммутатора и компов подключённых к нему. Насколько я понял, кумутатор переадресует на основании ethernet пакета в котором есть MAC отправителя и MAC получателя. Компы друг к другу обращаются по IP который лежитcя поверх ethernet. IP тоже содержит IP отправителя и получателя. Так вот. Если мы отправляем паеткет с компа 1 на комп 2, то какой MAC адрес получателя(т.е. MAC адрес компа 2) подставляет сетевая карта компа 1? Она что делает таблицу MAC=IP, и где то её хранит?
Rst7
Во-первых, коммутатор никакой информации в пакетах не изменяет. Ни MAC-адрес, ни IP-адрес. Он просто транслирует пакеты в нужный порт. А вот обучается он этому, подсматривая адреса источников входящих пакетов и заполняя таблицу - (MAC-адрес источника)/(номер порта, откуда пришел пакет с таким адресом). Когда же ему надо решить, куда отправить пришедший пакет, он берет из него MAC-адрес приемника и по таблице находит номер порта. В двух словах - это все smile.gif
sysel
Цитата(Beginning @ Jul 2 2009, 11:50) *
Она что делает таблицу MAC=IP, и где то её хранит?

Да. Только это делает не сетевая карта, а обработчик стека протоколов.

Смотрите в сторону ARP и RARP, это механизмы позволяющие сопоставить IP и MAC

Попробуйте под виндами в коммандной строке написать "arp - a" и нажать Enter
Beginning
Покажите мне где я написал что коммутатор изменяет что то? Как работает комутатор я знаю. Я спрашивал другое. Я уже частично нашёл ответ на свой вопрос http://ru.wikipedia.org/wiki/ARP, но пока не определился где именно хранится таблица.
Спасибо.

To sysel: спасибо.
А на ARP я вышел по этой ссылке. http://www.xakep.ru/magazine/xa/046/044/2.asp
Rst7
Цитата
Покажите мне где я написал что коммутатор изменяет что то?


Да, пардон. Как-то глаз соскочил на пару строк ниже и показалось, что "коммутатор подставляет MAC адрес компа 2".

А так конечно, там таблица соответствий есть. Каждый вход в таблице - это соответствие MAC/IP. И еще там есть таймаут для каждой записи (через некоторое время записи устаревают и отбрасываются).
Beginning
Цитата
После того, как IP-адрес прошёл процедуру разрешения адреса, он остаётся в кеше в течение 2-х минут. Если в течение этих двух минут произошла повторная передача данных по этому адресу, то время хранения записи в кеше продлевается ещё на 2 минуты. Эта процедура может повторяться до тех пор, пока запись в кеше просуществует до 10 минут. После этого запись будет удалена из кеша и будет отправлен повторный ARP-запрос.
wici©
Да век живи век учись.
arp -a показывает текущцю таблицу.

Продолжу дисскусию.
Например в сети появился шлюз(роутер, маршрутизатор, как хотите...) - выход в интернет. Он имеет адрес например 192.168.0.100. В настройках сетевой карты мы прописываем - шлюз 10.10.0.324. Так вот, хотим мы например пингануть адрес в инете например 10.10.0.324.
И какой адрес получателя будет в IP пакете?

Нарыл интересную команду netstat -r
sysel
Цитата(Beginning @ Jul 2 2009, 12:35) *
В настройках сетевой карты мы прописываем - шлюз 10.10.0.324

Надо в настройках сетевой карты прописывать шлюз 192.168.0.100

У Вашего шлюза должен быть IP, выданный провайдером (либо указанный в договоре, либо выданный по DHCP). Пусть он будет = IPш.
Адрес Вашего компьютера 192.168.0.1
Адрес интернет сервера IPc

Когда Вы пингуете с компьютера сервер IPc, этому серверу идёт от шлюза в IP заголовке идёт адрес отправителя IPш.

Т.е. шлюз подменяет IP адреса для пакетов исходящих в интернет на IPш, а для пакетов, пришедших из интерента адрес получателя меняет с IPш на 192.168.0.1

Смотрите тут: http://ru.wikipedia.org/wiki/PPPoE

А вообще советую найти книжку по сетям ЭВМ, там все эти чудеса должны быть расписаны.
Мои знания по этим вопросам неглубокие, базируются на институтском курсе лекций.
Beginning
Цитата
Надо в настройках сетевой карты прописывать 192.168.0.100

Опечатался.
AlexandrY
По адресу 10.10.0.324 запрос в публичную сеть вообще скорее всего не уйдет. Зависит от дубовости роутера.
Ибо это не публичный адрес.
А вообще какой будет обратный адрес в IP пакетах принимаемых узлом на другом конце вашего коннекта предсказать невозможно если вы не знаете точной физической топологии канала связи.

Цитата(Beginning @ Jul 2 2009, 11:51) *
Например в сети появился шлюз(роутер, маршрутизатор, как хотите...) - выход в интернет. Он имеет адрес например 192.168.0.100. В настройках сетевой карты мы прописываем - шлюз 10.10.0.324. Так вот, хотим мы например пингануть адрес в инете например 10.10.0.324.
И какой адрес получателя будет в IP пакете?
Beginning
Блин, читаю и вопрсов становится всё больше.
Короче, чего вроде понял:
Имеем ADSl модем, на котором стоит NAT + коммутатор, или коммутатор отдельно. Имеем комп воткнутый в комутатор. NAT настраиваем так что локальная сеть это 192.168.0.x Получается что запросы (ip пакеты) с этими адресами не транслируются. Делаем запрос с компа на коммутатор на ip 10.10.0.324. У комутатора нету такого MAC и отсылает на все адреса, походу и на NAT, NAT поймёт что не локалка и создаст трансляцию в INTERNET и при этом сделает, походу, подмену TCP порта в адресе отправителя, т.е. PAT
Блин wacko.gif
Короче какую роль в этом играет адресс шлюза? Нафиг он нужен? И не пойму что будет происходить с ARP таблицей на локальном компе, т.к. MAC будет NAT-а или каким там боком он к комутатору подключён, а IP будут всё время разные, или нет?
Короче запутался окончательно, кто просветит?

...или шлюз записывается для того, что бы взять его MAC и указывать MAC получателя - NAT если пакет не относится к локалке?
vvs157
Цитата(Beginning @ Jul 2 2009, 11:50) *
Так вот. Если мы отправляем паеткет с компа 1 на комп 2, то какой MAC адрес получателя(т.е. MAC адрес компа 2) подставляет сетевая карта компа 1? Она что делает таблицу MAC=IP, и где то её хранит?
Простые необслуживаемые коммутаторы про IP вообще ничего не знают. Они работвют только по MAC, таблицу привязки порт-МАС хранят во внутренней памати. Если им эту пямять переполнить - то простой коммутатор будет посылать пакеты во все порты. Есть коммутаторы 3-го уровня, которые знают про IP, в частности они умеют делать VLAN'ы

Цитата(Beginning @ Jul 2 2009, 13:48) *
У комутатора нету такого MAC и отсылает на все адреса, походу и на NAT, NAT поймёт
NAT не работатет на уровне MAC, он работает только с IP, поэтому никакого пререпутывания не происходит. Коммутатор, который в вашем роутере - это необслуживаетмяй коммутатор, который про NAT ничего знать не должен и этот коммутатор ничем не отличается от обычного необслуживаемого коммутатора за 300 руб

Цитата(Beginning @ Jul 2 2009, 13:48) *
Короче какую роль в этом играет адресс шлюза? Нафиг он нужен? И не пойму что будет происходить с ARP таблицей на локальном компе, т.к. MAC будет NAT-а или каким там боком он к комутатору подключён, а IP будут всё время разные, или нет?
Короче запутался окончательно, кто просветит?
На шлюз отправляются все IP какеты, которые отправляются вне сегмента сети, определенного маской. МАС имеет смысл только в Ethernet, поэтому при смене транспортного протокола теряется.
Beginning
Давайте конкретезируем понятия. NAT - скажем так не нечто физическое, а свойства нечто физического (конкретное понятие NAT я не привожу (см. wiki), а говорю образно). А нечто физическое что имеет ADSL это выход в тел. линию с одной стороны, а с другой WAN. B NAT как раз стоит между этими портами. А WAN как раз походц и имеет MAC. Покарайней мере я так понял, если нет поправте.
vvs157
Цитата(Beginning @ Jul 2 2009, 14:02) *
Давайте конкретезируем понятия. NAT - скажем так не нечто физическое, а свойства нечто физического (конкретное понятие NAT я не привожу (см. wiki), а говорю образно). А нечто физическое что имеет ADSL это выход в тел. линию с одной стороны, а с другой WAN. B NAT как раз стоит между этими портами. А WAN как раз походц и имеет MAC. Покарайней мере я так понял, если нет поправте.
Дабы не было путаницы, надо разделить ADSL, роутер и NAT. ADSL модем имеет два режима работы - так называемые bridge и router+NAT. Для начала возмем bridge. В этом случае модем фактически работает как преобразователь медная линия - ethernet и на его ethernet порту получается тот IP, который отдал провайдер с MAC'ом его, модема сетевого интерфейса. Далее к этому сетевому интерфейсу внутри коробочки подключен самый обычный неуправляеый коммутатор, то есть это разные устройства, которые друг про друга ничего не знают. И в таком режиме в интернет может выйти только одна машина, так как провайдер отдал вам только один внешний IP. При этом вы прекрасно можете использовать остальные порты коммутатора для работы других компов с вашми внутреними IP, они никак не будут мешать друг другу, просто машины с этими IP не будут иметь связи ни с интернетом, ни с машиной, имеющей выход в интернет. Когда включается режим router, то между ADSL и коммутатором как бы включается еще одно устройство - роутер (маршрутизатор по-нашему). Как правило реализован он на базе Linux. Этот маршрутизатор и общается с ADSL модемом напрямую через свой ethernet port #1. Его Ethernet port #2 "смотрит" на коммутатор (и имеет свой МАС) и роутер меняет IP вашей локалки (NAT) на адрес, что ADSL получил от провайдера, что и дает возможность выхода в интернет всем компам вашей локалки. То есть имеется последовательное соединение коммутатор - маршрутизатор с NAT - ADSL.
AlexandrY
По моему вы отвечаете не по существу проблемы.

А проблема как я понимаю в том, что человек вызвав команду netstat -r в среде Windows не увидел таблицу однозначного соответствия IP <-> MAC
Например таблица маршрутов огромная, и таблица интерфейсов здоровая, а ARP таблица может быть всего из одной записи.

У меня следующие объяснения этому:
1. Билли делал операционку для домохозяек, а не для сисадминов. Поэтому его среднестатистического юзера не должны волновать принципы маршрутизации и нативное представление системной информации в виндах на зачаточном уровне.
2. Таблица маршрутов рекурсивная и в конечном итоге сводится только к двум маршрутам: шлюзу и к внутреннему каналу компа.
3. ARP таблица очень оперативная, и мгновенный снимок не показывает ее реальный размер и динамику.

Анализировать данные о маршрутизации лучше всего SNMP броузерами, там информация нормально структурирована и более полная.


Цитата(vvs157 @ Jul 2 2009, 13:58) *
Дабы не было путаницы ....
Beginning
Спасибо всем за ответы. Я как раз именно так себе и представлял. Уточню маршрутизатор(роутер) - объект, в данном случае линукс, а NAT - метод, т.е. алгоритм.
Ну а насчёт моего вопроса (зачем нужено прописывать адрес шлюза) - для получения по средством ARP запроса MAC адресса ethernet порта роутера подключённого к комутатору.?
AlexandrY
Да имено так. Таблица ARP указывает на MAC дивайса для первого хопа.

Но сами адреса могут быстро в динамике меняться.
Поскольку еще есть протоколы управления IP маршрутами типа RIP и протоколы изменения маршрутов свитчеров типа SPAN.

Цитата(Beginning @ Jul 2 2009, 14:38) *
Спасибо всем за ответы. Я как раз именно так себе и представлял. Уточню маршрутизатор(роутер) - объект, в данном случае линукс, а NAT - метод, т.е. алгоритм.
Ну а насчёт моего вопроса (зачем нужено прописывать адрес шлюза) - для получения по средством ARP запроса MAC адресса ethernet порта роутера подключённого к комутатору.?
Beginning
Цитата(AlexandrY)
не увидел таблицу однозначного соответствия IP <-> MAC

Да действительно. Я вообще не обноружил ни одного mac адреса, кроме своего.
Beginning
Есть вопрос. У меня есть ADSL модем BiPAC 5200. Как его настроить, что бы входящий IP пакет с определённым портом, транслировался в определённый IP адрес с определённым портом. Смотрю настройки Routing и NAT - что то невразумительное. Т.е. методом тык не получится. Где можно про это прочитать?
SysRq
Цитата(Beginning @ Jul 2 2009, 18:06) *
...BiPAC 5200. Как его настроить, что бы входящий IP пакет с определённым портом, транслировался в определённый IP адрес с определённым портом.

В разделе "Virtual Server". Однако, назначить разные внешний и внутренний порты вроде бы нельзя. Только совпадащие.
sysel
Цитата(Beginning @ Jul 2 2009, 18:06) *
Есть вопрос. У меня есть ADSL модем BiPAC 5200. Как его настроить, что бы входящий IP пакет с определённым портом, транслировался в определённый IP адрес с определённым портом. Смотрю настройки Routing и NAT - что то невразумительное. Т.е. методом тык не получится. Где можно про это прочитать?

У меня такой же самый модем.
В настройках NAT, пункт Virtual Server заполняется таблица.
Только вот в моём модеме глюк: при добавлении нового правила, если указать протокол "ALL", вылазит ошибка. А если указать протокол TCP, сохранить правило, а потом исправить на "ALL", то всё нормально работает.
Вот такой вот глюкавый модем sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.