⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc911.txt

📁 中文RFC 384 篇
💻 TXT
📖 第 1 页 / 共 3 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:15222775@61.(15222775@61.  hbzzx2001@yahoo.com.cn )
译文发布时间:2002-1-18
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。

BERKELEY UNIX 4.2下的EGP网关
(RFC911——EGP GATEWAY UNDER BERKELEY UNIX 4.2)


PAUL KIRTON
南加州大学信息科学学会
为来自澳大利亚电信研究实验室的访问研究员
                                22  August 1984


摘要

本报告描述了运行在 4.2BSD Unix操作系统上的外部网关协议的实现。  还对某些与局域
网配置相关的问题也进行了论述。

这个备忘录情况∶

此备忘录描述了外部网关协议(EGP)的实现(在这个意义上它是一个状态报告)。备忘录
也论述了某些可能的延伸和设计问题(在这个意义上它是更进一步讨论的请柬)。这个备忘
录的分发是不受限制的。

    这个研究的基金基金是由国防高级研究项目管理局和澳大利亚电信公司供应的。
 

目录
1. 介绍	2
1.1开发动机	3
1.2外部网关协议综述	4
2. 网关设计	4
2.1路由表	5
2.1.1输入更新	5
2.1.2输出更新	6
2.2邻居获取	7
2.3 Hello和Poll轮询间隔	7
2.4邻居中止	8
2.5邻居可达性	8
2.6序号	9
2.7过多命令的处理	9
2.8不适当的Messages	9
2.9缺省网关	10
⒊测试	10
⒋将来的改进	11
4.1多独立系统	11
4.2接口监控	11
4.3网络级状态信息	11
4.4内部网关协议接口	12
⒌拓扑问题	12
5.1拓扑约束和路由回路	12
5.1.1背景	12
5.1.2现行政策	13
5.2当前ISI配置	14
5.2.1 EGP越过阿帕网	16
5.2.2 EGP越过ISI - NET	17
5.2.3潜在路由回路	17
5.3可能的未来配置	18
5.3.1去往UCI - ICS的网关	18
5.3.2动态转到备份网关	18
5.3.2.1常用的操作	18
5.3.2.2主机初始化	19
5.3.2.3什么时候原始而且备份两者都停机	19
5.3.2.4 Unix 4.2 BSD	19
⒍致谢	20
⒎参考资料	20
      
1. 介绍

外部网关协议(外部网关协议)[ Rosen 82;Seamonson & Rosen 84; Mills 84a]
已经允许不同的网关体系的自主开发虽然国际互联网络路由选择信息仍然保持全球性分布。
EGP为不同的自治网关系统交换经由他们可以达到的网络的信息提供一些方法。。

本报告主要叙述在一VAX计算机上运行的Berkeley Unix 4.2操作系统上的当做一个用户进
程工作的EGP的实现。
还对某些涉及局域自治系统配置相关的问题也进行了论述。

该EGP实现是试验性的而不是Unix 4.2 BSD的一部分。 可以预料伯克来将来可能加入一
个EGP版本。

该程序是由C语言编写。 EGP部分是以Liza Martin在麻省理工学院写成的C - Gateway程
序代码为基础,而且路由管理部分以Unix 4.2 BSD路由管理守护进程" routed "为基础。

除非特别声明,该EGP功能与[ Mills 84a]的规范一致。

假定已具有在[ Seamonson & Rosen 84; Mills 84a]叙述的EGP知识。。

本章论述该工程的动机,第2章叙述网关设计,第3章为测试,第四章建议一些改进并且第5
章论述拓扑结构问题。

关于运行该EGP程序和该软件说明的详细资料刊登于ISI研究报告ISI/RR - 84 - 145 [ Kirton 
84]。

该EGP程序的copies和文本的请求应该发送给Joyce Reynolds ( JKReynolds@_USC - 
ISIF.ARPA)。没有提供软件支持。


1.1开发动机

与EGP的介绍相一致,internet网关被分成由Bolt, Beranek和Newman ( BBN)维护的"核心"
自治系统( AS)和许多由不同的组织维护的最少具有一个与一个核心AS网关共有的网络的
"stub " AS。
该核心AS可能充当传递路由选择信息的集线器

_______________

  *
   Unix is a trade mark of AT&T
  * *
    VAX是Digital Equipment Corporation的商标
不同的stub AS ' s以便它仅仅需要stub AS能与核心网关一起执行EGP。 更进一步的细节
在[ Rosen 82]中给出。

在本工程中,在internet中曾有28个" non - routing "网关。  Non - routing网关不能交换路
由选择信息,但是需要在核心网关路由选择表中的静态的记录。   1984年八月1日以后,
这些静态表目已经删除并且先前地non - routing网关被要求动态地经由EGP [ Postel 84]传达
本消息给核心网关。

在该USC信息科学研究所( ISI)曾有一个non - routing网关去往处于Irvine网络( UCI - ICS)
上的加利福尼亚大学。  由于从核心网关列表中消除了non - routing网关,必须通知该路由
到UCI - ICS的核心ISI网关使用EGP。

还有,万一该核心ISI网关当机的话我们想要在ISI - NET和ARPANET之间具备一个备份网
关。 如此以来,网关可能需要经由EGP运输路由选择信息。 ISI网络配置的细节在5.2节
进行论述。

Of the 28 non-routing gateways 23 were implemented by Unix  systems,  including
ISI's.  还有, ISI的被提议的备份网关是UNIX操作系统。因此存在局部和普遍的需要外部网
关协议实现运行在 Unix下面。 当前包括Department of Defense ( DoD)协议的UNIX操作系
统的版本是Berkeley Unix 4.2 ,所以它中选。


1.2外部网关协议综述

本报告假定了解外部网关协议,然而为完整起见这里给出一个简短概观。为了解EGP背景详
情请查阅[ Rosen 82], [ Seamonson & Rosen 84]提供了非正式的描述,并且[ Mills 84a]提供了
进一步格式说明和实现细节。

EGP通常在不同AS中的且具有有一个公用网络的网关即邻居网关之间传输。
公用网络即邻居网关。

EGP包含三个程序,邻居获得,邻居可达性和网络可达性。

邻居获得是一次双向握手,在此过程中网关对通过交换请求和确认报文(包括最少Hello和
Poll间隔值)来进行传导达成一致。    通过交换停止和停止确认报文终止获取过程。

邻居可达性是一个Hello commands和确保各网关正在运行的I - H -U ( I heard you)回应周期
式交换。。 当前30秒最小间隔被用于越过ARPANET。 只有一个网关必须发送一些命令,
其他的网关可以利用这些命令判断可达性。  
正发送可达性命令的网关叫做处于主动态,而正回答的网关叫做处于被动态。
网络可达性由周期地发送Poll commands和接受表明该网络经由一或多个在共享网络上的网
关可以达到的更新应答来判断。 当前2分钟最小间隔被用于越过ARPANET。

2. 网关设计

EGP是一种具有松散定时约束的polling协议。 因此,唯一要求具有较高性能的功能是包转
发。  Unix 4.2已经将包转发技术嵌入到内核内核内部,在那里可以达到最佳性能。
在编写Unix 4.2的时候,没有为误编路由的包发送ICMP ( Internet控制消息协议)重定向报
文。 
这是一个必要ofinternet网关并且Berkeley以后将加入。

EGP和路由更新功能作为一个用户进程实现。    因为只有微小的更改需要加入Unix内核,
这简化了开发和分配。  这个方法与基于Xerox NS路由信息协议( Routing Information 
Protocol [ Xerox 81])的Unix路由分配程序" routed " [ Berkeley 83]的方法是类似的。


2.1路由表

一个路由由一个目的网络号组成,相邻网关的地址用在直接相连的网络上,而且用到达目的
网络的网关站数作为距离的公制。

存在两组路由表,内核列表(被用于包转发技术)和EGP进程表。 该内核已经为主机和网
络目的地设立了独立的列表。  EGP进程仅维护网络路由表。 当接到EGP更新报文时EGP
列表被更新。  当一个路由被更改时核心网络列表通过SIOCADDRT和SIOCDELRT ioctl
系统调用被更新。 在初始化时为了保持一致性,内核网络路由表由内核存储映象文件 
/dev/kmem读取并被拷贝到EGP列表中。

此EGP的实现被设计成在网关(也是一个主机)上运行。
因为用polling获得路由更新相对较慢,在通过EGP通知EGP进程之前主机通过ICMP重
定向收到路由变更的通告是可能的. 重定向直接更新内核列表。 EGP进程在一个生疏的插
座上侦听重定向报文并且更新它的路由表以维护它们与内核的一致性。

