Насколько я понимаю, когда один компьютер отправляет кадр другому ПК через коммутатор, кадр остается неизменным. Коммутатор получает его и отправляет точно такой же кадр. Но что произойдет, если у нас есть два компьютера, подключенных к маршрутизатору, и мы отправим что-то между ними?
3 ответа
«Насколько я понимаю, когда один компьютер отправляет кадр другому ПК через коммутатор, кадр остается неизменным».
Ты прав; Коммутаторы не изменяют кадры, которые они передают в любом случае. Это называется прозрачным мостовым соединением, как описано в статье О'Рейли под названием « Базовая операция переключения»:
Коммутаторы Ethernet спроектированы таким образом, что их операции невидимы для устройств в сети, что объясняет, почему этот подход к связыванию сетей также называется прозрачным мостовым соединением. «Прозрачный» означает, что при подключении коммутатора к системе Ethernet не происходит никаких изменений в кадрах Ethernet, которые являются мостовыми.
«Но что произойдет, если у нас есть два компьютера, подключенных к маршрутизатору, и мы отправим что-то между ними?"
TL; DR
Любой пакет, пересылаемый маршрутизатором, будет изменен. Требуемые модификации включают новый MAC-адрес назначения и новую последовательность проверки кадра. Но это только малая часть того, что происходит на маршрутизаторе ...
В отличие от коммутаторов, маршрутизаторы решают, что делать с пакетом, основываясь на его адресе назначения OSI уровня 3 . В данном случае это адрес Интернет-протокола (IP). Поэтому то, что происходит с пакетом, зависит от того, куда направляется пакет. Давайте использовать изображение, которое вы упомянули в качестве примера:
Здесь у нас есть маршрутизатор с двумя интерфейсами: e1/1/1 (который я обозначу как E1) и e1/1/2 (который я обозначу как E2). Обратите внимание, что два интерфейса маршрутизатора находятся в отдельных подсетях, что всегда должно быть в случае маршрутизатора:
- E1 подключен к подсети 10.0. 0.0/24
- Е2 подключен к подсети 10.0. 1.0/24
Теперь предположим, что компьютер A (с IP-адресом 10.0.0.2/24 и, следовательно, в подсети 10.0.0.0/24) отправляет пакет на IP-адрес назначения 10.0.1.2. Как только этот пакет прибывает в маршрутизатор, происходит следующее:
- Пакет поступает на интерфейс E1
- Маршрутизатор определяет адрес назначения 10.0.1.2
- Маршрутизатор проверяет свою таблицу маршрутизации, чтобы определить, куда должен идти пакет
- Таблица маршрутизации указывает, что интерфейс E2 подключен к подсети 10.0.0.0/24.
- Маршрутизатор подготавливает пакет для передачи по интерфейсу E2. Это требует модификации пакета несколькими способами. Например, новый пакет будет иметь:
- Старый адрес назначения уровня 2 (MAC) заменен новым адресом назначения, который будет широковещательным адресом
FF:FF:FF:FF:FF:FF
для первого такого пакета, отправленного на интерфейс - Новая последовательность проверки кадра (FCS) рассчитана и добавлена в пакет
- Старый адрес назначения уровня 2 (MAC) заменен новым адресом назначения, который будет широковещательным адресом
- Новый пакет передается по интерфейсу E2
После отправки пакета в сегмент сети, подключенный к интерфейсу E2 маршрутизатора, он принимается компьютером B с IP-адресом 10.0.1.2.
Предположим, что компьютер A отправляет пакет на IP-адрес назначения 10.0.7.44. Как только пакет достигает маршрутизатора, происходит следующее:
- Пакет поступает на интерфейс E1
- Маршрутизатор определяет адрес назначения 10.0.7.44
- Маршрутизатор проверяет свою таблицу маршрутизации, чтобы определить, куда должен идти пакет
Что теперь происходит?
Хорошо, если, как показано на рисунке, маршрутизатор действительно имеет только два интерфейса, маршрутизатор отбрасывает пакет, потому что у него нет действительного маршрута к сети назначения.
В реальном мире, однако, маршрутизатор, скорее всего, будет иметь хотя бы один интерфейс, настроенный как маршрут по умолчанию или маршрут последней инстанции. В таблице маршрутизации это интерфейс, с которым связана сеть 0.0.0.0/0. Если у маршрутизатора нет определенного маршрута к действительной сети для пакета, предназначенного для 10.0.7.44, в качестве действия "последней инстанции" он будет передавать пакет по интерфейсу, связанному с маршрутом по умолчанию.
Функциональность маршрута по умолчанию очень важна. Без этого маршрутизатор должен был бы иметь запись в таблице маршрутизации для многих (хотя и не всех) IP-сетей в Интернете. Такой стол был бы очень большим. По сравнению с маршрутизатором с маршрутом по умолчанию, такой маршрутизатор потребует:
- Больше памяти для хранения таблицы маршрутизации
- Больше процессорного времени для проверки таблицы (это делается для каждого входящего пакета!)
- Чрезмерные и частые обновления таблиц маршрутизации от многих других маршрутизаторов в Интернете для обеспечения точности таблицы маршрутизации. В противном случае пакеты могут быть переадресованы через интерфейс, который фактически не имеет подключения к сети назначения.
Маршрутизатор - это коммутатор с дополнительным преобразованием NAT, позволяющий различать входящий и исходящий трафик.
Когда задействован Интернет и, таким образом, используется NAT, правила переадресации портов определяют, что происходит с пакетом (фреймом). Если он только локальный, весь NAT не используется, и, следовательно, используется только внутренний коммутатор. Как и в случае с обычным коммутатором, пакет остается неизменным.
Думайте о каркасе как о одной из тех пластиковых капсул, которые путешествуют в пластиковых трубках (раньше в некоторых окнах на подъездной банке были такие). Пакет - это конверт внутри капсулы, а данные - внутри конверта.
Переключатель - это место, где встречаются разные трубы. Он будет смотреть на адрес источника и адрес назначения на капсуле, и, основываясь на этом, отправить его через соответствующую трубку, чтобы получить, куда он идет.
Маршрутизаторы заботятся о конверте, а не о капсуле. Когда маршрутизатор получает капсулу, он в основном открывает капсулу и затем отбрасывает ее. Затем он посмотрит на конверт и выяснит, куда ему нужно идти. Конверт, возможно, должен пойти на чей-то стол. В этом случае он передаст конверт другой системе доставки (протоколу). Или он может решить, что конверт должен вернуться в систему трубок, и в этом случае он поместит его в новую капсулу и отправит в путь.
Это, конечно, очень упрощенно, но, надеюсь, это немного прояснит картину.