Skip to main content

Switching - Switched Networks with Virtual LAN?

VLAN's (Virtual Local Area Networks) are a way to structure a network logically; put simply a VLAN is a collection of nodes which are grouped together in a single broadcast domain (address range) that is based on something other than physical location. If a host in a particular VLAN sends a message to a switch it will only forward the message to hosts within the same VLAN.

Another way to think of VLAN's is to think that when you split a switch into 2 VLAN's and assign half the ports to VLAN 1 and the other half to VLAN 2, this is the same as if it was two totally separate unlinked switches.

  • A switches internal TCP/IP software resides in VLAN 1
  • By default all ports belong to VLAN 1
  • Different VLAN's would also be different broadcast domains

VLAN Trunking

If you have two switches with VLAN's configured on both you could link the VLANs on individually but this means you need lots of cables and take up lots of switch ports:

or You could use 1 cable and one port on each switch to be a 'Trunk' which carries information from multiple VLAN's:

There are 3 Trunking protocols:

  1. Cisco ISL (Inter Switch Link)
  2. 802.1q (aka dot1q)
  3. 802.1p (newer prioritized ? for voice, not widespread)

There is not much difference between the way ISL and dot1q work.
  • ISL tags traffic in VLAN's by encapsulating the Ethernet frames with a 26-byte Header and 4 Byte CRC footer, the 26-byte header contains a 15-bit VLAN ID, only the lower 10-bits are used for 1,024 VLANs.
  • dot1q tags traffic by inserting a tag in the middle of the Ethernet frame in between the Source and Length fields. The dot1q VLAN ID is 12-bits and can have 4,096 VLAN's.

VLAN's ? VTP (VLAN Trunking Protocol)

Where you have multiple switches linked with trunks it is important you ensure VLAN consistency across all the switches. You need to make sure each VLAN exists on each switch.

In the diagram above the two computers will not be able to talk because the VLAN does not exist on the middle switch.

Cisco have come up with VTP (VLAN Trunking Protocol) which automatically distributes VLAN's across switches
* VTP does not assign ports *
* VTP only works down trunk ports (ISL or 802.1q)

There are 3 modes to VTP
- Server ? Add any VLAN on any switch, forwards VTP messages
- Transparent ? Act as though cant hear VTP messages, cant send VTP messages
- Client ? Read Only, Forwards VTP messages

VTP servers create, modify and delete VLAN's and other configuration parameters fot the entire VTP domain; this information, in turn, is propagated to the VTP clients in the same domain.

VTP Clients can not creat, change or delete VLAN's. They can only receive them from a server.

VTP Transparent can create, delete and modify its own VLAN's only and does not transmit them or receive transmissions.

VLAN's ? Communicating Between VLAN's

To communicate between VLAN's you need a router:

You can buy a Layer 3 switch, which has a router built into it.

Comments

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.