1
2
3
4 Internet Routing Seminar
- Adj-RIB-In: store routing inormation that has learned via inbound UPDATE msg input to the Decision Process - RIB-Loc: routes selected by the Decision Process applying local policies routes used by this BGP speaker - Adj-RIB-Out: routes selected or advertisement by the Decision Process advertisement made via outbound UPDATE msg - Implementation does not need to keep three copies (save space) 5
5
0 31 - Present in ALL BGP messages. Marker Length Type Marker: Some value that the receiver can predict. - detect loss o sync between peers - authenticate incoming BGP messages Length: Length o the message, including this header - necessary to locate the next message in the TCP date stream Type: 1 - OPEN 2 - UPDATE 3 - NOTIFICATION 4 - KEEPALIVE 6
0 31 Version My AS Number Hold Time BGP Identiier Opt Par Len Optional Parameters - First message sent by each peer - Must be acked with KeepAlive msg - Suggested value or Hold Timer: minimum amount o time between Keepalive and/or Update messages - BGP identiier: a unique IP address or each speaker - I optional parameters present, then Opt Par Len > 0 7
0 31 Par Type Par Length Param data Only one parameter speciied: Authentication inormation 0 31 Auth Code Auth Data Auth Code: indicates which authentication mechanism will be used Auth Data: variable length that can be used as a parameter to the authentication mechanism - All subsequent messages should be checked or the expected Marker 8
Uneasible Routes Length (2 bytes) Withdrawn Route List (variable) Total Path Attribute Length (2 bytes) Path Attributes (variable) Network Reachability List (variable) - advertise at most a single easible route - withdraw multiple uneasible routes - all path attributes apply to all destinations carried in the message List o IP address preixes: - preix encoded as a tuple <length (in bits), preix> - enables classless routing 9
4 types: - well-known mandatory: must be present in all UPDATE msg - well-known discretionary: must be supported by any implementation - optional transitive: need not be supported - optional non-transitive: need not be supported - unrecognized transitive parameter is passed as non-transitive - unrecognized non-transitive parameter is not passed - Path attributes should be ordered by attribute type 10
- Origin (mandatory): where this route was learned - AS_Path (mandatory): sequence or set o ASes traversed - Next_Hop (mandatory): IP address o the next border router - Multi_Exit_Disc (opt non-trans): select among paths rom the same AS - Local_Pre (discretionary): used only in ibgp to inluence path selection - Atomic_Aggregate (discretionary): selection o a more general route - Aggregator (opt trans): used to indicate that aggregation is being perormed - No other path attribute deined in this RFC! 11
Goal: to avoid the peer s Hold Timer to expire - periodic messages to keep liveness o connection (KeepAlive timer) - Message consists o the header only - KeepAlive timer is set to 1/3 (Hold Timer), but can be conigured. reset every time a KeepAlive/UPDATE message is sent - Hold Timer calculated during session initialization (OPEN message) reset every time a KeepAlive/UPDATE message is received 12
- Sent when any error is detected - BGP connection (and TCP) is closed immediately ater 0 31 Err Code Err subcode Data Error Codes: 1 - Message header error (unexpected marker, bad type, bad length) 2 - OPEN Message error (unacceptable Hold Timer, bad peer AS,...) 3 - UPDATE message error (missing mand. attrib, invalid origin,...) 4 - Hold Timer expired 5 - Finite State Machine Error (error detected by the FSM) 6 - Cease (used to close connection without any atal errors) 13
Two parallel TCP connections between peers Solution: close one o them. - BGP identiier ield in the OPEN message is used to veriy and decide which connection to close (smallest BGP identiier) - collision with connections in the established state are resolved by closing the new connection 14
- Contains routes withdrawn: - remove these rom RIB-In (matching the IP preix) - start Decision Process - Contains easible route: - place new route in RIB-In (taking appropriate actions) - start Decision Process - Decision Process: - selects routes or subsequente adverstisement - applies local policies to RIB-In - select routes to be advertised internally and externally - route aggregation 15
3 phases: (can be implemented as three dierent processes) 1) calculate degree o preerence or each route advertise routes with higher degree o preerence internally 2) choose the best route o all those available install route in Loc-RIB 3) updates the RIB-Out based on Loc_RIB disseminate routes in RIB-Out to each external peer route aggregation optionally applied 16
Internet Routing Seminar - One FSM per BGP connection - Ensures correctness, enables error detection Established Open_Conirm start TCP open OPEN recv Open_Sent KEEPALIVE recv Connect UPDATE recv KEEPALIVE recv Idle TCP open TCP close TCP ailed Active ConnectRetry timer exp NOTIFICATION recv 17
Total o 5 timers: - Hold Timer: time between receiving o KEEPALIVE/UPDATE msg (90s) - KeepAlive Timer: time between sending KEEPALIVE msg (30s) - ConnectRetry Timer: time between successive TCP connection atempts (120s) Control Routing Traic Overhead - Min_Route_Advertisement Timer (30s): - time between 2 consecutive UPDATE msg to a peer - does not apply to ibgp (ast convergence) - does not apply to withdraw - does not limit the rate o route selection - Min_AS_Origination_Interval Timer (15s): - time between 2 consecutive UPDATES that relect changes inside its own AS 18
- Jitter is introduced to minimize bursts in BGP traic Idea: spread out the transmission o UPDATE messages - The amount o jitter: Uniorm distribution [0.75, 1.0] multiplied by the actual timer - Applies only to UPDATE timers 19
Discussion about BGP. Questions??? 20