MDH Lab – Inter-VLAN MLS Routing

Topologi

lab4-2real

Objective

  • Route between VLANs using a 3560 switch with an internal route processor using Cisco Express Forwarding (CEF).

Background

The current network equipment includes a 3560 distribution layer switch and two 2960 access layer switches. The network is segmented into three functional subnets using VLANs for better network management. The VLANs include Finance, Engineering, and a subnet for equipment management, which is the default management VLAN, VLAN 1. After VTP and trunking have been configured for the switches, switched virtual interfaces (SVI) are configured on the distribution layer switch to route between these VLANs, providing full connectivity to the internal network.

Genomförande

Easy! Blir inte så mycket förklaringar här då all konfig är rätt självklar. Först fixar vi upp grundkonfigen:

S1

Switch(config)#hostname S1
S1(config)#line con 0
S1(config-line)#logging sync
S1(config-line)#int range fa0/3 - 4
S1(config-if-range)#switchport trunk encaps dot1q
S1(config-if-range)#switchport mode trunk
S1(config-if-range)#channel-protocol pagp
S1(config-if-range)#channel-group 2 mode desirable 
Creating a port-channel interface Port-channel 2
S1(config-if-range)#int range fa0/1 - 2
S1(config-if-range)#switchport trunk encaps dot1q
S1(config-if-range)#switchport mode trunk
S1(config-if-range)#channel-protocol pagp
S1(config-if-range)#channel-group 1 mode desirable
Creating a port-channel interface Port-channel 1
S1(config-if-range)#exit
S1(config)#vtp mode server
Device mode already VTP SERVER.
S1(config)#vtp domain Cisco
Changing VTP domain name from NULL to Cisco
S1(config)#vlan 100
S1(config-vlan)#name Finance
S1(config-vlan)#vlan 200
S1(config-vlan)#name Engineering
S1(config-vlan)#exit
S1(config)#spanning-tree vlan 1,100,200 root primary 
S1(config)#

S3

Switch(config)#hostname S3
S3(config)#line con 0
S3(config-line)#logging sync
S3(config-line)#int range fa0/1 - 4
S3(config-if-range)#switchport trunk encaps dot1q
S3(config-if-range)#switchport mode trunk
S3(config-if-range)#int range fa0/1 - 2
S3(config-if-range)#channel-protocol pagp
S3(config-if-range)#channel-group 1 mode desirable 
Creating a port-channel interface Port-channel 1
3(config-if-range)#int range fa0/3 - 4
S3(config-if-range)#channel-protocol pagp
S3(config-if-range)#channel-group 2 mode auto
Creating a port-channel interface Port-channel 2
S3(config-if-range)#exit
S3(config)#vtp domain Cisco
Domain name already set to Cisco.
S3(config)#vtp mode client
Setting device to VTP CLIENT mode.

S2

Switch(config)#hostname S2
S2(config)#int range fa0/1 - 4
S2(config-if-range)#switchport mode trunk
S2(config-if-range)#int range fa0/1 - 2
S2(config-if-range)#channel-protocol pagp
S2(config-if-range)#channel-group 1 mode auto
Creating a port-channel interface Port-channel 1
S2(config-if-range)#int range fa0/3 - 4
S2(config-if-range)#channel-protocol pagp
S2(config-if-range)#channel-group 2 mode auto
Creating a port-channel interface Port-channel 2
S2(config-if-range)#exit
S2(config)#vtp mode client
Setting device to VTP CLIENT mode.
S2(config)#vtp domain Cisco
Domain name already set to Cisco.
S2#sh etherchannel summary
Flags: D - down P - bundled in port-channel
 I - stand-alone s - suspended
 H - Hot-standby (LACP only)
 R - Layer3 S - Layer2
 U - in use f - failed to allocate aggregator
M - not in use, minimum links not met
 u - unsuitable for bundling
 w - waiting to be aggregated
 d - default port

Number of channel-groups in use: 2
Number of aggregators: 2
Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) PAgP Fa0/1(P) Fa0/2(P) 
2 Po2(SU) PAgP Fa0/3(P) Fa0/4(P)
S3#sh etherchannel summary
Flags: D - down P - bundled in port-channel
 I - stand-alone s - suspended
 H - Hot-standby (LACP only)
 R - Layer3 S - Layer2
 U - in use f - failed to allocate aggregator
M - not in use, minimum links not met
 u - unsuitable for bundling
 w - waiting to be aggregated
 d - default port

Number of channel-groups in use: 2
Number of aggregators: 2
Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) PAgP Fa0/1(P) Fa0/2(P) 
2 Po2(SU) PAgP Fa0/3(P) Fa0/4(P)

