К сожалению, нет, вы не правы.
Рон делает хорошее замечание: вы не предоставили маску подсети, поэтому, если бы мы предполагали, что классная маска, адрес 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, в которых первоначально был принят кадр.