L2: VLAN grund


I ett traditionellt Ethernet-nätverk tillhör alla enheter samma fysiska nätverk så länge de är anslutna till samma switch eller till sammankopplade switchar. Detta innebär att broadcast-trafik skickas till alla enheter, oavsett funktion eller organisatorisk tillhörighet. När nätverket växer kan detta leda till sämre prestanda, svårare administration och ökade säkerhetsrisker.

VLAN (Virtual Local Area Network) används för att dela upp ett fysiskt nätverk i flera logiska nätverk. En switchport kan då tillhöra ett specifikt VLAN oberoende av var den är fysiskt placerad. Användare kan därför grupperas efter funktion, till exempel avdelning eller yrkesroll.

Varje VLAN utgör ett eget broadcast-domän, vilket begränsar broadcast-trafik till respektive VLAN. Kommunikation mellan olika VLAN kräver routing, vilket ger bättre kontroll, högre säkerhet och en mer strukturerad nätverksdesign.

Hur VLAN-teknik fungerar i praktiken

VLAN implementeras på switchar genom att varje port tilldelas ett VLAN-ID. När en Ethernet-ram tas emot kopplas den till rätt VLAN baserat på portens konfiguration. Inuti switchen behandlas varje VLAN som ett separat logiskt nätverk.

När flera switchar kopplas samman används trunklänkar. En trunk transporterar trafik från flera VLAN samtidigt genom att ramar märks med en VLAN-tagg enligt IEEE 802.1Q. På så sätt kan VLAN sträcka sig över flera switchar.

Eftersom switchar normalt arbetar på lager 2 kan de inte routa mellan VLAN. Kommunikation mellan VLAN kräver därför en router eller en multilayer-switch.

Switchfunktioner i laborationen

I laborationen används även två funktioner kopplade till Spanning Tree:

  • spanning-tree portfast – Används på accessportar där endast slutenheter (t.ex. datorer) är anslutna. Porten går då direkt till forwarding-läge, vilket ger snabbare nätverksåtkomst.
  • spanning-tree bpduguard enable – Skyddar nätverket genom att stänga av porten om den tar emot en BPDU. Detta förhindrar att en switch ansluts till en accessport och påverkar Spanning Tree-topologin.

Topologi

I topologin används Catalyst 2960-switchar och en Cisco 1941-router.

Tre olika yrkesroller placeras i egna VLAN med tillhörande IP-nät, även om användarna befinner sig på olika våningar i byggnaden.

Router-on-a-Stick – routing mellan VLAN

Kommunikation mellan VLAN sker via Router-on-a-Stick på routern R1. Routern ansluts till switchen via en fysisk port som delas upp i flera subinterfaces, ett för varje VLAN.

Varje subinterface:

  • Märks med rätt VLAN-ID (802.1Q)
  • Tilldelas en IP-adress
  • fungerar som default gateway för VLAN:et

På detta sätt kan routern routa trafik mellan VLAN 2, VLAN 3 och VLAN 4 via en enda fysisk länk.

DHCP – automatisk adresstilldelning

R1 fungerar också som DHCP-server för alla VLAN. För varje VLAN skapas en separat DHCP-pool.

När en klient ansluter till nätverket:

  1. klienten skickar en DHCP-förfrågan
  2. routern identifierar vilket VLAN klienten tillhör
  3. En IP-adress från korrekt DHCP-pool tilldelas

Klienten får då automatiskt korrekt IP-adress, nätmask och default gateway.

Konfigurationer

SF3 – (våning 3)

  • Switch> enable
  • Switch# configure terminal
  • Switch(config)# hostname SF3
  • SF3(config)# no ip domain-lookup
  • SF3(config)# vlan 2
  • SF3(config-vlan)# name IT
  • SF3(config-vlan)# exit
  • SF3(config)# vlan 3
  • SF3(config-vlan)# name HR
  • SF3(config-vlan)# exit
  • SF3(config)# vlan 4
  • SF3(config-vlan)# name SALES
  • SF3(config-vlan)# exit
  • ! Uplink trunk ner mot SF2
  • SF3(config)# interface fa0/24
  • SF3(config-if)# switchport mode trunk
  • SF3(config-if)# switchport trunk allowed vlan 2,3,4
  • SF3(config-if)# exit
  • ! VLAN IT
  • SF3(config)# interface range fa0/1 - 7
  • SF3(config-if-range)# switchport mode access
  • SF3(config-if-range)# switchport access vlan 2
  • SF3(config-if-range)# spanning-tree portfast
  • SF3(config-if-range)# spanning-tree bpduguard enable
  • SF3(config-if-range)# exit
  • ! VLAN HR
  • SF3(config)# interface range fa0/8 - 15
  • SF3(config-if-range)# switchport mode access
  • SF3(config-if-range)# switchport access vlan 3
  • SF3(config-if-range)# spanning-tree portfast
  • SF3(config-if-range)# spanning-tree bpduguard enable
  • SF3(config-if-range)# exit
  • ! VLAN SALES
  • SF3(config)# interface range fa0/16 - 21
  • SF3(config-if-range)# switchport mode access
  • SF3(config-if-range)# switchport access vlan 4
  • SF3(config-if-range)# spanning-tree portfast
  • SF3(config-if-range)# spanning-tree bpduguard enable
  • SF3(config-if-range)# exit
  • SF3(config)# end
  • SF3# copy running-config startup-config

