Pages

Wednesday, February 18, 2015

IEEE frames

There are three types of frames defined by IEEE.

1. IEEE 802.3: This is the standard ethernet type defined by IEEE also called Ethernet II or standard ethernet. The main difference from other type of frame is that it has a two byte ether type field which identifies the higher layer protocol data present in the payload field.


The figure below shows the different ether type and the protocol represented by it.
It is interesting to note that the ether type field values are greater than 0x0600(1536 decimal). This is because if the value is less than 0x0600, it represents the length of the payload. If it is greather than or equal to 0x0600, it represents the ether type.


2. IEEE 802.3 wih SNAP:

Some upper layer protocols does not have a ether type. To recognize such protocols, the standard ethernet is modified. To accomodate such protocols, SNAP was defined which is an extension of  the IEEE 802.2 Logical Link Control (LLC) to distinguish much more protocols of the higher layer than using of the 8-bit Service Access Point fields (LSAP) present in the IEEE 802.2 header.



The 5-octet SNAP header follows the 802.2 LLC Header if the DSAP and SSAP contains hexadecimal values of AA or AB.

The SNAP header consists of a 3-octet IEEE Organizationally Unique Identifier (OUI) followed by a 2-octet protocol ID. If the OUI is hexadecimal 000000, the protocol ID is the Ethernet type (EtherType) field value for the protocol running on top of SNAP; if the OUI is an OUI for a particular organization, the protocol ID is a value assigned by that organization to the protocol running on top of SNAP.

