410 likes | 979 Views
Network Topology Discovery. Anirudha U Bodhanker Anshuman Tiwari. Road-Map. Motivation. Requirement. What is SNMP. Our Design. Problems and Challenges. Future Extension. References. Motivation. Client : Computer Center IIT- Bombay
E N D
Network Topology Discovery Anirudha U Bodhanker Anshuman Tiwari
Road-Map • Motivation. • Requirement. • What is SNMP. • Our Design. • Problems and Challenges. • Future Extension. • References.
Motivation • Client : Computer Center IIT- Bombay • Network Administrator wants to keep track of topology. • It becomes easy for a new person to understand the N/W layout of a particular organization. • N/W management does not remain dependent on a particular individual who is aware of the layout. • And Helps in Decision Making • Add or Remove network element. • Existing software's are very costly: eg HP Openview costs around 2 Lakhs.
Requirement • Discover Topology of IITB network. • Differentiate between Layer2 and Layer3 switches. • Provide a Graphical Interface for User to see details.
SNMPSimple Network Management Protocol • Definition: • A standard for gathering statistical data about network traffic and the behavior of network components. • How • SNMP uses management information bases ( MIBs ). • Versions • SNMPv1 ( RFC 1157). • SNMPv2 ( RFC 1905/6/7). • SNMPv3 ( RFC 1905/6/7 2571/72/73/74/75).
How SNMP Query Agent Network Management station Query for mib Response TRAP
MIB Management Information Base • Definition • a database of objects that is managed and used by network management protocol. • Structure of Database. • Tree structure is used . • MIB Browser.
Design For Discovery • Approach • Step1 : Find out all Routers and Interconnection between them. • Step2 : Find All switches and end points. • Step3 : Find Interconnection between switches . • Step4 : Join End Points to respective switches.
Router Discovery Algo. For each router in router_set { get ipRouteTable ; For each entry in ipRouteTable { if ( ipRouteType = indirect && ipRouteDest not_in(router_set) { Add Router to routerset ; Add router -> ipRouteDest to edge_set; } } }
Modified Router Discovery Algo. For each router in router_set { get ipRouteTable ; get ipAddrTable add to interface_table; For each entry in ipRouteTable { if ( ipRouteType = indirect ) { swap ipRoutDest with its interface if exsits(nterface_table); if( ipRouteDest not_in(router_set) { Add Router to routerset ; } Add router -> ipRouteDest to edge_set; } } }
Final Router Discovery Algo. For each router in router_set { if router exsits(interface table) { next; } get ipRouteTable ; get ipAddrTable add to interface_table; For each entry in ipRouteTable { if ( ipRouteType = indirect ) { swap ipRoutDest with its interface if exsits(nterface_table); if( ipRouteDest not_in(router_set) { Add Router to routerset ; } Add router -> ipRouteDest to edge_set; } } }
S1 R1 1 2 S2 R2 3 S3 2 1 S4 2 S5 1 Switch Discovery 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 1 2 1 1
Switch Interconnection Algo For each switch in switch_set { get dot1dTpFdbTable; if ipAdd is a switch & is only ip on that port { draw edge between them; } }
Correct Switch Interconnection Algorithm. For each S in ST { For each ‘x’ in PT(S) { For each Ei in PAT(S,PT) { For each Ek in PAT(S,PT) other than Ei { If (Ek disconnects S and Ei) { //(S)x-a(Ei)b-y(Ek) delete Ek from S and S from Ek; delete PAT(Ek,y’) from PAT(S,x); delete PAT(s.x’) from PAT(Ek,y); apply same procedure to all entries in PAT(Ek,y’) and PAT(S,x’); } } } } }
S1 R1 S2 R2 S3 1 S4 2 S5 1 Example 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 2 1 2 3 1 2
S1 R1 S2 R2 S3 1 S4 2 S5 1 S1 disconnects S2 and R1 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 2 1 2 3 1 2
S1 R1 S2 R2 S3 1 S4 2 S5 1 S2 disconnects S1 and S3 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 2 1 2 3 1 2
S1 R1 S2 R2 S3 1 S4 2 S5 1 S2 disconnects S1 and R2 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 2 1 2 3 1 2
S1 R1 S2 R2 S3 1 S4 2 S5 1 S2 disconnects S3 and R2 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 2 1 2 3 1 2
S1 R1 S2 R2 S3 1 S4 2 S5 1 S3 disconnects S2 and S4 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 2 1 2 3 1 2
S1 R1 S2 R2 S3 1 S4 2 S5 1 S4 disconnects S3 and S5 1 S11 = { R1 } S12 = {S2,S3,S4,S5,R2} S21 = {S1,R1} S22 = {R2} S23 = {S3,S4,S5} S31 = {S1,S2,R1,R2} S32 = {S4,S5} S41 = {S1,S2,S3,R1,R2} S42 = {S5} S51 = {S1,S2,S3,S4,R1,R2} 2 1 2 3 1 2
S1 R1 1 2 S2 R2 3 S3 2 1 S4 2 S5 1 Final Switch Table 1 S11 = { R1 } S12 = {S2} S21 = {S1} S22 = {R2} S23 = {S3} S31 = {S2} S32 = {S4} S41 = {S3} S42 = {S5} S51 = {S4} 2 1
Interface • Providing a Web interface. • Features • Display Tree Structure of devices. • Search for a IP in current database. • Get dynamic Information for a IP. • Display information of different interface of routers. • Graphical View For network.
Problems Faced • Not unique Access Specifier Throughout IITB. • Not a common version for SNMP. • Different MAC address Format. • “0:40:d:c0:2f:69” • ”00 00 AA 61 DC 40” • “000086487cd9”
Challenges • How To Differentiate between L2 and L3 switches. • Which Particular MIB objects to use for Required Information. • The Router/Switch Discovery Algorithms are not well defined in any paper.
Protocol and Tools • SNMP protocol. • Perl (Backend). • PHP (Interface). • DOT ( Graphs ).
Learn From Project • SNMP protocol. • How to work on project. • How generally network layout. • Details of PERL, PHP,DOT.
Future Extension • Network Diagnostics • Analysis of traffic pattern. • Handling of Systems via Network. • More Advanced GUI.
References • Douglas R. Mauro and Kevin J.Schmidt, "Essential SNMP" , O'REILLY. • Rose, M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", RFC 1155, Performance Systems International and Hughes LAN Systems, May 1990. • Bruce Lowekamp, David R. O'Hallaron, Thomas R. Gross, " Topology Discovery for large ethernet Networks",Proceedings of SIGCOMM 2001. • Y Bejerano, Y Breitbart, M Garofalakis, R Rastogi , " Physical Topology Discovery for Large Multi-Subnet Networks", Proc. of IEEE INFOCOM, 2003.
References (contd.) • McCloghrie, K., and M. Rose, "Management Information Base for Network Management of TCP/IP-based Internets", RFC 1156, Hughes A Systems and Performance Systems International, May1990. • Case, J., M. Fedor, M. Schoffstall, and J. Davin, “The Simple Network Management Protocol", RFC 1157, University of Tennessee at Knoxville, Performance Systems International, Performance Systems International, and the MIT Laboratory for Computer Science, May 1990. • Y Breitbart, M Garofalakis, B Jai, C Martin, R. Rastogi, Avi Silberschatz, "Topology Discovery in Heterogeneous IP Networks: The NetInventory System", IEEE/ACM Transactions on Networking (TON), 2004
Difference between SNMP version • Version2 • Still in experimental phase. • some new mibs. • Version3 • future version. • strong authentication and private communication.
Diffrence between L2 and L3 switch • Layer 2 switches forward traffic based on physical network addresses. • Layer 3 switches read network addresses more closely, identifying network locations as well as the physical device.
Diffrence between Router and L3 switch • Packet-forwarding decisions based not only on physical address (such as MAC address) and IP address, but also on the application protocol being used.
ipRouteTable Query • snmptable -v $specifier $ip ipRouteTable • $Specifier = “.anshuman.” / “.anirudha.” • $ip = ip for query. • ipRouteTable Format • ipRouteDest| • diffrentmetric(4) • ipRouteNextHop • ipRouteType (direct,indirect). • ipRouteProto.