SF2 – (våning 2)

  • Switch> enable
  • Switch# configure terminal
  • Switch(config)# hostname SF2
  • SF2(config)# no ip domain-lookup
  • SF2(config)# vlan 2
  • SF2(config-vlan)# name IT
  • SF2(config-vlan)# exit
  • SF2(config)# vlan 3
  • SF2(config-vlan)# name HR
  • SF2(config-vlan)# exit
  • SF2(config)# vlan 4
  • SF2(config-vlan)# name SALES
  • SF2(config-vlan)# exit
  • ! Uplink trunk upp mot SF3
  • SF2(config)# interface fa0/23
  • SF2(config-if)# switchport mode trunk
  • SF2(config-if)# switchport trunk allowed vlan 2,3,4
  • SF2(config-if)# exit
  • ! Uplink trunk ner mot SF1
  • SF2(config)# interface fa0/24
  • SF2(config-if)# switchport mode trunk
  • SF2(config-if)# switchport trunk allowed vlan 2,3,4
  • SF2(config-if)# exit
  • ! Accessportar
  • SF2(config-if)# interface range fa0/1 - 7
  • SF2(config-if-range)# switchport mode access
  • SF2(config-if-range)# switchport access vlan 2
  • SF2(config-if-range)# spanning-tree portfast
  • SF2(config-if-range)# spanning-tree bpduguard enable
  • SF2(config-if-range)# exit
  • SF2(config)# interface range fa0/8- 15
  • SF2(config-if-range)# switchport mode access
  • SF2(config-if-range)# switchport access vlan 3
  • SF2(config-if-range)# spanning-tree portfast
  • SF2(config-if-range)# spanning-tree bpduguard enable
  • SF2(config-if-range)# exit
  • SF2(config)# interface range fa0/16 - 21
  • SF2(config-if-range)# switchport mode access
  • SF2(config-if-range)# switchport access vlan 4
  • SF2(config-if-range)# spanning-tree portfast
  • SF2(config-if-range)# spanning-tree bpduguard enable
  • SF2(config-if-range)# exit
  • SF2(config)# end
  • SF2# copy running-config startup-config

SF1 - våning 1

  • Switch> enable
  • Switch> configure terminal
  • Switch# hostname SF1
  • SF1(config)# no ip domain-lookup
  • SF1(config)# vlan 2
  • SF1(config-vlan)# name IT
  • SF1(config-vlan)# exit
  • SF1(config)# vlan 3
  • SF1(config-vlan)# name HR
  • SF1(config-vlan)# exit
  • SF1(config)# vlan 4
  • SF1(config-vlan)# name SALES
  • SF1(config-vlan)# exit
  • ! Uplink trunk upp mot SF2
  • SF1(config)# interface fa0/23
  • SF1(config-if)# switchport mode trunk
  • SF1(config-if)# switchport trunk allowed vlan 2,3,4
  • SF1(config-if)# exit
  • ! Uplink trunk ner mot SF0
  • SF1(config)# interface fa0/24
  • SF1(config-if)# switchport mode trunk
  • SF1(config-if)# switchport trunk allowed vlan 2,3,4
  • SF1(config-if)# exit
  • ! Accessportar
  • SF1(config)# interface range fa0/1 - 5
  • SF1(config-if-range)# switchport mode access
  • SF1(config-if-range)# switchport access vlan 2
  • SF1(config-if-range)# spanning-tree portfast
  • SF1(config-if-range)# spanning-tree bpduguard enable
  • SF1(config-if-range)# exit
  • SF1(config)# interface range fa0/6 - 10
  • SF1(config-if-range)# switchport mode access
  • SF1(config-if-range)# switchport access vlan 3
  • SF1(config-if-range)# spanning-tree portfast
  • SF1(config-if-range)# spanning-tree bpduguard enable
  • SF1(config-if-range)# exit
  • SF1(config)# interface range fa0/11 - 15
  • SF1(config-if-range)# switchport mode access
  • SF1(config-if-range)# switchport access vlan 4
  • SF1(config-if-range)# spanning-tree portfast
  • SF1(config-if-range)# spanning-tree bpduguard enable
  • SF1(config-if-range)# exit
  • SF1(config)# end
  • SF1# copy running-config startup-config

