Inter-VLAN маршрутизиране ("router on a stick")
Съдържание
"Router on a stick"
Терминът "router on a stick" се използва, когато към маршрутизатора е пусната "trunk" връзка от комутатор с цел пренасочване на трафика между конфигурираните VLAN.
Това е добър подход, при който се спестяват физическите интерфейси на маршрутизатора (всеки VLAN използва отделни IP мрежови адреси), но за сметка на това рамките (frames) изпратени към него са маркирани (VLAN tag).
Примерна конфигурация
В топологията са използвани два комутатора и един маршрутизатор.
При комутаторите:
- Използват се VLAN10 и VLAN20
- VLAN99 е конфигуриран като "native"
- Портове Fa0/1 до Fa0/12 са във VLAN10
- Портове Fa0/2 до Fa0/24 са във VLAN20
- Портове Gi0/1 и Gi0/2 са предвидени и се използват като "trunk". На S2 Gi0/2 е изключен от съображения за сигурност.
IP адреси:
- VLAN10 - 10.10.0.0/16
- VLAN10 - 10.20.0.0/16
Конфигурация на S1
Switch> Switch>enable Switch#config terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname S1 S1(config)#vlan 10 S1(config-vlan)#vlan 20 S1(config-vlan)#vlan 99 S1(config-vlan)#exit S1(config)#interface range fa0/1-12 S1(config-if-range)#switchport mode access S1(config-if-range)#switchport access vlan 10 S1(config-if-range)#interface range fa0/2-24 S1(config-if-range)#switchport mode access S1(config-if-range)#switchport access vlan 20 S1(config-if-range)#interface gi0/1 S1(config-if)#switchport mode trunk S1(config-if)#switchport trunk native vlan 99 S1(config-if)#interface gi0/2 S1(config-if)#switchport mode trunk S1(config-if)#switchport trunk native vlan 99 S1(config-if)#end S1#
Конфигурация на S2
Switch> Switch>enable Switch#config terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname S2 S2(config)#vlan 10 S2(config-vlan)#vlan 20 S2(config-vlan)#vlan 99 S2(config-vlan)#exit S2(config)#interface range fa0/1-12 S2(config-if-range)#switchport mode access S2(config-if-range)#switchport access vlan 10 S2(config-if-range)#interface range fa0/2-24 S2(config-if-range)#switchport mode access S2(config-if-range)#switchport access vlan 20 S2(config-if-range)#interface gi0/2 S2(config-if)#switchport mode trunk S2(config-if)#switchport trunk native vlan 99 S2(config-if)#interface gi0/1 S2(config-if)#shutdown S2(config-if)#end S2#
Конфигуриране на маршрутизиране чрез "sub-interfaces"
"Sub-interface" е логически интерфейс, използван от маршрутизаторите с цел задаване на IP параметри и пренасочване на трафика между отделните VLAN. Важно е да се отбележи, че за всеки "sub-interface" трябва първо да се посочи типа на енкапсулирането и съответния VLAN ID. В противен случай при опит за задаване на IP адрес IOS връща съобщение за грешка.
За да се създаде "sub-interface" към Gi0/0 за VLAN10 се използват следните команди:
interface gi0/0.10 encapsulation dot1q 10 ip address 10.10.0.1 255.255.0.0
- gi.0/0.10 - дефинира "sub-interface" с номер 10. Не е задължително този номер да съвпада с дадения VLAN ID, но е добра практика да се използват еднакви стойности с цел по-лесен анализ на конфигурацията и потенциално отстраняване на проблеми.
- encapsulation dot1q 10 - конфигурира към дадения "sub-interface" да се пренасочват рамки, с VLAN ID 10 и маркирани чрез протокол IEEE 802.1q. Ако даденият VLAN е "native", като последен параметър на командата се задава "native".
- IP address - IPv4 адрес и маска на "sub-interface". На физическият интерфейс не се задават IP параметри.
Примерна конфигурация на R1
Router> Router>enable Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)# Router(config)#hostname R1 R1(config)# R1(config)#interface gi0/0.10 R1(config-subif)#encapsulation dot1q 10 R1(config-subif)#ip address 10.10.0.1 255.255.0.0 R1(config-subif)# R1(config-subif)#interface gi0/0.20 R1(config-subif)#encapsulation dot1q 20 R1(config-subif)#ip address 10.20.0.1 255.255.0.0 R1(config-subif)# R1(config-subif)#interface gi0/0.99 R1(config-subif)#encapsulation dot1q 99 native R1(config-subif)# R1(config-subif)#exit R1(config)# R1(config)#interface gi0/0 R1(config-if)#no shutdown R1(config-if)#end R1#
Ctrl+C/Ctrl+V
R1
enable configure terminal hostname R1 interface gi0/0.10 encapsulation dot1q 10 ip address 10.10.0.1 255.255.0.0 interface gi0/0.20 encapsulation dot1q 20 ip address 10.20.0.1 255.255.0.0 interface gi0/0.99 encapsulation dot1q 99 native exit interface gi0/0 no shutdown end
S1
enable config terminal hostname S1 vlan 10 vlan 20 vlan 99 exit interface range fa0/1-12 switchport mode access switchport access vlan 10 interface range fa0/2-24 switchport mode access switchport access vlan 20 interface gi0/1 switchport mode trunk switchport trunk native vlan 99 interface gi0/2 switchport mode trunk switchport trunk native vlan 99 no shutdown end
S2
enable config terminal hostname S2 vlan 10 vlan 20 vlan 99 exit interface range fa0/1-12 switchport mode access switchport access vlan 10 interface range fa0/2-24 switchport mode access switchport access vlan 20 interface gi0/2 switchport mode trunk switchport trunk native vlan 99 interface gi0/1 shutdown end