Допустим, у нас есть 4-портовый коммутатор с поддержкой VLAN.
1 2 3 4
Port 1 is TAGGED to VLAN10` and `UNTAGGED to Default_VLAN(1)
Port 2 is UNTAGGED to VLAN10
Port 3 is UNTAGGED to VLAN10
Ради этого вопроса, у нас есть пакет, поступающий в порт 1, который помечен VID 10. Порт 1 сохраняет этот тег.
Так уж случилось, что устройство, на которое он должен отправить пакет, подключено к порту 2. Удаляет ли коммутатор тег VLAN 10 из пакета, когда он отправляет пакет из порта UNTAGGED на этот VID?
Кроме того, предположим, что это был ICMP-пакет, и устройство на Порте 2 отправляет ответ, который идет на Порт 2 без тегов и становится частью VLAN 10. Получает ли он ТЭГГЕР с VID 10, когда он оставляет порт 1 своему устройству назначения потому что Port1 помечен этим VID? (Давайте также сделаем большое предположение ради вопроса, что коммутатор выполняет IP-маршрутизацию уровня 3).
Переключатели удаляют или добавляют теги в зависимости от настроек порта. У вашего гипотетического тегированного пакета VLAN 10, поступающего на порт 1, будет удален его тег, и когда он будет выходить из порта 2 (или порта 3, потому что оба являются нетегированными членами VLAN 10).
Точно так же, когда пакет входит в порт 2, он будет помечен как VLAN 10 перед выходным портом 1, как указано во второй части вашего вопроса.
Я знаю по крайней мере одну реализацию коммутатора Ethernet, которая маркирует кадры при входе на немаркированный порт, перемещает все кадры внутри коммутатора как помеченные кадры. Этот конкретный коммутатор удаляет теги только тогда, когда кадры исходят из нетегированного порта.
Я бы предположил, что этот тип поведения, вероятно, довольно распространен, поскольку коммутатору нужен какой-то способ отслеживать исходную VLAN кадров, когда они перемещаются внутри коммутатора. Поскольку я знаю только низкоуровневые детали одного (сейчас очень устаревшего и больше не производимого) переключателя, я не буду делать общих обобщений, которые я не могу подтвердить.
Тег применяется только к кадру, поскольку кадр переносится по среде между двумя сетевыми устройствами. Тег добавляется при отправке через интерфейс и удаляется при получении вторым устройством.
Тег необходим только при получении, чтобы определить, где должен обрабатываться трафик. Он не сохраняется при обработке (маршрутизации / коммутации) самим сетевым устройством.
Итак, к вашим примерам / вопросам:
Ради этого вопроса, у нас есть пакет, поступающий в порт 1, который помечен VID 10. Порт 1 сохраняет этот тег.
Так уж случилось, что устройство, на которое он должен отправить пакет, подключено к порту 2. Удаляет ли коммутатор тег VLAN 10 из пакета, когда он отправляет пакет из порта UNTAGGED на этот VID?
P1 не сохраняет тег. Он удаляется при получении кадра, поэтому, когда он пересылает кадр из P2, тега нет.
Более того, предположим, что это был ICMP-пакет, и устройство на Порте 2 отправляет ответ, оно идет на Порт 2 без тегов, становится частью VLAN 10, получает ли он ТЭГГЕННЫЙ с VID 10, когда он покидает Порт 1 на свое целевое устройство потому что Port1 помечен для этого VID? (Давайте также сделаем большое предположение ради вопроса, что коммутатор выполняет IP-маршрутизацию уровня 3).
Поскольку VLAN 10 помечена на P1, то весь трафик на VLAN 10, который относится к P1, будет помечен. Независимо от того, выполняет ли коммутатор L3 или нет, не имеет никакого отношения к функции тегирования 802.1Q.
Это проще, чем вы думаете, практически любой пакет, попадающий в коммутатор, лишается каких-либо тегов и помещается в правильную VLAN (если он не помечен VLAN, которая все равно не переносится этим портом).
Таким образом, в вашем сценарии пакет приходит на порт 1 с тегом VLAN 10, удаляется из этого тега и помещается в VLAN 10. В таблице CAM указано, что MAC-адрес назначения находится на порту 2, и пакет отправляется на этот порт без тегов. Это так просто.
Что касается вашего второго вопроса, пакет будет помечен VLAN 10 на выходе из порта 1, да.