SF0 - våning 0

  • Switch> enable
  • Switch# configure terminal
  • Switch(config)# hostname SF0
  • SF0(config)# no ip domain-lookup
  • SF0(config)# vlan 2
  • SF0(config-vlan)# name IT
  • SF0(config-vlan)# exit
  • SF0(config)# vlan 3
  • SF0(config-vlan)# name HR
  • SF0(config-vlan)# exit
  • SF0(config)# vlan 4
  • SF0(config-vlan)# name SALES
  • SF0(config-vlan)# exit
  • ! Trunk upp mot SF1
  • SF0(config)# interface fa0/23
  • SF0(config-if)# switchport mode trunk
  • SF0(config-if)# switchport trunk allowed vlan 2,3,4
  • SF0(config-if)# exit
  • ! Trunk mot R1 (ROAS)
  • SF0(config)# interface fa0/24
  • SF0(config-if)# switchport mode trunk
  • SF0(config-if)# switchport trunk allowed vlan 2,3,4
  • SF0(config-if)# exit
  • SF0(config)# end
  • SF0# copy running-config startup-config

R1 - ROAS

  • Router> enable
  • Router# configure terminal
  • Router(config)# hostname R1
  • R1(config)# no ip domain-lookup
  • R1(config)# interface fa0/0
  • R1(config-if)# no shutdown
  • R1(config-if)# exit
  • ! VLAN 2 - IT
  • R1(config)# interface fa0/0.2
  • R1(config-subif)# encapsulation dot1Q 2
  • R1(config-subif)# ip address 10.0.2.1 255.255.255.0
  • R1(config-subif)# exit
  • ! VLAN 3 - HR
  • R1(config)# interface fa0/0.3
  • R1(config-subif)# encapsulation dot1Q 3
  • R1(config-subif)# ip address 10.0.3.1 255.255.255.0
  • R1(config-subif)# exit
  • ! VLAN 4 - Sales
  • R1(config)# interface fa0/0.4
  • R1(config-subif)# encapsulation dot1Q 4
  • R1(config-subif)# ip address 10.0.4.1 255.255.255.0
  • R1(config-subif)# exit
  • ! DHCP excluded (gateway + reserv)
  • R1(config)# ip dhcp excluded-address 10.0.2.1 10.0.2.20
  • R1(config)# ip dhcp excluded-address 10.0.3.1 10.0.3.20
  • R1(config)# ip dhcp excluded-address 10.0.4.1 10.0.4.20
  • ! DHCP pool VLAN 2
  • R1(config)# ip dhcp pool IT
  • R1(config-dhcp)# network 10.0.2.0 255.255.255.0
  • R1(config-dhcp)# default-router 10.0.2.1
  • R1(config-dhcp)# dns-server 8.8.8.8
  • R1(config-dhcp)# exit
  • ! DHCP pool VLAN 3
  • R1(config)# ip dhcp pool HR
  • R1(config-dhcp)# network 10.0.3.0 255.255.255.0
  • R1(config-dhcp)# default-router 10.0.3.1
  • R1(config-dhcp)# dns-server 8.8.8.8
  • R1(config-dhcp)# exit
  • ! DHCP pool VLAN 4
  • R1(config)# ip dhcp pool SALES
  • R1(config-dhcp)# network 10.0.4.0 255.255.255.0
  • R1(config-dhcp)# default-router 10.0.4.1
  • R1(config-dhcp)# dns-server 8.8.8.8
  • R1(config-dhcp)# exit
  • R1(config)# end
  • R1# copy running-config startup-config

Sammanfattning

VLAN är en grundläggande teknik i moderna nätverk som gör det möjligt att separera trafik logiskt utan att bygga separata fysiska nät. Genom att kombinera VLAN, trunkar och Router-on-a-Stick kan flera avdelningar dela samma infrastruktur samtidigt som säkerhet och struktur bibehålls.