The Implementation of Error Checking and Optional Parameter Negotiation for BGP-4 in a Network Simulator Naomi Ko 95301-1394 Communication Networks Laboratory Simon Fraser University 2004 Sep 01
Presentation Overview � Acknowledgements � Introduction � Background Knowledge � Project Contribution � Simulation Results � Future Enhancements � Conclusion � References � Questions 2004 Sep 01 2
Acknowledgements � Dr. Ljiljana Trajkovi ć � Dr. Shahram Payandeh � Tony D. Feng � Nenad Laskovi ć � Jenny Koo and Mary Kwong � Communication Networks Laboratory � … several people behind-the-scenes 2004 Sep 01 3
Introduction � Internet: a cluster of ASes � Within AS: Interior Gateway Protocols � Among ASes: Exterior Gateway Protocols � Scalability and performance are key � Interest in academic research community to investigate behaviour of networks � Development of network simulation tools � SSFNet, OPNET, ns-2 � Improved accuracy of a network model better reflects actual behaviour 2004 Sep 01 4
Background Knowledge � Border Gateway Protocol � Exterior Gateway Protocol � BGP-4 is the de facto protocol � Operation using 4 message types � OPEN � UPDATE � NOTIFICATION � KEEPALIVE 2004 Sep 01 5
Background Knowledge (cont’d) � OPEN Process � 3-way handshaking procedure n0 n1 T C P connection T C P connection established established *Idle* *Idle* OP E N OP E N *OpenS ent* *OpenS ent* KE E P AL IV E KE E P AL IV E *OpenC onfirm* *OpenC onfirm* *E stablished* *E stablished* ~ B G P session established ~ 2004 Sep 01 6
Background Knowledge (cont’d) � OPEN Process � failed process: n0 deems parameter unacceptable n0 n1 T CP connection T CP connection established established *Idle* *Idle* OP E N OP E N *OpenS ent* *OpenS ent* NOTIF ICATION KE E P AL IVE *Idle* *OpenConfirm* T CP connection closed *Idle* T CP connection ~ BGP session NOT established ~ closed 2004 Sep 01 7
Background Knowledge (cont’d) � BGP Simulation Models � SSFNet model SSF.OS.BGP4 by Brian J. Premore [14] � Java-based model � ns-2 model ns-BGP by Tony D. Feng [9] � C++/OTcl model � Ported over from SSFNet model 2004 Sep 01 8
Project Contribution � Original project plan out the window… � Assumptions made to simplify SSFNet model during implementation � Carried over to ns-BGP � Error checking � OPEN message Optional Parameter � Negotiation of optional parameters 2004 Sep 01 9
Project Contribution: Error Checking � BGP message header � Common 19-byte header 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Marker L ength T ype � Marker: used for Authentication Information � Length: total length of BGP message � Type: OPEN, UPDATE, NOTIFICATION, KEEPALIVE 2004 Sep 01 10
Contribution: Error Checking (cont’d) � OPEN message 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Version My Autonomous System Hold T ime BGP Identifier Opt Param L ength Optional Parameters � Handshaking information � Identification � Desired session parameters 2004 Sep 01 11
Contribution: Error Checking (cont’d) � UPDATE message 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Unfeasible R outes L ength Withdrawn R outes (variable length) T otal Path Attribute L ength Path Attributes (variable length) Network L ayer R eachability Information (variable length) � Unfeasible Routes � Path Attributes (for new routes) � Network Layer Reachability Information (NLRI) 2004 Sep 01 12
Contribution: Error Checking (cont’d) � NOTIFICATION message 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 E rror Code E rror Subcode Data (variable length) � Sent when error occurs � BGP and underlying TCP connections closed � KEEPALIVE message � No message body 2004 Sep 01 13
Contribution: Optional Parameters � OPEN message Optional Parameter 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Parameter Type Parameter L ength Parameter Value (variable length) � Type 1: Authentication Information � Contains data for specific authentication mechanism � Type 2: Capabilities Advertisement � Communicates new features to employ during BGP peering session 2004 Sep 01 14
Contribution: Optional Parameters (cont’d) � Type 1: Authentication Information 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Authentication Code Authentication Data (variable length) � Used to verify identity of sender or to detect loss of synchronisation between peers � Authentication Data contains algorithm for calculating value of Marker field � Not yet implemented by any vendors! 2004 Sep 01 15
Contribution: Optional Parameters (cont’d) � Type 2: Capabilities Advertisement 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Capability Code Capability L ength Capability Value (variable length) � Used to introduce new capabilities into BGP � Allows BGP speakers to advertise supported capabilities � Negotiated to determine which capabilities to employ during peer session 2004 Sep 01 16
Contribution: Negotiation of Parameters n0 n1 n0 does not n1 supports T CP connection T CP connection established established support A capability A *Idle* *Idle* Sent with no Sent with OP E N OP E N *OpenS ent* *OpenS ent* parameters capability A NOTIF ICATION KE E P AL IVE *Idle* *OpenConfirm* T CP connection closed *Idle* ~ B GP session NOT established ~ T CP connection closed T CP connection T CP connection reestablished reestablished *Idle* *Idle* Sent with no Sent with no OP E N OP E N *OpenS ent* *OpenS ent* parameters parameter KE E P AL IVE KE E P AL IVE *OpenConfirm* *OpenConfirm* *E stablished* *E stablished* 2004 Sep 01 17 ~ B GP session established ~
Simulation Results: Error Checking � “Unfortunately” the simulator is ideal! � Data is in fixed structure (object class) � Any message sent created directly from object � Any message received parsed into an object � Errors were hard-coded to verify that the error check correctly detected the error � Can’t show an entire scenario 2004 Sep 01 18
Simulation Results: Error Checking (cont’d) � Hold Time is invalid OPEN message Peer has received: Mesg type = 1, length = 29 BGPHeader: 255-255-255-255-255-255-255-255-255-255-255-255-255-255-255-255-0-29-1 OpenMesg: 4-0-0-0-2-10-0-0-1-0 Checking if Marker is all 1's Hold Time time: 0.0500151 peer return_ip: 10.0.1.1, peer ip_addr: 10.0.0.1 event_type: *RecvOpen* connection_state: *OpenSent* non-zero Hold Timer value is less than the minimum recommended value 3s (current_val = 2 s) BGP session with peer 10.0.0.1 closed. 2004 Sep 01 19
Simulation Results: Error Checking (cont’d) � Marker field is invalid OPEN message Peer has received: Mesg type = 1, length = 29 BGPHeader: 255-255-255-255-255-255-255-255-255-255-10-255-255-255-255-255-0-29-1 OpenMesg: 4-0-0-0-90-10-0-0-1-0 Checking if Marker is all 1's Not 0xFF ! The Marker field is not as expected. BGP session with peer 10.0.0.1 closed. 2004 Sep 01 20
Recommend
More recommend