📄 rfc911.txt
字号:
routes should not be updated. In the current implementation alternate routesare not used.2.1.1 Incoming UpdatesEGP Updates are used to update the exterior routing table if one of thefollowing is satisfied: - No routing table entry exists for the destination network and the metric indicates the route is reachable (< 255). - The advised gateway is the same as the current route. - The advised distance metric is less than the current metric. - The current route is older (plus a margin) than the maximum poll interval for all acquired EGP neighbors. That is, the route was omitted from the last Update.If any exterior route entry, except the default route, is not updated by EGPwithin 4 minutes or 3 times the maximum poll interval, whichever is thegreater, it is deleted.If there is more than one acquired EGP neighbor, the Update messages receivedfrom each are treated the same way in the order they are received.In the worst case, when a route is changed to a longer route and the old routeis not first notified as unreachable, it could take two poll intervals toupdate a route. With the current poll interval this could be 4 minutes. UnderUnix 4.2 BSD TCP connections (Transmission Control Protocol) are closedautomatically after they are idle for 6 minutes. So this worst case will notresult in the automatic closure of TCP connections.2.1.2 Outgoing UpdatesOutgoing Updates include the direct and static networks from the interiorrouting table, except for the network shared with the EGP neighbor.The networks that are allowed to be advised in Updates may be specified atinitialization in EGPINITFILE. This allows particular routes to be excludedfrom exterior updates in cases where routing loops could be a problem. Anothercase where this option is necessary, is when there is a non-routing gatewaybelonging to a different AS which has not implemented EGP yet. Its routes mayneed to be included in the kernel routing table but they are not allowed to beadvised in outgoing updates.If the interior routing table includes other interior gateways on the networkshared with the EGP neighbor they are include in Updates as the appropriateRFC 911 6first hop to their attached networks.The distance to networks is set as in the interior routing table except if theroute is marked down in which case the distance is set to 255. At presentroutes are only marked down if the outgoing interface is down. The state of allinterfaces is checked prior to preparing each outgoing Update using theSIOCGIFFLAGS ioctl system call.Unsolicited Updates are not sent.2.2 Neighbor AcquisitionEGPINITFILE lists the addresses of trusted EGP neighbor gateways, which areread at initialization. These will usually be core gateways as only coregateways provide full internet routing information. At the time of writingthere were three core gateways on ARPANET which support EGP, CSS-GATEWAY,ISI-GATEWAY and PURDUE-CS-GW, and two on MILNET, BBN-MINET-A-GW and AERONET-GW.EGPINITFILE also includes the maximum number of these gateways that should beacquired at any one time. This is usually expected to be just one. If thisgateway is declared down another gateway on the list will then be acquiredautomatically in sufficient time to ensure that the current routes are nottimed out.The gateway will only accept acquisitions from neighbors on the trusted listand will not accept them if it already has acquired its maximum quota. Thisprevents Updates being accepted from possibly unreliable sources.The ability to acquire core gateways that are not on the trusted list but havebeen learned of indirectly via Update messages is not included because not allcore gateways run EGP.New acquisition Requests are sent to neighbors in the order they appear inEGPINITFILE. No more new Requests than the maximum number of neighbors yet tobe acquired are sent at once. Any number of outstanding Requests areretransmitted at 32 second intervals up to 5 retransmissions each at which timethe acquisition retransmission interval is increased to 4 minutes. Once themaximum number of neighbors has been acquired, unacquired neighbors withoutstanding Requests are sent Ceases. This approach provides a compromisebetween fast response when neighbors do not initially respond and a desire tominimize the chance that a neighbor may be Ceased after it has sent a Confirmbut before it has been received. If the specified maximum number of neighborscannot be acquired, Requests are retransmitted indefinitely to all unacquiredneighbors.2.3 Hello and Poll IntervalsThe Request and Confirm messages include minimum values for Hello and Pollintervals. The advised minimums by this and the core gateways are currently 30and 120 seconds respectively.RFC 911 7The received intervals are checked against upper bounds to guard againstnonsense values. The upper bounds are currently set at 120 and 480 secondsrespectively. If, they are exceeded the particular neighbor is considered badand not sent further Requests for one hour. This allows the situation to becorrected at the other gateway and normal operation to automatically resumefrom this gateway without an excess of unnecessary network traffic.The actual Hello and Poll intervals are chosen by first selecting the maximumof the intervals advised by this gateway and its peer. A 2 second margin isthen added to the Hello interval to take account of possible network delayvariations and the Poll interval is increased to the next integer ratio of theHello interval. This results in 32 second Hello and 128 second Poll intervals.If an Update is not received in response to a Poll, at most one repoll (samesequence number) is sent instead of the next scheduled Hello.2.4 Neighbor CeaseIf the EGP process is sent a SIGTERM signal via the Kill command, all acquiredneighbors are sent Cease(going down) commands. Ceases are retransmitted at thehello interval at most 3 times. Once all have either responded with Cease-acksor been sent three retransmitted Ceases the process is terminated.2.5 Neighbor ReachabilityOnly active reachability determination is implemented. It is done asrecommended in [Mills 84a] with a minor variation noted below.A shift register of responses is maintained. For each Poll or Hello commandsent a zero is shifted into the shift register. If a response (I-H-U, Updateor Error) is received with the correct sequence number the zero is replaced bya one. Before each new command is sent the reachability is determined byexamining the last four entries of the shift register. If the neighbor isreachable and <= 1 response was received the neighbor is consideredunreachable. If the neighbor is considered unreachable and >= 3 responses werereceived it is now considered reachable.A neighbor is considered reachable immediately after acquisition so that thefirst poll received from a core gateway (once it considers this gatewayreachable) will be responded to with an Update. Polls are not sent unless aneighbor is considered reachable and it has not advised that it considers thisgateway unreachable in its last Hello, I-H-U or Poll message. This preventsthe first Poll being discarded after a down/up transition. This is important asthe Polls are used for reachability determination. Following acquisition atleast one message must be received before the first Poll is sent. This is todetermine that the peer does not consider this gateway down. This usuallyrequires at least one Hello to be sent prior to the first poll. The discussionof this paragraph differs from [Mills 84a] which recommends that a peer beconsidered down following acquisition and Polls may be sent as soon as the peeris considered up. This is the only significant departure from theRFC 911 8recommendations in [Mills 84a].Polls received by peers that are considered unreachable are sent an Errorresponse which allows their reachability determination to progress correctly.This action is an option within [Mills 84a].When a neighbor becomes unreachable all routes using it as a gateway aredeleted from the routing table. If there are known unacquired neighbors theunreachable gateway is ceased and an attempt is made to acquire a new neighbor.If all known neighbors are acquired the reachability determination is continuedfor 30 minutes ([Mills 84a] suggests 60 minutes) after which time theunreachable neighbor is ceased and reacquisition attempted every 4 minutes.This is aimed at reducing unnecessary network traffic.If valid Update responses are not received for three successive polls theneighbor is ceased and an alternative acquired or reacquisition is attempted in4 minutes. This provision is provided in case erroneous Update data formats arebeing sent by the neighbor. This situation did occur on one occasion duringtesting.2.6 Sequence NumbersSequence numbers are managed as recommended in [Mills 84a]. Single send andreceive sequence numbers are maintained for each neighbor. The send sequencenumber is initialized to zero and is incremented before each new Poll (notrepoll) is sent and at no other time. The send sequence number is used in allcommands. The receive sequence number is maintained by copying the sequencenumber of the last Request, Hello, or Poll command received from a neighbor.This sequence number is used in outgoing Updates. All responses (includingError responses) return the sequence number of the message just received.2.7 Treatment of Excess CommandsIf more than 20 commands are received from a neighbor in any 8 minute periodthe neighbor is considered bad, Ceased and reacquisition prevented for onehour.At most one repoll (same sequence number) received before the poll interval hasexpired (less a 4 second margin for network delay variability) is responded towith an Update, others are sent an Error response. When an Update is sent inresponse to a repoll the unsolicited bit is not set, which differs from therecommendation in [Mills 84a].2.8 Inappropriate MessagesIf a Confirm, Hello, I-H-U, Poll or Update is received from any gateway (knownor unknown) that is in the unacquired state, synchronization has probably beenlost for some reason. A Cease(protocol violation) message is sent to try andreduce unnecessary network traffic. This action is an option in [Mills 84a].RFC 911 92.9 Default GatewayA default gateway may be specified in EGPINITFILE. The default route (net 0 inUnix 4.2 BSD) is used by the kernel packet forwarder if there is no specificroute for the destination network. This provides a final level of backup if allknown EGP neighbors are unreachable. This is especially useful if there is onlyone available EGP neighbor, as in the ISI case, Section 5.2.2.The default route is installed at initialization and deleted after a valid EGPUpdate message is received. It is reinstalled if all known neighbors areacquired but none are reachable, if routes time out while there are no EGPneighbors that are acquired and reachable, and prior to process termination.It is deleted after a valid EGP Update message is received because the defaultgateway will not know any more routing information than learned via EGP. If itwere not deleted, all traffic to unreachable nets would be sent to the defaultgateway under Unix 4.2 forwarding strategy.The default gateway should normally be set to a full-routing core gateway otherthan the known EGP neighbor gateways to give another backup in case all of theEGP gateways are down simultaneously.RFC 911 103. TESTINGA few interesting cases that occurred during testing are briefly described.The use of sequence numbers was interpreted differently by differentimplementers. Consequently some implementations rejected messages as havingincorrect sequence numbers, resulting in the peer gateway being declared down.The main problem was that the specification was solely in narrative form whichis prone to inconsistencies, ambiguities and incompleteness. The more formalspecification of [Mills 84a] has eliminated these ambiguities.When testing the response to packets addressed to a neighbor gateway'sinterface that was not on the shared net a loop resulted as both gatewaysrepeatedly exchanged error messages indicating an invalid interface. Theproblem was that both gateways were sending Error responses after checking theaddresses but before the EGP message type was checked. This was rectified bynot sending an Error response unless it was certain that the message was notitself an Error response.On one occasion a core gateway had some form of data error in the Updatemessages which caused them to be rejected even though reachability was beingsatisfactorily conducted. This resulted in all routes being timed out. Thesolution was to count the number of successive Polls that do not result invalid Updates being received and if this number reaches 3 to Cease EGP andattempt to acquire an alternative gateway.Another interesting idiosyncrasy, reported by Mike Karels at Berkeley, resultsfrom having multiple gateways between MILNET and ARPANET. Each ARPANET host hasan assigned gateway to use for access to MILNET. In cases where the EGP gatewayis a host as well as a gateway, the EGP Update messages may indicate adifferent MILNET/ARPANET gateway from the assigned one. When the host/gatewayoriginates a packet that is routed via the EGP reported gateway, it willreceive a redirect to its assigned gateway. Thus the MILNET gateway can keep
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -