IP协议和路由基础

 IP协议

•IP(Internet Protocol)又称为网际协议,它负责Internet上网络之间的通信,并规定了将数据包从一个网络传输到另一个网络应遵循的规则,是TCP/IP协议的核心。
•IP数据包由首部和数据两部分组成。

IP报文格式

图1.1 IP报文格式

(1)版本占4位,指IP协议的版本。IP协议目前有两个版本IPv4和IPv6。

(2)首部长度占4位,可表示的最大十进制数值是15。

(3)区分服务占8位,分配给主机不同应用程序的数据包标识,配置路由器上的优先转发策略,确保特定应用的带宽有保障,这就是区分服务,为这种服务确保服务质量(Quality of Service,QoS)。

(4)总长度指IP首部和数据之和的长度,也就是数据包的长度,单位为字节。总长度字段为16位,因此数据包的最大长度为216(2的16次方,这里文本不好表示)-1=65535字节。

(5)标识(Identification)占16位。IP软件在存储器中维持一个计数器,每产生一个数据包,计数器就加1,并将此值赋给标识字段。

(6)标志(Flag)占3位,但目前只有两位有意义。标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据包。MF=0表示这己这个分片是若干数据包片中的最后一个。标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

(7)片偏移占13位,以8字节为一个偏移单位,可节省路由器负担(占用位减少)。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。

(8)生存时间字段(Time To Live,TTL),表明是数据包在网络中存在多长时间,TTL每经过一个路由节点就减1,当TTL值变为0时则该数据包被丢弃。

(9)协议占8位,协议字段指出此数据包携带的数据是使用何种协议(如ICMP、IGMP、TCP等),以便使目的主机的网络层知道应将数据部分上交给哪个处理过程。

(10)首部检验和占16位,这个字段只检验数据包的首部,但不包括数据部分。这是因为数据包每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

(11)源IP地址占32位。

(12)目标IP地址占32位。

以下是一个通过wireshark抓取的ICMP数据包报文:

图1.2 ICMP报文格式

从上述条目中可以分析出的信息为:该报文为IPv4版本报文,首部长度为20字节,未作服务区分,数据包总长度为84字节,标识位为10代表是10个数据包。标志位为0,其后无分片(该ping命令的ICMP报文较短,无需分片),偏移位为0,生存跳数为255,为ICMP协议报文,首部校验和为0xa69a(已禁用验证)。源IP地址为10.0.0.2,目的IP地址为10.1.1.2。

路由基础

•在网络通信中,“路由(Route)” 它是指数据包从某一网络设备出发去往某个目的地的路径。网络中的路由器(或三层设备)负责为数据包选择转发路径。

•路由器根据路由表,为数据包选择转发路径。

路由表

图2.1 路由表

路由表一般是7列

第一列(Destination/Mask)是目的IP地址网段/子网掩码,用来标识所能到达的目的网段,有各种环回地址和广播地址等会自动生成。

第二列Proto是路由条目类型,分为Direct直连路由、Static静态路由和动态路由(OSPF、RIP等)类型。设备自动发现的路由信息称为直连路由(Direct Route),网络设备启动之后,当路由器接口状态为UP时,路由器就能够自动发现去往自己接口直接相连的网络的路由。静态路由为手动配置,需要到达的非直连网段,静态路由配置支持递归(这个我们后面格外分析)。路由器使用动态路由协议(如RIP、OSPF等)而获得的路由信息被称为动态路由。动态路由适合规模较大的网络,能够针对网络的变化自动选择最佳路径。路由器可以同时运行多个动态路由协议,每个动态路由协议学到的路由项都会加载到路由表,如果多个动态路由协议都学到了到某个网段的路由,优先级高的入选。

第三列Pre是路由条目优先级,不同来源的路由规定了不同的优先级(Preference),并规定优先级的值越小,路由的优先级就越高。设备上的路由优先级一般都具有缺省值。不同厂家的设备对于路由优先级的缺省值的规定不同。 除直连路由(DIRECT)外,各种路由协议的优先级都可由用户手工进行配置。

