详细讲解路由技术的基本知识
最简单的网络可以想象成单总线,每台计算机都可以通过向总线发送数据包来相互通信,但随着网络中计算机数量的增长,这是不可行的,并且会出现许多问题。1。带宽资源耗尽。
2,每台计算机都浪费大量时间处理无关的广播数据。
3,网络变得难以管理,任何错误都可能导致整个网络瘫痪。
4,每台计算机都可以监控其他计算机的通信。
网络分割可以解决这些问题,但同时必须提供一种机制,使不同网段的计算机能够相互通信,这通常涉及到一些ISO在网络协议层中有选择地在网络中传输数据,我们看一下网络协议层和路由器的位置。
可以看出,路由器位于网络层,本文假设网络层协议是IPv4,因为这是最流行的协议,所涉及的概念类似于其他网络层协议。
路由和桥接
路由相对于2层的桥接/交换是高层次的概念,不涉及网络的物理细节。在路由网络,每个主机具有相同的网络层地址的格式(如IP地址),以及它是否运行在以太网、令牌环、FDDI网络或广域网。层地址通常由两部分组成:网络地址和主机地址。
网桥只能连接到相同(或类似)网络的数据链路层,路由器也不同。只要主机使用相同的网络层协议,它就可以连接任何两种网络。
两。连接网络层和数据链路层
在网络层为数据链路层,以便他们能够互通,为需要;胶;protocol.arp(地址解析协议)用于映射网络层(3层)地址到数据链路层(2层)地址,而RARP(反向地址解析协议)是相反的。
虽然ARP的定义不是网络层协议,它通常用于解析IP地址;最常见的数据链路层以太网。所以下面的例子,ARP和RARP是基于IP和以太网,但要注意这些概念的其他协议都是一样的。
1、地址解析协议
网络层地址是网络管理员定义的抽象映射,它不关心哪个数据链路层协议是下层,而网络接口只能根据2层地址进行通信,而2层地址是通过ARP从3层地址获得的。
不发送每个包需要一个ARP请求,而响应被缓存在本地ARP表中,从而减少了网络中的ARP包,ARP的维护很容易,是一个比较简单的协议。
2。简介
如果接口A想把数据发送到接口B,并且只知道B的IP地址,它必须首先找到B的物理地址,它发送ARP广播请求B的物理地址,B包含IP地址。在接收到广播之后,接口B响应其物理地址到无线电。
值得注意的是,虽然所有的接口接收信息,只有B应要求,保证响应的正确性和避免了过期的信息。需要注意的是,当A和B不在同一段重要的,一个发送一个ARP请求给下一跳路由器而不是直接发送到B接收ARP分组处理后,我们应注意到主机,存储接收ARP请求本地ARP表。当一个想与B沟通时,B也可能需要与A交流。
3,IP地址冲突
ARP最常见的问题是IP地址冲突,这是由两个不同的主机IP地址引起的。在任何互连网络中,IP地址必须是唯一的。此时,接收到两个ARP响应,并分别指出不同的硬件地址。这是一个严重的错误,没有简单的解决方案。
为了避免这种错误,当接口A最初测试时,它发送一个包含IP地址的ARP请求。如果没有收到响应,则假定IP地址未被使用。我们假设接口B已经使用IP地址,然后B发送ARP响应。A可以知道IP地址已经被使用了,它不能再使用IP地址,但是返回错误信息,所以还有另外一个问题。假设主机C包含IP地址的映射,其映射到B的硬件地址接收接口的ARP广播后,它会更新ARP表指为A的硬件地址来解决这个错误,B发送一个ARP请求广播又使主机C更新它的ARP表又指向B的硬件地址。此时,网络的状态恢复到以前的状态。C可能将IP包发送给发送给B的IP,这是不幸的。然而,由于IP提供无担保的传输,不会有大问题。
4。管理ARP缓存表
ARP缓存表是由IP地址索引的成对的列表,可以用命令ARP来管理表,它的语法包括:
将静态表项添加到表中——ARP
从表中删除表项——ARP d
显示表项——ARP
ARP表中没有手动添加的动态表项通常在一段时间内自动删除,而这个周期的长度由特定的TCP/IP实现来确定。
5。使用静态ARP地址
静态ARP地址的典型应用是建立独立的打印服务器,它通常被配置为通过telnet,但首先他们需要一个IP地址。这是告诉设备该设备没有明显的方式,好像只能设置它的串行端口。然而,要找到一个合适的终端和串行电缆很不方便,设置波特率,奇偶校验等。
如果我们要设置IP地址P-IP到打印服务器,我们知道在P-hard工作站创建一个静态ARP表映射到P-hard P-IP,因此硬件地址,虽然打印服务器不知道自己的IP地址,但都指向P-IP数据将被发送到p-hard.we现在可以远程登录到P-IP并配置其IP地址,然后删除静态ARP表项。
有时打印服务器中配置的子网,它是用来在另一个子网,这是类似于以上。假设其IP地址P-IP,我们分配一个临时的IP地址t-ip到网络,在工作站上创建一个临时的ARP表项,地图t-ip到P-hard,然后telnet t-ip,并给打印服务器的IP地址登录。然后你可以使用它在另一个子网,不要忘记删除静态ARP表项。
6。代理ARP
代理ARP可以用来避免在每个主机上配置路由表。这在使用子网时特别有用,但它指出并不是所有的主机都能理解子网,基本思想是,即使ARP请求发送到子网上的主机,ARP代理服务器(通常是网关)也响应网关的硬件地址。
代理ARP简化了主机的管理,但增加了网络流量(不太明显),并且可能需要较大的ARP缓存。网络中的每一个IP地址都是由一个表项创建的,它被映射到网关的硬件地址,在主机使用代理ARP的视图中,世界就像一个没有路由器的大型物理网络。
三,IP地址
在路由网络层协议中,协议地址必须包含两部分信息:网络地址和主机地址,最明显的存储方式是使用两个独立的域,因此必须考虑两个域的最大长度。一些协议,如IPX,都是这样的。他们在中小网络中工作得很好。
另一种方法是减少主机地址区域的长度,例如24位网络地址和8位主机地址,这样就有了更多的网段,但每个网段中的主机数量非常小,因此,对于256多个主机网络,我们必须分配多个网段。问题是许多网络给路由器造成无法承受的负担。
IP将网络地址和主机地址封装在一个32位域中。有时主机地址部分很短,有时很长,所以可以有效地利用地址空间,减少IP地址的长度,网络的数量也不多。
1,主机和网关
主机和网关之间的差异通常会导致混淆,这是由于主机含义的改变。在RFC(1122 3和1009)中,它被定义为:
主机是连接到一个或多个网络的设备。它可以从任何网络发送和接收数据,但从不将数据从一个网络传输到另一个网络。
网关是连接到多个网络的设备,它有选择地将数据从一个网络传输到另一个网络。
换句话说,过去的主机和网关的概念被人为地区分开,当计算机不能够被用来作为一个主机同时网关。主机是用户的计算机或文件服务器。现代计算机能够同时做这两的作用,因此现代主机的定义应该是这样的:
主机是连接到一个或多个网络的设备,它可以从任何网络发送和接收数据,也可以用作网关,但这不是唯一的目的。
路由器是一个专门的网关的硬件设计,发送大量的数据以最小的延迟。然而,网关也可以具有多个网卡的标准计算机和操作系统的网络层转发数据的能力。因为专用的路由硬件便宜,电脑很少看到作为网关。在一个只有一个拨号连接的小站中,计算机也可以用作非专用网关。
2。基于类的地址
最初设计IP时,根据第一个字节将地址划分为若干类:
0:预订
1-126:一(网络地址:1字节,主机地址:3字节)
127:预订
128-191:B类(网络地址:2字节,主机地址:2字节)
192-223:C类(网络地址:3字节,主机地址:1字节)
224-255:预订
3,子网划分
虽然基于类的地址系统工程以及互联网服务提供商,它不能做任何路由在网络,其目的是利用第二层(桥接/交换)引导数据在网络中的一大类网络,这已成为一个特殊的问题,因为它是唯一的桥在大型网络/切换管理非常困难。合乎逻辑的解决办法是把大的网络分成小的网络,但它在基于类的地址系统是不可能的。为了解决这个问题,一个新的领域正在出现:子网掩码,子网掩码表示的地址哪部分是网络地址,主机地址,子网掩码,二进制的1表示网络地址位,和二进制0表示T主机地址位。所有地址的传统子网掩码是:
答:为
B类:255.255.0.0
C类:255.255.255.0
如果你想使用一个B类网络地址的C类大小的地址,你可以使用掩码255.255.255.0。
将一个网络分成一个较长的子网掩码的多个网络称为子网,重要的是要注意一些旧的软件不支持子网,因为它们不理解子网掩码。例如,UNIX路由路由守护程序通常使用一种路由协议,即版本1 RIP,它是在子网掩码出现之前设计的。
以上只包括三种子网掩码为255.0.0.0 255.255.0.0 255.255.255.0,:,,,这是字节对齐的子网掩码。但它也可以被分为字节中,没有详细的说明,请参阅有关TCP / IP的书。
子网,我们可以有一个新的网络规模,包括很小的点对点连接的网络(如255.255.255.252,面具的30位网络地址的主机地址:2个主机的子网或网络),介质(如面具投入,20位网络地址,12位主机地址:子网4094主机)。
值得注意的是,DNS被设计为一个IP网络只允许字节对齐(在in-addr.arpa。域)。
4、超网(supernetting)
超网是相似的概念,基于子网掩码IP子网地址分为独立的网络地址和主机地址。然而,网络和子网是相反分为若干个小的网络,它是小型的网络形成一个大的网络,supernettting。
假设现在有16个C类网络,从201.66.32.0到201.66.47.0,均匀可表示为网络201.66.32.0与子网掩码255.255.240.0.however,没有任意地址组可以做到这一点,例如,16个C类网络,201.66.71.0到201.66.86.0,不能形成一个统一的网络。但是没关系,只要策略是正确的,我们总是能找到一套合适的地址。
5、可变长的子网掩码(VLSM)
如果你想将网络分成多个不同尺寸的子网,可以使用可变长度的子网掩码,每个子网可以使用不同长度的子网掩码。例如,如果您将网络按照部门,一些网络掩码255.255.255.0可以(大多数部门),其他人可以255.255.252.0(大部)。
6、未分类的地址(CIDR)
Internet上的主机数量增长超出了原来的想法,虽然它仍然是远离232,但地址已经稀缺,rfc1519 --未分类的域间路由CIDR(无类域间路由),出版于1993,是一个尝试
为了解决这个problem.cidr方式试图延长IPv4的寿命。与128位地址IPv6不同,它不能解决地址空间的耗尽,但IPv6的实现是一项艰巨的任务。互联网是没有准备好yet.cidr给我们时间去准备缓冲。基于类的地址系统的正常运作,使一个有效地址的使用和少量的网络之间的良好折衷。但是随着互联网的意外增长,主要有两大问题:
分配网络数量的增加使得路由表难以管理,并且在很大程度上降低了路由器的处理速度。
严格的地址分配方案浪费了许多地址,尤其是缺少B地址。
为了解决第二个问题,一些较小的网络可以被分配,例如,使用多个C类网络而不是B类网络,虽然这可以有效地分配地址,但更重要的是扩展路由表(第一个问题)。
在CIDR,地址是根据网络拓扑分配。一组连续的网络地址可以分配给一个服务提供商,地址全设为网络地址(很可能使用超网技术)。例如,一个服务提供商分配给256个C类地址,从213.79.0.0到213.79.255.0,为每个用户的服务提供商分配一个C类地址,但服务提供商路由表之外,只有通过表面膜为213.79.0.0-网络来区分这些路由。
此方法显著减少路由表的增长。CIDR RFC的作者估计,如果90%的服务提供商使用CIDR,路由表将以54%的速度在每3年的成长,如果没有CIDR,增长率是776%。如果现有的地址可以被重组,对互联网骨干路由器的数量会大大减少。但这是不实际的,因为它会带来巨大的管理负担。
四。路由
1。路由表
如果主机有多个网络接口,那么当包被发送到特定IP地址时,它如何决定使用哪一个接口呢答案在路由表中:
目的网络掩码网关标志接口
201.66.37.0 255.255.255.0 201.66.37.74 U eth0
201.66.39.0 255.255.255.0 201.66.39.21 U eth1
主机发送的所有目标数据到上位机(201.66.37.1-201.66.37.254)在网络201.66.37.0通过接口eth0(IP地址是201.66.37.74)。所有的目的地发送到网络中的201.66.39.0 eth1的数据通过接口eth1(IP地址是201.66.39.21)。国旗U表示路由状态是up(即活跃状态),直接连接,有些软件不是作为给定接口的IP地址作为例子一样,只有列表界面。
这种情况只涉及主机的直接连接,然后是远程网络上的目标主机如何连接呢如果你连接到网络201.66.37.254 73.0.0.0通过IP地址的网关,你可以添加一个项目到路由表:
目的73.0.0.0
掩码为255.0.0.0
网关201.66.37.254
马克UG
接口eth0
这个项目告诉主持人,其目的都是通过201.66.37.254主机的数据包在网络73.0.0.0.the旗G(网关)表明该项目领导包到外部网关。同样,我们也可以通过定义一个特定的主机路由的网关,一个增加H标志(主持人):
目标掩码网关标志接口
91.32.74.21 255.255.255.255 201.66.37.254呃eth0
以下是路由表的基础,除了特殊的表项:
目标掩码网关标志接口
127.0.0.1 255.255.255.255 127.0.0.1嗯100
默认0.0.0.0 201.66.37.254 UG eth1
首先是环回接口,这是所使用的主机发送数据本身,通常用于测试和运行在IP但要求当地通信应用。这是主机路由到特定地址127.0.0.1(界面百是IP协议栈;里面的假;网络卡)。二是很有趣的。为了防止在主机上定义网络的所有可能路由,可以定义默认路由。如果没有与路由表中的目标地址相匹配的项目,则该包被发送到默认网关。大多数主机通过网卡简单地连接到网络,因此只能通过一个路由器到其他网络,因此路由表中只有三个项目:回环、本地子网和默认值。
2,重叠路由
假设路由表中有以下重叠项:
目标掩码网关标志接口
1.2.3.4 255.255.255.255 201.66.37.253呃eth0
1.2.3.0 255.255.255.0 201.66.37.254 UG eth0
1.2.0.0 255.255.0.0 201.66.37.253 UG eth1
默认0.0.0.0 201.66.39.254 UG eth1
这些路由重叠的原因是因为这四条航线都包含地址1.2.3.4。该航线将如果数据发送到1.2.3.4选择在这种情况下,第一条路线将通过网关201.66.37.253.the选取原则是选择最长的(最准确)的子网掩码。同样,送到1.2.3.5数据选取二路线。
注意:这个原则只适用于间接路由(通过网关)。在许多软件实现中在同一个子网中定义两个接口是非法的,例如,以下设置通常是非法的(但是一些软件将尝试在两个接口上负载平衡):
接口IP地址子网掩码
eth0 201.66.37.1 255.255.255.0
201.66.37.2 255.255.255.0 eth1
它对于重叠路由策略非常有用。它允许默认路由为0.0.0.0,子网掩码为目标,而不需要为一个特殊的情况下,路由软件实现。
回首CIDR,我们还是用上面的例子:一个服务提供商给出了256个C类网络,从213.79.0.0到213.79.255.0.the外部路由表的服务提供商只知道所有这些路由表项:一213.79.0.0,一255.255.0.0.suppose用户移到另一个服务提供商的子网掩码。他拥有的网络地址213.79.61.0。现在他需要从新的服务提供商获得一个新的网络地址吗如果是这样,那就意味着他要重新为每个主机的IP地址,更改DNS设置,等等。幸运的是,答案是简单的,服务供应商维护路由213.79.0.0(子网掩码255.255.0.0),一个新的服务提供商是广播路由213.79.61.0(子网掩码255.255.255.0),因为新的路由子网掩码较长,它将覆盖原来的路由。
3,静态路由
回顾我们已经建立的路由表,有六个表项:
目标掩码网关标志接口
127.0.0.1 255.255.255.255 127.0.0.1嗯100
201.66.37.0 255.255.255.0 201.66.37.74 U eth0
201.66.39.0 255.255.255.0 201.66.39.21 U eth1
默认0.0.0.0 201.66.39.254 UG eth1
73.0.0.0为201.66.37.254 UG eth0
91.32.74.21 255.255.255.255 201.66.37.254呃eth0
这些项目分别是如何获得的第一个是加入了路由软件当路由表的初始化,第二,第三时自动创建的卡绑定IP地址,剩下的三必须手动添加在UNIX系统中,这是通过路由命令完成,可以由用户手动执行,也可以通过RC脚本启动执行。上述方法包括静态路由,通常在启动时创建的,将不再是无需人工干预改变了。
4。路由协议
主机和网关都可以使用动态路由技术,使得路由表动态变化,动态路由要求路由协议增加和删除路由表条目,路由表作为静态路由,但它们的增删是自动的。
有两种路由协议:内部和外部。内部协议路由的自制系统内(如),而外部协议之间的路由的自制系统,自制系统通常是在统一的控制,如一个大的公司或大学。小网站往往是他们的互联网服务提供商的自制系统的一部分。
只有一个讨论的内部协议,和几个人甚至听说过外部协议。最常见的外部协议是外部网关协议EGP(外部网关协议)和边界网关协议BGP(边界网关协议)。BGP是一个相对较新的协议,并逐渐以EGP的地方。
5、ICMP重定向
ICMP通常不被认为是一种路由协议,但是ICMP重定向与路由协议的工作方式相似,所以这里将讨论它。假设上面有六个表条目的路由表。数据包发送到201.66.43.33查看路由表。它不能匹配任何除了默认路由路径。静态路由发送它通过路由器201.66.39.254(1行),而路由器知道发送子网201.66.43.0应该通过201.66.39.253所有子群,那么它将数据包转发到相应的路由器(2行)。但如果主机发送的数据包直接向201.66.39.253,它会提高效率(之3)。
因为路由器从同一接口发送数据包到数据包,它知道有更好的路由。路由器可以重定向ICMP表明主机使用的是新的路线。虽然知道所有的路由器发送子网的数据包通过201.66.39.253 201.66.43.0,ICMP重定向通常只发送一个特定的主机(在这种情况下,201.66.43.33)。主持人将在路由表中创建一个新的表项:
目标掩码网关标志接口
201.66.43.33 255.255.255.255 201.66.39.253 ughd eth1
注意标记D,为ICMP重定向创建的所有路由设置此标志。将来,这些组将通过新路由发送(行程3)。
6、RIP
RIP是一个简单的内部路由协议,已经存在了很长的时间和广泛应用(UNIX的路由使用RIP)。它使用距离向量算法,所以其路由是基于两点之间跳(跳)的数量,通过一个路由器作为一个跳跃,主机和网关可以运行RIP,但主机只接收信息而不发送。路由信息可以从一个指定的网关的要求,但它通常是广播每30秒一次保持correctness.rip使用UDP的主机和网关通过520端口之间的通信。传输网关之间的信息的使用建立一个路由表,并通过把选定的路线总是最少在distance.rip 1版作品在简单的小网络跳的,但也存在一些问题,在更大的网络。有些问题已经在RIP版本2中得到纠正,但也有一些是由于它们的设计的局限性。在下面的讨论中,这两个版本简单地称为RIP,RIP V1和RIP V2是指特定版本。
RIP没有任何链接质量的概念。所有链接都被认为是相同的。低速串行链路被认为是高速光links.rip选择跳数最少的路径相同,所以当选择以下两路线:
100Mbps的光纤链路,路由器,然后10Mbps以太网
的9600串行路
RIP将选择latter.rip没有链路流量水平的概念。例如,两个以太网连接,其中一个是忙,和其他没有数据流的话,把可能会选择一个繁忙的链接。
在RIP的最大跳数是15,超过15被认为是不可能达到的。因此,在一个大的自制系统,跳数可能超过15,这是使用rip.rip V1不切实际的不支持子网。交换的信息不包含子网掩码。确定给定路由的子网掩码有不同的方法。RIP V2 makes up for this drawback.RIP doesn't update information every 30 seconds, so the information in the big network can take some time to spread, and the stabilization time of routing information may be longer, and there may be a routing loop in this period.There are some solutions to this, but there is no discussion here.
如您所见,RIP是一种简单的路由协议,有一定的局限性,特别是在版本1中,但它通常是某些操作系统的唯一选择。