"Why is a separate sub-network header necessary?" 
                - Source Wikipedia(http://en.wikipedia.org/wiki/Subnetwork_Access_Protocol)

 The answer is that it was to augment a decision that was made during the layout of the LLC header. At the time that the LLC header was being designed it was thought that a single octet (256 possible values) in the header would be enough to specify all the protocol values that vendors would want to register. As the values began to be reserved, it was discovered that the LLC header would soon run out of open values. The hexadecimal AA and AB values were reserved, and an additional header—the SNAP header—was developed; it can support all EtherType values, as well as multiple spaces of private protocol values.

3. IEEE 802.3 wih 802.2 LLC Header:

The purpose of the LLC header is to provide a "hole in the ceiling" of the Data Link Layer. By specifying into which memory buffer the adapter places the data frame, the LLC header allows the upper layers to know where to find the data.

DSAP: The DSAP, or Destination Service Access Point, is a 1 byte field that simply acts as a pointer to a memory buffer in the receiving station. It tells the receiving NIC in which buffer to put this information. This functionality is crucial in situations where users are running multiple protocol stacks, etc...

SSAP: The SSAP, or Source Service Access Point is analogous to the DSAP, and specifies the Source of the sending process.

The Control Byte: Following the SAPs is a one byte control field that specifies the type of LLC frame that this is.

Reference: http://www.wildpackets.com/resources/compendium/ethernet/frame_formats

Sunday, February 8, 2015

VIRTUALENV in Python

virtualenv is a tool to create isolated virtual environments or sandboxes. One project written 2.7 does not affect the other project written in 3.4. Both can reside on the same machine without creating conflict.

Installation commands in Ubuntu:

#Get the installation file
sandesh@sandesh:~$wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-12.0.7.tar.gz

#the virtualenv zipped file will be downloaded

sandesh@sandesh:~$tar -xvzf virtualenv-12.0.7.tar.gz
sandesh@sandesh:~$cd virtualenv-12.0.7

#install virtualenv
sandesh@sandesh:~/virtualenv-12.0.7$python virtualenv.py myenv

#a new folder called myenv will be created

Use virtualenv in Ubuntu:


# this runs the activate file inside the bin folder
sandesh@sandesh:~/virtualenv-12.0.7$source myenv/bin/activate

#myenv is the name of the virtual environment I created above.

#To install any package inside this virutal environment we execute the following command.
(myenv)sandesh@sandesh:~/virtualenv-12.0.7$pip install django
Collecting django
  Using cached Django-1.7.4-py2.py3-none-any.whl
Installing collected packages: django

Successfully installed django-1.7.4

#we can check what packages are installed inside the virtualenv using following command.
(myenv)sandesh@sandesh:~/virtualenv-12.0.7$ pip freeze
Django==1.7.4

#to get out of the virtualenv

(myenv)sandesh@sandesh:~/virtualenv-12.0.7$ deactivate

sandesh@sandesh-S400CA:~/virtualenv-12.0.7$




Saturday, January 31, 2015

Configuring Web IOU

Web IOU is a very useful software for novice network engineers as it provides the ability to simulate routers as well as switches and give you a simulation environment without taking much memory and processing power as GNS 3 does.

Steps to configure:

1. Create a virtual machine in VMWare Worskstation
          Download VM Ware Workstation. Clik Open under File and select the iou-web file.

2. VMWare Settings:
         In the virtual machine, click on Edit virtual machine settings. Make sure that you have a network adapter (VMNet1 Host Only) . This is a host only adapter which is used to connect to host machine as we need to use web browser in host to access the GUI.



3. Network Settings:
         A static ip address need to be provided to the virtual machine. Since, this is a linux machine, we can use the same command as we use in linux.

Also, In the Properties of your VMWare adapter(as highlighted below) listed in the network connections,set the ip address to 192.169.80.1 and check whether you can ping the above configured ip address. If it pings then you have successfully configured the web-iou.
                                                                                                                                                                   

Sunday, January 4, 2015

Transfer files between Host OS and Mininet VM

It is possible to transfer files between mininet VM and the host OS. The protocol that is used for doing this is called SCP(Secure Copy Protocol).It is based on Secure Shell Protocol(SSH). It is a means of securely transferring computer files between a local host and and a remote host or between two remote hosts.

Follow the steps below to achieve this.


Step 1: Make sure that the mininet VM has a host-only network adapter configured.

In virtualbox network setting make sure that you have a NAT interface enabled that allows you to connect to internet. It will have an ip address like this : 192.168.56.103 ie a class C address.

Step 2: Install WinSCP

Download WinSCP from this link (Download WinSCP) and install the program.

A window like below will appear after installation.

3. Enter the credentials and connect

File Protocol: SCP
Host Name : 192.168.56.103 (or the ip in your host only adapter interface)
User name : mininet
Password : mininet

Click on Login. A window like below will appear.








Friday, January 2, 2015

NX-OS Overview

The cisco NX-OS , next generation operating system was built with modularity, resiliency and serviceability at its foundation. It is based on SAN-OS(Cisco Storage Area Network-Operating System).

Advantage of NX-OS:

1. Unified data center operating system: NX-OS can handle both LAN traffic and SAN traffic.

2. Robust and rich feature set with a variety of Cisco Innovations: Features like ISSU and             PSS(described later)

3. Flexibility and scalability :

4. Modularity : Virtual Device Contexts (VDC)

5. Virtualization :

6. Resiliency

7. IPv4 and IPv6 ip routing and multicast features

8.Comprehensive security , availability, serviceability and management features

Key Features and benefits of NX-OS

1.  Virtual Device Contexts: Available on Cisco Nexus 7000 switches only, these switches can be segmented into multiple virtual devices. These virtual devices function as independent switches and can run independent of each other. VDCs provide benefits like fault isolation, administration plane, seperation of data traffic and enhanced security.

2. Virtual Port Channels(VPCs) : This feature enables a server or switch to use an EtherChannel across two upstream switches without and STP blocked port to enable use of all available uplink bandwidth.

3. Continuous System Operation : Maintenance , upgrades and software certifications can be performed without service interruptions because of the modular nature of NX-OS and features such as In Service Software Upgrade and the ability for processes to restart dynamically.

4. Security : Cisco NX-OS provides outstanding data confidentiality and integrity, supporting standard IEEE 802.1AE link-layer cryptography with 128-bit Advanced Encryption Standard (AES) cryptography. In addition to CTS, there are many additional security features such as access control lists (ACLs) and port-security.

5. Overlay Transport Virtualization (OVT) : Enables layer 2 extension between distributed data centers over any transport layer 3 network.

6. NX-OS Persistant Storage Service :  The PSS is a lightweight database that maintains runtime information state. PSS provides reliable persistant storage to the software components to checkpoint their internal state and data structures enabling non-disruptive restart . If a fault occurs in a process such as OSPF the NX-OS high availability (HA) manager determines best recovery action.


  • Restart a process
  • Switch over to a redundant supervisor module
7. Fabric Path : This is similar to link state protocol which enables each device to build an overall view of the topology. Each device is identified by a swtich id. This eliminates spanning tree to maximize network bandwidth and flexibility.
For more datails on fabric path refer to : Fabric Path



Sunday, December 28, 2014

Introduction to Fabric Path

What is Fabric Path ?

        Cisco Fabric Path is an innovation in Cisco NX-OS software that brings the stability and performance of Layer 3 routing to Layer 2 switched networks to build a highly resilient and scalable Layer 2 fabric. Cisco FabricPath is a foundation for building massively scalable and flexible data centers.. Thus it is a layer 2 routing protocol also sometimes called MAC in MAC Routing.

This is an alternative to running STP. Thus if there is a layer 2 failure due to link cut or layer 2 crash, the entire spanning tree does not need to re-converge which is a feature of STP thus increasing the availabilty of the system. In addition to that, there are no redundant paths as in STP which gives higher bandwidth between the switches by implementing equal cost paths among the links.

How does it work ?

        Cisco Fabric  Path introduces entirely new Layer 2 data plane by encapsulating the frames entering the fabric with a header that consists of routable source and destination addresses. These addresses are called Switch IDs. These addresses are the address of switch in which the frame was received and the address of the destination switch to which the frame is heading. From there the frame is routed until it reaches the remote switch where it is decapsulated and delivered in its original Ethernet format. The figure below shows this simple process.


Fabric Path Terminologies:


Classical Ethernet (CE): It is the regular ethernet with regular flooding and regular STP etc.
The classical ethernet domain has been marked with green border in the figure above.

Leaf Switches : These switches connect CE(Classical Ethernet) domain to FP(Fabric Path) domain.
The switches in the middle of the picture are the leaf switches which are implemented using nexus 5k devices, more precisely nexus 5500 and 7000 F1 and F2 line card modules as nexus 5000 does not support fabric path because fabric path is implemented in hardware.

Spine Swtiches: These switches FP backbone switch with all ports in the FP domain only. The switches on the top of the picture are the spine switches which are implemented using nexus 7k devices.

FP Core Ports: Links the leaf up to spine or between spine switches. The ports in nexus switches are by default in classical ethernet mode ie access mode. Ports within the red border in above picture.To configure it for fabric path the following command should be used.

N7K-1#conf t
N7K-1(config)#int ethernet 1/1
N7K-1(config-if)#switchport mode fabricpath

CE Edge Ports: These ports link the leaf switches connecting to regular classical ethernet domain.
Ports within the green border in above picture.

Fabric Path Switch ID:

           This is analogous to OSPF router id or IS-IS NET id. This identifies the node in IS-IS SPT(Shortest path tree).  This id is automatically generated by default. It can also be assigned manually using the following command in global config mode.

N7K-1#conf t
N7K-1(config)#fabricpath switch-id

Fabric Path Control Plane:

FabricPath IS-IS replaces STP as the control-plane protocol within the FabricPath domain. In other words, FabricPath IS-IS determines the forwarding topology STP(Shortest path tree) instead of STP(Spanning Tree Protocol).    

IS-IS is an industry standard link-state routing protocol. The FabricPath IS-IS implementation is implemented as a single-level IS-IS domain and extended through the definition of FabricPath-specific Type-Length-Value (TLV) fields.

Several characteristics of IS-IS make it ideally suited for use as a Layer 2 forwarding protocol:

●   Has no IP dependency - IS-IS does not require IP reachability in order to form adjacency between devices. While the majority of modern networks do provide IP connectivity for network infrastructure, using IS-IS ensures that no strict requirement for in-band IP connectivity among switches exists.It does not use IP to carry routing information messages. IS-IS is neutral regarding the type of network addresses for which it can route.
●   Easily extensible - Using custom TLVs, IS-IS devices can exchange information about virtually anything. In the case of Layer 3 IS-IS, routers exchange IP prefix reachability. In the case of FabricPath, switches exchange Switch ID reachability.
●   Provides SPF routing - SPF routing protocols have been proven to be scalable, flexible, and fast to converge. In addition, IS-IS supports equal-cost multipath (ECMP) forwarding, allowing data-plane packets to follow any available parallel path rather than restricting forwarding to a single path.
While IS-IS forms the basis of FabricPath, enabling FabricPath in your network requires no specific knowledge of IS-IS - the configuration is plug-and-play. Much as a network operator simply “turns on” STP and interconnects switches, you can enable FabricPath on interfaces and begin forwarding through the FabricPath fabric with minimal configuration.    

Sunday, December 14, 2014

Custom topologies in Mininet : With and without the mn script

There are two ways to run custom mininet topologies.

Without the mn script:

One is without the mn script in the command line. In this case, we simply run the file just as we run a python file. If the custom topology is in a file named mytopo.py, the file should be run as follows.

mininet@mininet-vm:~$ sudo python mytopo.py

With the mn script:

 In this case, the topology named should be given the command line.

For eg.: If there is a custom topology in a python file named 'mytopo.py', there should be a line like below in the file.

topos = { 'mytopo': ( lambda: MyTopo() ) }

topos is a dictionary which stores a custom name as a key and the class name as the value.The name 'mytopo' here can be any name you want to give.It need NOT be same as the filename  MyTopo() is the class name that we have defined in the custom topology which is a sub-class of Topo class that needs to be imported as follows

from mininet.topo import Topo

The above file can be run as follows:

mininet@mininet-vm:~$ sudo mn --custom ~/mininet/custom/mytopo.py --topo mytopo --mac

Here mytopo is the key defined in topos dictionary and ~/mininet.custom/mytopo.py is the file location of the file.