图2.2 华为的设备路由条目优先级

第四列是Cost(开销)值,路由的开销(Cost)是路由的一个非常重要的属性。一条路由的开销是指网段需要付出的代价值。同一种路由协议发现有多条路由可以到达同一目的地/掩码时,将选择开销最小的路由,即只把开销最小的路由加入本协议的路由表中。先比较路由优先级,再比较路由度量,只有当路由优先级相同时才比较路由度量。Cost值会影响STP生成树的链路选择、负载均衡和OSPF通告等。

第五列Flags字段通常用于表示与路由相关的一些标志或属性。具体的含义可能会因操作系统而异。一般情况下D为自动生成的条目(直连路由和运行动态协议自动生成的路由条目),RD为静态手工配置的路由条目。

第六列为NextHop下一跳地址,设备自身接口的NextHop字段为其环回接口地址127.0.0.0/8,直连网段的NextHop字段为本设备对该网段的直连接口,非直连网段路由的下一跳地址为该路由器所在的可达目标网段地址的路径的对端接口。

例如下图对AR8路由器的路由条目做解析:

10.0.0.0/24路由条目:Direct直连路由(配置10.0.0.0网段两端路由器的接口地址,自动生成路由条目),优先级为0,Cost开销为0,Flags字段为D(动态自动生成),NextHop字段为10.0.0.2——即AR8的GE0/0/0端口的IP地址(AR8处在10.0.0.0网段的端口)。

10.0.0.2/32路由条目:表示单一IP地址,是AR8路由器的GE0/0/0接口IP地址,NextHop字段为本地环回地址127.0.0.1。

10.1.1.0/24路由条目:手动配置的静态路由条目,优先级为60,Cost开销值为0,Flags字段为RD,NextHop字段为10.0.0.1(AR9的GE0/0/0端口的IP地址),出端口为AR8的GE0/0/0端口。AR8路由器上要转发到10.1.1.5(PC1主机的IP地址)的数据包由AR8转发到AR9,由AR9路由器再进行处理转发。

图2.3 实验模拟拓扑图1

图2.4 AR8路由表(display ip routing-table查看)

路由递归

静态路由条目支持递归配置。例如在AR9上配置到PC2上的静态路由条目,若不递归则需要分别配置AR9到AR8、AR8到AR6、AR6到AR10、最后到50.1.1.0网段的路由条目,十分繁琐。路由递归的配置则只需要在AR9上配置目的地址为PC2的IP地址,NextHop地址为AR8的GE0/0/0的ip地址,这样做的前提是在AR8和其后的路由器上路由路径是畅通的,AR8可以转发到AR6、AR6可以转发到AR10······

图2.5 模拟实验拓扑图2

路由递归的原理是:转发路径上的每个路由器解封装数据包的以太网帧层,保持数据包源目IP地址不变,根据路由器自身的转发表,更改数据包的目的MAC地址为下一跳设备的MAC地址,更改源MAC为设备自身MAC地址。

在A路由器上配置横跨多网段到主机F的IP地址,其中经过BCDE路由器,BCDE路由器到F的网络路径是畅通的可送达的,转发过程中的源目MAC地址会改变,但是源目IP地址不改变。由A将需要转发到F的数据包转发到B路由器,此时数据包的目的MAC地址是B的,源MAC地址是A的。B查看自身路由表和转发表,将数据包目的MAC地址改写为C的MAC地址,源MAC地址改写为B自身MAC地址,将数据包从对应接口转发到路由器C······ 依次更改源目MAC地址,直到数据包转发到了E路由器,由其最后将目的MAC改写为PC2的MAC地址后转发到PC2上完成通信。

所以在数据包在网络的传输过程中,路由节点只会将数据包解封装到网络层(需要查看目的IP在本设备上是否有条目),对照各设备自身的路由表和转发表,逐条更改源目MAC地址,直到数据包成功交付到目标IP地址的设备。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值