📄 rfc911.txt
字号:
Network Working GroupRequest for Comments: 911 EGP GATEWAY UNDER BERKELEY UNIX 4.2 PAUL KIRTON University of Southern California, Information Sciences Institute Visiting Research Fellow from Telecom Australia Research Laboratories 22 August 1984 ABSTRACTThis report describes an implementation of the Exterior Gateway Protocol thatruns under the Unix 4.2 BSD operating system. Some issues related to localnetwork configurations are also discussed.Status of this Memo:This memo describes an implementation of the Exterior Gateway Protocol (EGP)(in that sense it is a status report). The memo also discusses some possibleextentions and some design issues (in that sense it is an invitation forfurther discussion). Distribution of this memo is unlimited. Funding for this research was provided by DARPA and Telecom Australia.RFC 911 i Table of Contents1. INTRODUCTION 11.1 Motivation for Development 11.2 Overview of EGP 22. GATEWAY DESIGN 42.1 Routing Tables 4 2.1.1 Incoming Updates 5 2.1.2 Outgoing Updates 52.2 Neighbor Acquisition 62.3 Hello and Poll Intervals 62.4 Neighbor Cease 72.5 Neighbor Reachability 72.6 Sequence Numbers 82.7 Treatment of Excess Commands 82.8 Inappropriate Messages 82.9 Default Gateway 93. TESTING 104. FUTURE ENHANCEMENTS 114.1 Multiple Autonomous Systems 114.2 Interface Monitoring 114.3 Network Level Status Information 114.4 Interior Gateway Protocol Interface 125. TOPOLOGY ISSUES 135.1 Topology Restrictions and Routing Loops 13 5.1.1 Background 13 5.1.2 Current Policy 145.2 Present ISI Configuration 15 5.2.1 EGP Across ARPANET 17 5.2.2 EGP Across ISI-NET 17 5.2.3 Potential Routing Loop 185.3 Possible Future Configuration 18 5.3.1 Gateway to UCI-ICS 18 5.3.2 Dynamic Switch to Backup Gateway 19 5.3.2.1 Usual Operation 19 5.3.2.2 Host Initialization 19 5.3.2.3 When Both the Primary and Backup are Down 20 5.3.2.4 Unix 4.2 BSD 206. ACKNOWLEDGEMENT 217. REFERENCES 22RFC 911 11. INTRODUCTIONThe Exterior Gateway Protocol (EGP) [Rosen 82; Seamonson & Rosen 84; Mills 84a]has been specified to allow autonomous development of different gateway systemswhile still maintaining global distribution of internet routing information.EGP provides a means for different autonomous gateway systems to exchangeinformation about the networks that are reachable via them.This report mainly describes an implementation of EGP that runs as a user * **process under the Berkeley Unix 4.2 operating system run on a VAX computer.Some related issues concerning local autonomous system configurations are alsodiscussed.The EGP implementation is experimental and is not a part of Unix 4.2 BSD. It isanticipated that Berkeley will incorporate a version of EGP in the future.The program is written in C. The EGP part is based on the C-Gateway codewritten by Liza Martin at MIT and the route management part is based on Unix4.2 BSD route management daemon, "routed".The EGP functions are consistent with the specification of [Mills 84a] exceptwhere noted.A knowledge of EGP as described in [Seamonson & Rosen 84; Mills 84a] isassumed.This chapter discusses the motivation for the project, Chapter 2 describes thegateway design, Chapter 3 is on testing, Chapter 4 suggests some enhancementsand Chapter 5 discusses topology issues.Further information about running the EGP program and describing the softwareis being published in an ISI Research Report ISI/RR-84-145 [Kirton 84].Requests for documentation and copies of the EGP program should be sent toJoyce Reynolds (JKReynolds@USC-ISIF.ARPA). Software support is not provided.1.1 Motivation for DevelopmentWith the introduction of EGP, the internet gateways will be divided into a"core" autonomous system (AS) of gateways maintained by Bolt, Beranek andNewman (BBN) and many "stub" AS's that are maintained by differentorganizations and have at least one network in common with a core AS gateway.The core AS will act as a hub for passing on routing information between_______________ * Unix is a trade mark of AT&T ** VAX is a trade mark of Digital Equipment CorporationRFC 911 2different stub AS's so that it will only be necessary for stub AS's to conductEGP with a core gateway. Further detail is given in [Rosen 82].At the time of this project there were 28 "non-routing" gateways in theinternet. Non-routing gateways did not exchange routing information butrequired static entries in the core gateway routing tables. Since August 1,1984 these static entries have been eliminated and previously non-routinggateways are required to communicate this information to the core gatewaysdynamically via EGP [Postel 84].At the USC Information Sciences Institute (ISI) there was a non-routing gatewayto the University of California at Irvine network (UCI-ICS). With theelimination of non-routing gateways from the core gateway tables it isnecessary to inform the core ISI gateway of the route to UCI-ICS using EGP.Also, we would like a backup gateway between ISI-NET and the ARPANET in casethe core ISI gateway is down. Such, a gateway would need to convey routinginformation via EGP. Details of the ISI network configuration are discussed inSection 5.2.Of the 28 non-routing gateways 23 were implemented by Unix systems, includingISI's. Also, ISI's proposed backup gateway was a Unix system. Thus there was alocal and general need for an EGP implementation to run under Unix. The currentversion of Unix that included Department of Defense (DoD) protocols wasBerkeley Unix 4.2 so this was selected.1.2 Overview of EGPThis report assumes a knowledge of EGP, however a brief overview is given herefor completeness. For further details refer to [Rosen 82] for the background toEGP, [Seamonson & Rosen 84] for an informal description, and [Mills 84a] for amore formal specification and implementation details.EGP is generally conducted between gateways in different AS's that share acommon network, that is, neighbor gateways.EGP consists of three procedures, neighbor acquisition, neighbor reachabilityand network reachability.Neighbor acquisition is a two way handshake in which gateways agree to conductEGP by exchanging Request and Confirm messages which include the minimum Helloand Poll intervals. Acquisition is terminated by exchanging Cease andCease-ack messages.Neighbor reachability is a periodic exchange of Hello commands and I-H-U (Iheard you) responses to ensure that each gateway is up. Currently a 30 secondminimum interval is used across ARPANET. Only one gateway need send commands asthe other can use them to determine reachability. A gateway sendingreachability commands is said to be in the active mode, while a gateway thatjust responds is in the passive mode.RFC 911 3Network reachability is determined by periodically sending Poll commands andreceiving Update responses which indicate the networks reachable via one ormore gateways on the shared network. Currently 2 minute minimum interval isused across ARPANET.RFC 911 42. GATEWAY DESIGNEGP is a polling protocol with loose timing constraints. Thus the only gatewayfunction requiring good performance is packet forwarding. Unix 4.2 already haspacket forwarding built into the kernel where best performance can be achieved.At the time of writing Unix 4.2 did not send ICMP (Internet Control MessageProtocol) redirect messages for misrouted packets. This is a requirement ofinternet gateways and will later be added by Berkeley.The EGP and route update functions are implemented as a user process. Thisfacilitates development and distribution as only minor changes need to be madeto the Unix kernel. This is a similar approach to the Unix route distributionprogram "routed" [Berkeley 83] which is based on the Xerox NS RoutingInformation Protocol [Xerox 81].2.1 Routing TablesA route consists of a destination network number, the address of the nextgateway to use on a directly connected network, and a metric giving thedistance in gateway hops to the destination network.There are two sets of routing tables, the kernel tables (used for packetforwarding) and the EGP process tables. The kernel has separate tables for hostand network destinations. The EGP process only maintains the network routingtables. The EGP tables are updated when EGP Update messages are received. Whena route is changed the kernel network tables are updated via the SIOCADDRT andSIOCDELRT ioctl system calls. At initialization the kernel network routingtables are read via the kernel memory image file, /dev/kmem, and copied intothe EGP tables for consistency.This EGP implementation is designed to run on a gateway that is also a host.Because of the relatively slow polling to obtain route updates it is possiblethat the host may receive notification of routing changes via ICMP redirectsbefore the EGP process is notified via EGP. Redirects update the kernel tablesdirectly. The EGP process listens for redirect messages on a raw socket andupdates its routing tables to keep them consistent with the kernel.The EGP process routing tables are maintained as two separate tables, one forexterior routes (via different AS gateways) and one for interior routes (viathe gateways of this AS). The exterior routing table is updated by EGP Updatemessages. The interior routing table is currently static and is set atinitialization time. It includes all directly attached nets, determined by theSIOCGIFCONF ioctl system call and any interior non-routing gateways read fromthe EGP initialization file, EGPINITFILE. The interior routing table could infuture be updated dynamically by an Interior Gateway Protocol (IGP).Maintaining separate tables for exterior and interior routing facilitates thepreparation of outgoing Update messages which only contain interior routinginformation [Mills 84b]. It also permits alternative external routes to theinternal routes to be saved as a backup in case an interior route fails.Alternate routes are flagged, RTS_NOTINSTALL, to indicate that the kernelRFC 911 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -