«Насколько я понимаю, когда один компьютер отправляет кадр другому ПК через коммутатор, кадр остается неизменным».
Ты прав; Коммутаторы не изменяют кадры, которые они передают в любом случае. Это называется прозрачным мостовым соединением, как описано в статье О'Рейли под названием « Базовая операция переключения» :
Коммутаторы 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) рассчитана и добавлена в пакет
- Новый пакет передается по интерфейсу 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-сетей в Интернете. Такой стол был бы очень большим. По сравнению с маршрутизатором с маршрутом по умолчанию, такой маршрутизатор потребует:
- Больше памяти для хранения таблицы маршрутизации
- Больше процессорного времени для проверки таблицы (это делается для каждого входящего пакета!)
- Чрезмерные и частые обновления таблиц маршрутизации от многих других маршрутизаторов в Интернете для обеспечения точности таблицы маршрутизации. В противном случае пакеты могут быть переадресованы через интерфейс, который фактически не имеет подключения к сети назначения.