Now, why is VLAN tag required, since the frame's source MAC doesn't change, and a lookup can anyways be performed in the other switche's VLAN table?
U can understand this better if you consider the data path of a frame in a switch.
Suppose Switch A has 24 ports(can be any number), this switch is has been configured to have 3 vlans, namely vlan 10 for ports 0-10 vlan 20 for port 11-20 and the default vlan - vlan 1 for ports 21-24
Now if this switch receives a frame destined for port 11 (vlan 20), but the frame does not have a vlan tag. The switch will assume it to be a part of the default vlan and look up in the part its L2DA table for the default Vlan. Ofcourse it wouldn't find an entry for port 11 in the table (because entry for port 11 is in the part L2DA table reserved for vlan 20) Now as the switch coudn't find the required MAC address in its table, it ll do what switches do best ! BROADCAST
But remember vlans do not receive broadcast messages. So the frame never reaches its destination.
Long story short, for correct delivery, Switch needs to look in the correct portion of its L2DA table and for that we need vlan tags.
Hope it helps.
Switches don't exchange MAC address information through VTP or any other protocol. The only way a switch can learn the destination port and VLAN of a MAC address is by recording the source MAC address and VLAN of inbound frames. For VLAN trunks, tagging is required to show which VLAN the frame and source MAC address belong to. VTP's purpose is to automate the creation of VLANs on a switch. With VTP, once a VLAN is created on a VTP server, the clients (and any other servers) will have that VLAN created in their databases, with the same VLAN ID and name as the VTP server. VTP doesn't contain any port VLAN information or MAC address tables.
The Source or Destination MAC address does not have to be unique across different VLANs. Therefore, you can not create a correlation between the MAC address of the frame and the VLAN the frame should be in.
Take First Hop Redundancy Protocols (HSRP/VRRP), for example. You could have a pair of L3 switches doing HSRP/VRRP for five different VLANs. If each VLAN uses the same VRRP ID# then each VRRP Gateway IP address will share the same MAC address (00-00-5E-00-01-<ID#>). You would then have the exact same MAC address in five different VLANs.
The real reason you need VLAN Tagging is to distinguish VLAN traffic on a port where multiple VLANs can exist.
On Trunk ports, all the frames are still carried across the wire in the form of
0s. Something has to exist in order for the sending switch to indicate to the receiving switch which
0s belong to which VLAN. That something is a VLAN Tag.
The VLAN Tag will be added whenever a frame is crossing a trunk port and removed when the other switch receives the frame. It will look like this: