Click Router: Hands on Arvind Venkatesan Shivkumar Kalyanaraman.

Slides:



Advertisements
Similar presentations
Computer System Laboratory
Advertisements

Click Router: Hands on Arvind Venkatesan. Acknowledgements Thanks Hema for beautifying the slides!
Static Routing Exercise AFNOG 2003/ Track 2 # 1 Static Routing Exercise u Unix network interface configuration u Cisco network interface configuration.
RIP V1 W.lilakiatsakun.
Static Routing Exercise. What will the exercise involve?  Unix network interface configuration  Cisco network interface configuration  Static routes.
SYSTEM ADMINISTRATION Chapter 19
1 Linux Networking and Security Chapter 2. 2 Configuring Basic Networking Describe how networking devices differ from other Linux devices Configure Linux.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 TCP/IP Stack Introduction: Looking Under the Hood! Shiv Kalyanaraman Rensselaer Polytechnic Institute.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) SriramGopinath( )
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 2 The OSI Model and the TCP/IP.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 Understanding Linux Kernel to Build Software Routers (Qualitative Discussion) Shiv Kalyanaraman,
Introduction to Management Information Systems Chapter 5 Data Communications and Internet Technology HTM 304 Fall 07.
C++ fundamentals.
WAN Technologies.
Networking Components Chad Benedict – LTEC
Describe the elements of a VoIP Dial Plan Design.
FIREWALL TECHNOLOGIES Tahani al jehani. Firewall benefits  A firewall functions as a choke point – all traffic in and out must pass through this single.
And how they are used. Hubs send data to all of the devices that are plugged into them. They have no ability to send packets to the correct ports. Cost~$35.
Chapter 12: Configuring Networks The Complete Guide to Linux System Administration.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Programmable Data Planes COS 597E: Software Defined Networking.
Operating System Program 5 I/O System DMA Device Driver.
1 Version 3.1 Module 4 Learning About Other Devices.
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
1 IP: putting it all together Part 2 G53ACC Chris Greenhalgh.
Lab How to Use WANem Last Update Copyright 2011 Kenneth M. Chipps Ph.D. 1.
The OSI Model and the TCP/IP Protocol Suite
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
IP Forwarding.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
ECE 526 – Network Processing Systems Design Networking: protocols and packet format Chapter 3: D. E. Comer Fall 2008.
© Jörg Liebeherr (modified by M. Veeraraghavan) 1 ICMP: A helper protocol to IP The Internet Control Message Protocol (ICMP) is the protocol used for error.
Static Routing Exercise
DoS Suite and Raw Socket Programming Group 16 Thomas Losier Paul Obame Group 16 Thomas Losier Paul Obame.
Washington WASHINGTON UNIVERSITY IN ST LOUIS CP and Full MSR Test Status.
Static Routing Exercise Mark Tinka & Isatou Jah. What will the exercise involve?  Unix network interface configuration  Cisco network interface configuration.
Networking Material taken mainly from HowStuffWorks.com.
Click Router: Hands on Alex Newman Arvind Venkatesan Shivkumar Kalyanaraman.
Protocol Layering Chapter 11.
Lab 12 Department of Computer Science and Information Engineering National Taiwan University Lab12 – Driver 2014/12/16 1 /21.
Router Basics MM Clements.
Static Routing Exercise AFNOG 2002 / track 2 # 1 Static Routing Exercise u Unix network interface configuration u Cisco network interface configuration.
LSNDI RMRA 1 Design and troubleshooting M Clements.
2.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Programs (p73) System programs provide a convenient environment.
© Jörg Liebeherr (modified by M. Veeraraghavan) 1 ICMP The PING Tool Traceroute program IGMP.
January 9, 2001 Router Plugins (Crossbow) 1 Washington WASHINGTON UNIVERSITY IN ST LOUIS Exercises.
4000 Imaje 4020 – Software Imaje 4020 – Content ■ Content of Chapter Software: 1. Flash Up 2. Netcenter 3. FTP 4. Active X 5. XCL commands 6. Exercise.
LonWorks Introduction Hwayoung Chae.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
CHAPTER 3 Router CLI Command Line Interface. Router User Interface User and privileged modes User mode --Typical tasks include those that check the router.
Design and Implementation of a Data Plane for the OpenBox Framework Pavel Lazar March 2016 This research was supported by the European Research Council.
html Pass4itsure Cisco Dumps.
Introduction to Operating Systems Concepts
Lecture 3 By Miss Irum Matloob.
MAC Address Tables on Connected Switches
Lab 2: Packet Capture & Traffic Analysis with Wireshark
Instructor Materials Chapter 5: Ethernet
Network Tools and Utilities
Building an Internet Router
LINUX ADMINISTRATION
Layered Architectures
Introduction to Networking
Introduction to the Kernel and Device Drivers
Chapter 7 Backbone Network
Access Control Lists CCNA 2 v3 – Module 11
Packet Switch Architectures
Chapter 2: Operating-System Structures
Chapter 2: Operating-System Structures
ITIS 6167/8167: Network and Information Security
Presentation transcript:

Click Router: Hands on Arvind Venkatesan Shivkumar Kalyanaraman

Last week Recap Introduction to Click Router Features of the Click Toolkit Trivial Forwarding Example –Configuration file –A leisurely look at C++ code

Click: Recap Click is a new software architecture for building extensible and configurable routers. A Click router is assembled from packet processing modules called elements. –Individual elements implement simple router functions like packet classication, queueing, scheduling, and interfacing with network devices. A router conguration is a directed graph with elements at the vertices; packets follow along the edges of the graph. Configurations are written in a declarative language that supports user-defined abstractions. This language is both readable by humans and easily manipulated by tools.

Click Recap: Contd Click router configurations are modular and easy to extend. Each extension simply adds a couple elements to the base IP configuration. –Other configurations reuse many of the IP router elements. On conventional PC hardware, Click’s maximum loss- free forwarding rate for IP routing is 357, byte packets per second, more than commercial routers with far greater cost. Configuration optimization tools can raise this rate to 446, byte packets per second, enough to handle several T3 lines and close to 95% of hardware's apparent limit.

Today’s Goals Closer look on –Configuration files –Element classes Running Click Router Debugging Tips Exercises

The Click Configuration File Describes connectivity between elements Acyclic directed graph Allows configuration arguments to be specified for the elements Configuration Language –Declaration: name :: class (config); E.g. Buffer::Queue(500); –Connections: name1 [port1] -> [port2] name2; E.g. IPClassifer[0] -> Discard; //Firewalled! IPClassifer[1] -> Buffer -> ToDevice(eth0); //Forward

Element Fundamentals Types of elements –Push: Pushes packet to the next element. E.g. FromDevice(); –Pull: Pulls packet from the previous element E.g. ToDevice(); –Agnostic: May act as push or pull. E.g. Paint(); Method Interfaces –Methods exported to other elements. For example, methods for transferring packets like push(), pull() etc. Handlers –Methods exported to the user rather than to other elements in the router configuration –Support simple, text based read/write semantics

Element Classes: A look at the C++ code class NullElement: public Element { public: NullElement(){ add_input(); add_output(); } const char *class_name() const { return "Null"; } NullElement *clone() const { return new NullElement; } const char *processing() const { return AGNOSTIC; } void push(int port, Packet *p) { output(0).push(p); } Packet *pull(int port) { return input(0).pull();} };

Making own elements STEPS: 1.Descend into the Click main directory 2.# make elemlist 3.# make install

Running router configuration Kernel Space –# rmmod click (within CLICKDIR) –# insmod linuxmodule/click.o (within CLICKDIR) –To start : # cat “filename.click” > /proc/click/config (whereever config file is) –To stop: # cat “null.click” > /proc/click/config (whereever null.click is) User Space –$ click “filename.click”

Debugging Aids Print messages with click_chatter() Use dmesg at the prompt Read /var/log/messages Use ksymoops (oops! What’s that? )

Last Week’s Example: Retrospect FromDevice(eth0) -> Queue() -> ToDevice(eth1) -Que: What’s missing??? Ans: Got to put a new ethernet and IP address in the outgoing packet….

Knowing about your network Helpful Unix commands –ifconfig: Find about IP address and MAC address for all the network interfaces on this machine –ifup: Bring up a network interface –ifdown: Bring down a network interface –lspci: Lists all PCI devices in the system

Exercise 1 Problem: Use Encapsulation elements (that do header manipulation like strip, prepend etc. Refer provided in the Click Toolkit to complete last week’s router configuration.

THINKING ALOUD (Exercise 1) 1.Receive! 2.Every incoming packet has an ethernet and an IP Header 3.Remove existing ethernet header 4.Put next hop’s Ethernet Header 5.Send!

Exercise 2 Problem: Write a small configuration file to implement a packet source and a packet destination. The packet source sends a “ ” in an IP packet. The destination simply drops the “ ” packet 

Figure: Exercise 2 SourceRouter Destination

THINKING ALOUD (Exercise 2) 1.SOURCE Machine –Make a packet with the contents –Prepend IPHeader –Prepend EthernetHeader –Send 2.DESTINATION Machine –Receive a packet –Discard

Exercise 3 Problem: Instead of dropping the packet at the destination, just echo “ ” on the screen and drop the packet. –Modify the Null element shown previously to echo the packet contents. – Use this “modified” NullElement” in your configuration file

Figure: Exercise 3 SourceRouter Destination hello

THINKING ALOUD (Exercise 3) DESTINATION Machine (MODIFIED) –Receive a packet –Strip its Ethernet address –Strip its IP Address –Print the packet contents using your element (use click_chatter() function) –Kill the packet

Exercise 4 Problem: Man in the middle attack!!!!!!! Let router R forward “boring” instead of “ ” Write a new element that: –Creates a new packet with the new contents –Kills the incoming packet (use the kill() function) –Forwards the new packet Include this element in your config file

Figure: Exercise 4 SourceRouter Destination boring

THINKING ALOUD (Exercise 4) ROUTER –Receive a packet –Strip its ethernet address –Strip its IP address –Within your element make a new packet with the new contents (use make() function on a WritablePacket) –Kill the received packet –Send the new packet out

Exercise 5 Problem: Mission TimeBomb You are secret agent 0049! With all the networking powers, you get access to the Router code that corrupts the packet. Now put a timer in that router code that times out every 1000ms and sends a packet to the destination saying “Don’t trust Routers!”

Figure: Exercise 5 Source Router Destination Don’t trust Routers! Don’t trust Routers

Hints: Exercise 5 Use a Timer object (include click/timer.hh) Initialize the timer Implement the function run_scheduled() that is called every time there is a time out. In this function –Make a packet with the new contents –Push the packet out Reset the timer every 1000ms using the reschedule method on a Timer object.

What did we do today? Learnt innards of click router Make new elements and of course router! Make your own source, destination nodes Processed packet within a router Blew the router up!!!