Many people have trouble understanding cisco’s native vlan idea. Actually, it is very simple.

Let’s start with statement, that the native VLAN has two functions:

  1. It tags incoming untagged frames on trunk links with the native VLAN.
  2. It untags outgoing frames that has already been tagged with same VLAN that is being used for the native VLAN on the trunk.

I’ve done some magic to show how it works:

 

CDP seems to be nervous:

But it works: