Hoàn toàn có thể dùng SW layer 3 để routing bạn nhé, không cần phải router để tạo subinterface đâu. Bản thân con L3 đã có thể đảm nhiệm được phần nào nhiệm vụ của Router rồi, nếu không sao gọi nó là SW Layer 3 được

Mình đã thử trên Packet, SW Layer 2 và Layer 3 cùng tạo vlan, sau đó chạy routing trên L3, mạng thông mà bạn

Cấu hình như sau:
Trên SW L3:
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#vlan 20
Switch(config-vlan)#int vlan 10
Switch(config-if)#
%LINK-5-CHANGED: Interface Vlan10, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up
Switch(config-if)#ip add 192.168.1.1 255.255.255.0
Switch(config-if)#int vlan 20
%LINK-5-CHANGED: Interface Vlan20, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up
Switch(config-if)#ip add 192.168.2.1 255.255.255.0
Switch(config-if)#ex
Switch(config)#ip routing
Switch(config)#router rip
Switch(config-router)#ver 2
Switch(config-router)#net 192.168.1.0
Switch(config-router)#net 192.168.2.0
Trên SW L2
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#vlan 20
Switch(config-vlan)#int fa0/1
Switch(config-if)#sw ac vlan 10
Switch(config-if)#int fa0/2
Switch(config-if)#sw ac vlan 20
Switch(config-if)#int fa0/3
Switch(config-if)#sw m t
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up
Switch(config-if)#sw t all vl all
Cấu hình 2 PC thuộc 2 VLAN 10 và 20, sau đó ping thông.
Mô hình đây nè bạn:
lab.jpg