Была похожая задача с C4900M. Ожидалось, что функционал Selective Q-in-Q on a Trunk Port поможет её решить, но столкнулись с некоторыми ограничениями.
Вывод следующий:
Этот функционал позволяет на C4900M принять vlan`ы с одного порта и селективно упаковав их в Q-in-Q отдать с другого порта.
В порт GigabitEthernet1/1 подаются vlan`ы 555 и 556.
interface GigabitEthernet1/1
switchport trunk allowed vlan 550
switchport mode trunk
switchport vlan mapping 555-556 dot1q-tunnel 550
Отдавать/принимать Q-inQ vlan 550 будем с порта GigabitEthernet1/2
interface GigabitEthernet1/2
switchport trunk allowed vlan 550
switchport mode trunk
Если через порт GigabitEthernet1/1 нужно транзитить другие vlan`ы, то добавляем (эта фича стала доступна только в IOS 15.2.4E)
no switchport vlan mapping default drop
Есть досадное ограничение.
SVI интерфейс поднятый на vlan`е который не попадает под правила vlan mapping на порту GigabitEthernet1/1, но указан в trunk allowed, является недоступным со стороны порта GigabitEthernet1/1, этот vlan можно только пробросить через коммутатор транзитом, но этот же SVI интерфейс является доступным с любого другого порта (куда подан этот vlan) на котором не применён vlan mapping.
Поэтому, если через тот же порт на котором применён vlan mapping необходимо подать vlan для управления и маршрутизации самой C4900M с поднятием SVI интерфейса, настраиваем его native`ом.
В итоге
interface GigabitEthernet2/17
switchport trunk allowed vlan 550,551
switchport trunk native vlan 551
switchport mode trunk
switchport vlan mapping 555-556 dot1q-tunnel 550
no switchport vlan mapping default drop
l2protocol-tunnel cdp
l2protocol-tunnel lldp
l2protocol-tunnel vtp
spanning-tree bpdufilter enable
Если в чём то ошибаюсь, прошу поправить.