我们已经发现,同一个路由器一面在使用IGP来获取本自治系统内部的选路信息,一面又在使用EGP向其他自治系统通告路由信息。在理论上,编制一个软件实现这两种协议,使之具有无需人工干预收集路由和通告路由的能力是很容易的事。但由于技术和政策上的阻碍,实践起来就非常困难。
从技术上说,IGP协议与RIP和HELLO一样都是选路协议。路由器使用这样的协议,请求获得本自治系统内其他路由器的信息以便更新其选路表。与内部路由器协议不同,EGP除通常的选路表之外,还要作其他工作。运行EGP的路由器与其他自治系统之间进行可达信息的通信,是独立于自己的选路表。这样,实现RIP的一个UNIX程序routed,通告从本地选路表得到的信息,并在收到更新信息时更改本地选路表。它信赖运行RIP的机器送来的数据是正确的。相反,实现EGP的程序不通告从本地选路表获得的路由;它为网络的可达信息保留了一个独立的数据库。
运行EGP的路由器在通告可达信息时,必须注意仅能传播那些已被授权通告的路由,否则将会影响互连网络的其他部分。例如,某自治系统中的路由偶尔广播了一条实际上不存在的到珀杜大学的距离为0的路由,RIP协议会使其他路由器认可这条路由并把到珀杜大学的通信流量转给出错的路由器,这样,这些路由器所在的自治系统的通信流量就不能到达珀杜大学。如果EGP把这种错误广播到自治系统之外的机器上,那么互连网络上的某些部分就到达不了珀杜大学了。
gated程序把多种IGP和EGP按照一系列限制对外部路由器广播路由的规则,组合起来形成一个整体。例如,gated可以像routed程序那样接收RIP报文并修改本地机的选路表,它使用EGP通告那些从本自治系统可达的路由。这些规则允许管理人员明确指定那些网络可以通告,那些不行,该如何通告到达该网络的距离。因此,尽管gated程序不是IGP协议族的一员,它在选路过程中仍起了重要的作用,它说明了建立自动机制来链接IGP和EGP而不牺牲安全性能是可行的。
Gated程序的另一个性能就是实现了距离度量标准的转换。具体地说,在自治系统内部的路由器通告路由时使用的距离值在固定的限度(如128)之下。而外部路由器在通告跨越自治系统而尚未超出自治系统联盟的路由时所使用的距离度量,要转换到较高的范围(即128到191),这样的转换机制人为地提高了到自治系统外部的路由的费用,从而使得流量尽量在自治系统内部流动。最后,对于那些超出自治系统联盟的路由,其距离值被转换到更高的范围(即192到254)以便尽量使得流量在自治系统联盟内流动。由于gated程序提供了自治系统之间的接口,可以容易地实现这样的转换操作。