EGP进程和路由表被当做两个单独的列表进行维护,一个为外部路由( via different AS网关)
而一个为内部路由(通过此AS的网关)。  外部路由表通过EGP更新报文更新。 内部路由
表当前是静态的并且在初始化时设定。 它包括全部直接连接的网络,通过SIOCGIFCONF 
ioctl系统调用和任何内部非routing网关读自外部网关协议初始化文件, EGPINITFILE来确
定。 将来内部路由表可以被内部网关协议( IGP)动态地更新.

为外部和内部路由维护单独的列表简化了仅包含内部路由选择信息[ Mills 84b]的传出更新
报文的准备。  在内部路由失败情况下,还允许选择作为内部路由备份保存的外部路由进行
替换。
候选路由标记以RTS_NOTINSTALL从而表明该内核路由将不会被更新。 在当前的实现中
候选路由不被使用。

2.1.1输入更新

EGP更新用来更新外部路由表,如果满足下列中的一个:

   -不存在目的网络的路由表项而且公制表明该路由是可以达到的。

   -被报告的网关与当前路由相同。

   -被报告的距离公制小于当前公制。

   当前路由比全部已经获取的EGP邻居极限轮询间隔旧。  简而言之,该路由被来自上次
的更新所忽略。

除了省缺路由之外,如果任一外部路由表项在4分钟或3次最大轮询间隔(任何一个较大的)
时间内没有被EGP更新,该外部路由表项被删除。

如果获得了多个EGP邻居,对来源于他们的更新报文按照接收的先后顺序做相同的处理。

在最坏的情况中,即一个路由变成时间比较久的路由而且该较旧的路由最初没有被公布为不
可达时,可以使用两个轮询间隔去更新一个路由。 With the current poll interval this could be 4 
minutes. 在Unix 4.2 BSD下,TCP连接(传输控制协议)在空闲6分钟之后被自动地关闭。 所
以最坏的情况也不会导致TCP连接自动结束。o

2.1.2输出更新

输出更新包括来自内部路由表的直接地和静态网络,除了与 EGP邻居共享的网络之外。。

允许在更新中被通知的网络可以在初始化时用EGPINITFILE规定。 这些允许精确的路由以
排除来自(可能的)路由回路情况下的外部更新。 其它必须有这个选项的情况是,非路由网
关属于一个不同的AS而这个AS还没有实现EGP时。 它的路由可能需要被归入核心路由
表但是他们没有被允许在输出更新中被告知。

如果内部路由表包括其他的在与 EGP邻居共享的网络上的内部网关,它们将被作为他们所
连网络的合适初站而包含在更新中。

到网络的距离按照内部路由表进行设置,除非路由标志为down,而在这样情况下距离设置
为255。  目前路由仅在输出接口当机时才被标记为down。 为了给各输出更新做准备,预
先用SIOCGIFFLAGS ioctl系统调用校验所有接口的状态。

未经请求的更新不予发送。


2.2邻居获取

EGPINITFILE列出了可信赖的EGP邻居网关的地址,在初始化时读取。  这些通常是核心
网关,因为只有核心网关提供完整的internet路由选择信息。  编写的时候在阿帕网上存在
三个核心网关支持EGP CSS - GATEWAY, ISI - GATEWAY和PURDUE - CS - GW,而且两个
在MILNET, BBN - MINET - A - GW和AERONET - GW上。

EGPINITFILE还包含每次所能获得的网关的最大值。  期望值通常为一。 如果这个网关被
宣布为down,另一个列表中的网关于是在充分的时间内将被自动地获取以确保当前路由不
超时。

该网关将仅接受来自在可信赖列表中邻居的获取,而且如果它已经获得它的最大量限额就不
会接受他们。 这个防止接受来自可能不可靠的来源的更新。

因为不是所有核心网关都运行EGP,所以不包含获得核心网关不在信任列表中的但是已经
通过更新报文间接地获悉的核心网关的功能。

新的获取请求被发给邻居,为了使他们出现在EGPINITFILE中。  新的请求如果不大于还
有待于获得的邻居的最大数的话就被立即发送。  许多突发请求用32秒间隔最多重传5次,
这时候获取重发间隔增加到4分钟。 只要已经获得了最大数量的邻居,具有突出的请求的

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -