Два хоста разных подсетей подключены к коммутатору

10

Два хоста из разных подсетей, пусть это будут A - 10.1.2.1/24 и B - 10.1.3.1/24, подключенные к одному коммутатору S. Могут ли они общаться?

Итак, насколько я понимаю:

  • A отправляет пакеты с IP B
  • S получает его и сравнивает со значениями в таблице сохраненных адресов, иначе передает его.
  • B получает пакеты, проверяет IP и принимает его.

Я прав?

рейнджер
источник

Ответы:

17

К сожалению, нет, вы не правы.

Рон делает хорошее замечание: вы не предоставили маску подсети, поэтому, если бы мы предполагали, что классная маска, адрес 10.xxx будет иметь маску 255.0.0.0, которая фактически поместит два хоста в одну сеть. Если это так, у них не будет проблем с общением.

Однако, учитывая характер вашего вопроса, я предполагаю, что вы намеревались использовать для каждого из этих хостов меньшую маску - мы продолжим и используем 255.255.255.0, который помещает оба хоста в две разные подсети.

При этом суть того, чего вам не хватает, заключается в том, что вы забыли про ARP (Address Resolution Protocol) . В частности, для кого HostA решает использовать ARP. Позволь мне объяснить...


Прежде чем какой-либо хост поместит какой-либо пакет в соединение, он сначала определяет, находится ли IP-адрес назначения в его собственной сети или во внешней сети. Давайте пройдемся по нему с точки зрения хозяина А.

Хост A знает свой IP (10.1.2.1) и свою маску подсети (/ 24 или 255.255.255.0). С небольшой подсетью HostA определяет, что его сеть охватывает все IP-адреса в диапазоне от 10.1.2.0 до 10.1.2.255. (Мы опускаем детали NetID и BroadcastIP, так как на данный момент они не актуальны)

Хост A также знает, что его IP-адрес назначения - 10.1.3.1, который выходит за пределы диапазона IP-адресов в собственной сети хоста A. Таким образом, узел A пришел бы к выводу, что IP-адрес получателя 10.1.3.1 находится во внешней сети, а узел A может подключаться к чужой сети только посредством разговора через маршрутизатор. Или, более конкретно, через шлюз HostA по умолчанию .

Если на этом этапе HostA не настроен со шлюзом по умолчанию, процесс завершается здесь общим сбоем. HostA не может говорить с HostB.

Если Хост будет настроен с помощью шлюза по умолчанию, он будет посылать в ARP запрос (который сам кадр Broadcast), прося MAC - адрес шлюза по умолчанию - НЕ МАС адрес конечного IP назначения.

Коммутатор, получив широковещательный кадр, запустит пакет из всех интерфейсов, включая тот, к которому подключен HostB. HostB действительно получит пакет, но поскольку ARP ищет MAC-адрес шлюза по умолчанию (а не MAC-адрес HostB) , HostB просто отбрасывает и игнорирует запрос ARP, не отправляя никакого ответа.

Тогда HostA никогда не получит MAC-адрес для своего шлюза по умолчанию и, следовательно, не сможет инкапсулировать пакет уровня 3 с заголовком уровня 2. Пакет потерпит неудачу там.

Вы можете увидеть процесс ARP, показанный в этом видео .


Тем не менее, хотя и несколько не связанный с вашим вопросом, я хотел бы поговорить с чем-то, что вы сказали. Это может быть нюансом терминологии, но я просто хочу убедиться, что он сообщен. Коммутатор выполняет только две функции: переадресовывает кадр, для которого он знает MAC-адрес назначения, или флуд- кадры, для которых он не знает MAC-адрес назначения . Переключатель никогда не вещает .

Вещания является кадром кто назначения MAC - адрес ffff.ffff.ffff. Это специально зарезервированный MAC-адрес, специально разработанный для широковещательных кадров. Когда коммутатор обнаруживает кадр , предназначенный для ffff.ffff.ffff , его поведение всегда затопить этот кадр.

Вы можете посмотреть на это так, поскольку ffff.ffff.ffff является зарезервированным MAC-адресом, он не может быть изучен коммутатором. Поэтому всякий раз, когда коммутатор получает что-то, предназначенное для ffff.ffff.ffff, он вынужден переполнять его всеми портами в VLAN, в которых первоначально был принят кадр.

Эдди
источник
Для этого ответа есть крайние случаи ... хосты могут не иметь ни шлюза, либо их собственный адрес, настроенный в качестве адреса шлюза. Это приводит к тому, что хост ARP для всех адресов и маршрутизаторы с прокси-arp с маршрутом (даже маршрутом по умолчанию) к месту назначения ответят своим собственным mac-адресом.
cpt_fink
3
Существуют крайние случаи практически для любого ответа / ситуации. Я не думал, что вдаваться в некоторые из них здесь будет иметь отношение к вопросу.
Эдди
2

Да. Если они под / 16 подсети. Для подсети / 24 вам нужен маршрутизатор.

Мунеб Али
источник
1
Вы можете улучшить свой ответ, объяснив его подробнее. Например, объясните, почему он работает /16, но `/ 24 нужен маршрутизатор.
Рон Мопин
0

Если хост A и B находятся в разных сетях или подсетях и подключены к одному коммутатору, я считаю, что они могут обмениваться данными через шлюз по умолчанию.

Tomas
источник
Адрес шлюза должен находиться в той же сети, что и адрес, настроенный на хосте. Поскольку адрес шлюза - это адрес, используемый для отправки трафика из сети , он должен находиться в той же сети, что и хост-отправитель, иначе хосту потребуется шлюз для доступа к шлюзу.
Рон Мопин
0

Только если коммутатор подключен к маршрутизатору, который знает, как маршрутизировать эти две подсети.

Джаякумар Н
источник
Коммутатор уровня 3 не требует отдельного маршрутизатора
ниже,