Allt ok så långt!

Så då återstår det bara att konfa upp lite L3 SVI’s, vilket är oerhört enkelt egentligen.

S1(config)#interface vlan 1
S1(config-if)#ip add 172.16.1.1 255.255.255.0
S1(config-if)#no shut
S1(config-if)#interface vlan 100
S1(config-if)#ip add 172.16.100.1 255.255.255.0
S1(config-if)#no shut
S1(config-if)#interface vlan 200
S1(config-if)#ip add 172.16.200.1 255.255.255.0
S1(config-if)#no shut
S1(config-if)#exit

Lätt att glömma är att vi även måste aktivera routing-funktionen i switchen!

S1(config)#ip routing

Vi har ju tyvärr ingen host att testa med nu men vi kan åtminstone dra en ping från S3 till något av S1’s vlan.

S3(config)#int vlan 1
S3(config-if)#ip add 172.16.1.3 255.255.255.0
S3(config-if)#no shut
S3(config-if)#exit
S3(config)#ip default-gateway 172.16.1.1
S3(config)#do ping 172.16.200.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.200.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/203/1007 ms

Vackert.

Om vi tar en titt i CEF-table för 172.16.1.3 kan vi se följande:

S1#sh ip cef 172.16.1.3 detail
 172.16.1.3/32, epoch 2, flags attached
 Adj source: IP adj out of Vlan1, addr 172.16.1.3 038C1420
 Dependent covered prefix type adjfib cover 172.16.1.0/24
 attached to Vlan1

Och switchen har även ett entry i adjacency-table med L2-information för nexthop (S3):

S1#sh adjacency detail
Protocol Interface Address
IP Vlan1 172.16.1.3(8)
0 packets, 0 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
0014A8899CC00024C33F9EC00800
L2 destination address byte offset 0
L2 destination address byte length 6
Link-type after encap: ip
ARP

Switching – Basics

Enterprise Composite Model

Cisco jobbar för att vi ska gå ifrån den hierarkiska modellen vi lärde oss i CCNA:

hier-topology

Och istället gå över till den betydligt mer heltäckande Enterprise Composite Model som ser ut enligt följande:

comp-top1

comp-top2

Och lite riktlinjer att följa:

  • Endast riktigt stora företag har ett Core-lager, vanligaste implementeringen är istället att ha en “Collapsed Core” tillsammans med Distributions-lagret
  • Separera Server-lanet från övrig verksamhet
  • Separera Voice-trafik från övrig verksamhet
  • Designa nätet i “block” gällande redundans/routing/vlan, detta för att förenkla QoS, nätsummering, förbättra säkerheten och få bättre L2-segmentering . Försök håll en fördelning på 80(extern)/20(intern) trafik inom vlanen
  • Implementera multicast-support i hela nätet
  • Separat management-nät
  • Håll VLAN:en inom sitt respektive block och använd istället L3-routing i access/distributions-lagret mellan byggnader/avdelningar

Trunking

För att upprätta en fungerande trunk-länk bör följande matcha:

  • Native VLAN
  • Encapsulering (ISL/Dot1q)
  • DTP-Mode

Konfigureras genom:

switchport trunk encapsulation n
switchport mode trunk
switchport nonegotiate
switchport trunk allowed vlan n

Native VLAN används främst för VoIP-implementationer idag.

native-vlan

Inter-Switch Link (ISL)

  • Cisco Proprietärt
  • Encapsulerar hela orginal-framen och lägger till en ny 26 bytes header & 4 byte CRC
  • 30 byte overhead
  • Supportar ej Native-VLAN/untagged
  • Är på väg att fasas ut och är inget som används i nyare implementationer

ISL

Endast 4 byte av den nya ISL-headern används idag, “VLAN ID” & BPDU, resterande fält räknas nu som “skräp-data”.

802.1Q (dot1q)

  • Open/Industry Standard
  • Lägger endast till en 4 bytes VLAN-Tag till den befintliga L2-framen

dot1q

Tag protocol – Informerar om att det är en 802.1Q-tag, har alltid värdet 0x8100.

User Priority/Tag Control Information – 3 bitar att använda till CoS-märkning (Class of Service, QoS).

Canonical Format Indicator – 1 bit för att informera om det är en Ethernet- eller Token Ring-frame.

VLAN ID – Informerar om vilket VLAN framen hör till

Tack vare den betydligt lägre overheaden samt stödet för Quality of Service är det enkelt att se varför dot1q är förstahandsvalet när det kommer till trunking. Om vi dock inte manuellt sätter dot1q utan istället använder oss av “switchport trunk encapsulation negotiate” kommer switcharna att defaulta till ISL-encapsulering, hejja cisco! 🙂

Dynamic Trunking Protocol (DTP)

Kopplar vi ihop två cisco-switchar med varandra kommer de med största sannolikhet upprätta en trunk-länk automatiskt tack vare DTP. DTP låter oss dynamiskt sätta upp trunk-länkar och har vi har följande konfigureringsmöjligheter för en switchport:

  • Access
  • Trunk
  • Dynamic auto
  • Dynamic desirable (Cisco factory default)
  • No-negotiate
  • Tunnel (dot1q-tunnel, mer om detta senare)

DTP

Det är rekommenderat att alltid konfigurera trunk-länkar till No-negotiate trunk, och access till just no-negotiate access.

Vi kan verifiera status med “show dtp [interface]”.

switchport mode n
switchport nonegotiate

Vlan Trunking Protocol (VTP)

Ger oss möjlighet att centralt skapa/modifiera/ta bort vlan på ett stort antal switchar.

  • Annonserar endast vlan mellan 1-1005
  • Switchar använder revisions-nummer för att hålla koll på om det är ny/gammal information (börjar alltid på 0)
  • Vi kan resetta revisions-numret via att byta vtp domän eller sätta switchen i VTP Transparent-mode temporärt
  • Talar ej om vilka interface som hör till respektive VLAN
  • Skickas endast över trunk-länkar som multicast

Kopplar vi in en gammal/begagnad switch med ett högre revisions-nummer till ett befintligt LAN kommer vlan.dat skrivas över och vi blir av med alla vår vlan-inställningar i samtliga VTP Servers & Clients.

VTP finns i tre lägen:

  • Server (default) – Tillåter att vi gör ändringar i vlan-konfigurationen.,skickar/tar emot VTP-paket
  • Client – Tillåter EJ att vi gör några ändringar i vlan-konfigurationen, skickar/tar emot VTP-paket
  • Transparent – Lyssnar ej på VTP-paket den får från andra switchar, vi tillåts göra ändringar men detta sparas endast lokalt på switchen. Vidarebefodrar däremot VTP-paket i version 2 & 3.

För att kunna konfigurera “extended-range vlans” (1006-4095) krävs det att switchen är i Transparent-mode för -VTP version 1 & 2, version 3 har fullt stöd även i Server- & Client-mode.

När vi konfigurerar switchen till VTP Transparent-mode sparas vlan-ändringar i running-config!

VTP-advertisements skickas av switchar i Client-mode vid uppstart där de ber om en uppdatering, samt från switchar i Server-mode var 300:e sekund.

  • Summary Advertisement – Skickas av VTP Server var 300:e sekund samt varje gång en förändring i VLAN-databasen sker. Inkluderar information om VTP version, domän, revisionsnummer, tidsstämpel, md5 kryptering, hash code och antalet “Subset advetisements” som följer.
  • Subset Advertisement – Skickas av VTP Servern när en VLAN-förändring sker. Specificerar vad exakt som hänt med ett vlan (lagt till/tagit bort etc). Innehåller följande information: Status för VLANet, VLAN Type, MTU, Lenght of Vlan name, vlan number, SAID, Vlan name. Det skickas ett Subset advertisement per VLAN.

Konfigureras enligt:

vtp mode n
vtp domain n
vtp password n
vtp version n

Det finns även möjlighet till VLAN-pruning (vtp pruning) som begränsar automatiskt vilka vlan som tillåts över en trunk-port för att begränsa broadcast-domäner. Detta fungerar dock endast där vi använder VTP Server-mode.

Rekommenderar att läsa följande artikel! Allt du behöver veta om VTP till CCNP/CCIE här.

VLANs

  • 12 bit field
  • Vlan 0 & 4095 är reserverade
  • “Normal VLANs” sträcker sig mellan Vlan 1 – 1005
  • 1002 & 1004 är reserverade för FDDI
  • 1003 & 1005 är reserverade för Token Ring
  • “Extended VLANs” sträcker sig mellan Vlan 1006 – 4094

Switchen har ett separat CAM-table för varje VLAN.

Får se om jag även tar mig tid att skriva ett kortare inlägg om STP/RSTP och CAM/TCAM/CEF senare, mycket av det känns dock väldigt basic så blir i slutändan bara slöseri med tid för egen del. Kommer hellre igång med det lite mer avancerade snabbare istället.. 😉