IP路由基础之静态路由

1.路由的含义

        交换机隔离冲突域,路由器隔离广播域。同一局域网下的设备通过二层转发即可实现通信,即交换机查询MAC地址表来进行转发。那么不同网段的主机进行通信时,如何进行数据转发?这个时候需要进行三层转发操作,即网络层依靠路由表来实现IP寻址和路径选择。

路由表示的是去往目的IP地址的最近的一个中转站,去往中转站就要明确指出中转站的地址(下一跳地址)以及从本端如何出去(出接口)。因此,一条路由的必要组成分为目的网段、目的网段掩码、出接口、下一跳地址。

2.路由表

        维护路由表最典型的代表设备就是路由器,路由表存放着该设备去往已知网段的最优路由。数据去往目的地可能有多个不同的路径,在路由表中展现出来的,就是那条最优的路径。

IP路由基础之静态路由_第1张图片

destination/mask:目的网段和掩码

proto:路由协议

常见的协议有direct,static,OSPF,ISIS,BGP等 

pre:路由优先级,当目的地址相同时,路由器根据优先级选择最优的路由放入路由表中,以小为优,范围0-255。

直连路由direct:优先级为0,不可以更改。

静态路由static:优先级为60

动态路由OSPF:优先级为10或150(ospf内部和外部)

动态路由ISIS:优先级为15

动态路由BGP:优先级为255

cost:度量值,当优先级相同时,比较度量值选择最优的一条路由放入路由表。

flags:标志位,R代表要递归查询,D代表在fib转发表中,可以直接进行转发。

nexthop:下一跳地址,去往目的地址转发的下一个设备。

interface:出接口,数据去往下一条从哪个接口转发出去,出接口可以是物理接口,也可以是逻辑接口。

3.路由表中路由的来源

        3.1 直连路由

        直连路由是指通过传输介质直接连接在设备接口上的网段,设备根据自己端口上的IP地址和掩码,通过与运算得出网络地址,自动生成直连路由放入路由表中。

        直连路由产生的前提条件是设备端口的物理状态和协议状态都要UP,并且端口要配置IP地址。当端口down以后,该直连路由将在路由表中消失。

        3.2 静态路由

        静态路由是由管理员手工配置上去的,简单方便,但是静态路由不能感知到网络的变更,路由信息无法根据网络的改变而自动更新,需管理员手工更改或者删除,因此,静态路由不适用于大型的网络中,不具有时效性。

        3.3 动态路由

        相比于静态路由而言,动态路由是设备之间通过交互信息互相学习而来的路由条目,可以根据网络中路由的变更,动态的进行更新。但是由于需要设备之间进行报文进行信息交互,因此,动态路由会占用一定的链路带宽资源。

4.静态路由

        静态路由是需要管理员手工配置的,根据路由的必要组成部分,路由组成的必要条件需要目的网段和掩码、出接口和下一跳地址。那么如何配置静态路由呢?以下面拓扑为例:

        

IP路由基础之静态路由_第2张图片

 描述:

        

设备 接口 IP地址 掩码
R1 G0/0/0 10.1.12.1 24
R2 G0/0/0 10.1.12.2 24
S1/0/0 10.1.23.2 24
R3 S1/0/0 10.1.23.3 24
loopback0 3.3.3.3 32

要求R1能够访问3.3.3.3

        首先在R2上配置去往3.3.3.3的静态路由。

[r2]ip route-static 3.3.3.3 32 s1/0/0----配置静态路由

测试连通性:

 IP路由基础之静态路由_第3张图片

        在R3上配置回包路由

[r3]ip route-static 10.1.12.0 24 s1/0/0----配置去往R1的静态路由

在R1上配置去往3.3.3.3的静态路由

[r1]ip route-static 3.3.3.3 32 g0/0/0------配置去往3.3.3.3的静态路由

 ping测试连通性:

IP路由基础之静态路由_第4张图片

可以看到R1此时ping不通3.3.3.3,抓包查看:

可以看到R1发出的ARP request没有响应。原因分析:

        1.根据ping通原理,R1ping 3.3.3.3时,需要查看IP路由表,有路由则进行ICMP的封装。

        2.封装ICMP,

ICMP echo-request SIP:10.1.12.1,DIP3.3.3.3 SMAC:R1,DMAC:?

        3.由于不知道3.3.3.3的MAC地址,所以查看ARP缓存表。

        4. ARP缓存表没有3.3.3.3的表象,所以建立一个incomplete条目,发送ARP request。

ARP request SIP:10.1.12.1,DIP3.3.3.3 SMAC:R1,DMAC:全F

        5.R2收到以后 解封装,查看目的IP不是自己,所以丢弃。

解决方法:

        方法1:在R2上开启ARP代理

[r2-GigabitEthernet0/0/0]arp-proxy enable----开启ARP代理

测试连通性:

IP路由基础之静态路由_第5张图片

抓包查看

IP路由基础之静态路由_第6张图片

可以看出,当R2配置了ARP代理功能以后,R2用自己的接口地址回复了R1的ARP request。

ARP代理在本质上就是一种ARP的欺骗。 

        方法2:配置静态路由时写明下一跳地址。

        关闭R2上的ARP代理功能,重新在R1上配置静态路由。

        R2配置

[r2-GigabitEthernet0/0/0]undo arp-proxy enable ----关闭ARP代理功能

        R1配置

[r1]ip route-static 3.3.3.3 32 10.1.12.2-----配置静态路由指明下一跳地址

测试连通性

IP路由基础之静态路由_第7张图片

抓包查看

IP路由基础之静态路由_第8张图片 

R1发送的ARP请求的是下一跳的MAC地址,由此可见,下一跳地址的作用就是为了ARP能够请求到MAC地址,完成二层的封装。

  问题1:为什么只写下一跳不写出接口也可以?

        查看路由表

IP路由基础之静态路由_第9张图片

由此可见,不写出接口的情况下,路由中的flags变成了RD,也就是需要递归查询。去往3.3.3.3的下一跳是10.1.12.2,再递归查询去往10.1.12.2的路由,发现是直连路由,出接口是G0/0/0接口。因此,只写下一跳地址可行。

        问题2:下一跳和出接口都写是否可行?

        可行,但是不建议都写。因为写明了出接口,数据就只会通过此接口发送出去,如果是冗余链路,此接口down了以后,数据将无法继续进行通信,适合单一出口的情况下这样写,不用做递归查询,转发更高效。

        问题 3:为什么R2和R3之间只写出接口就可以?

        因为R2和R3之间是P2P链路,通信不需要封装MAC,封装的是PPP帧头,所以不需要写下一跳地址。 

         总结静态路由书写方式:

 MA链路:

       ip route-static 3.3.3.3 32 g0/0/0----不可以
       ip route-static 3.3.3.3 32 10.1.12.2----可以,推荐

       ip route-static 3.3.3.3 32 g0/0/0 10.1.12.2----可以,不推荐 

P2P链路:

         ip route-static 3.3.3.3 32 s1/0/0----可以,简单高效

         ip route-static 3.3.3.3 32 10.1.12.2----可以,多宿主冗余

         ip route-static 3.3.3.3 32 s1/0/0 10.1.12.2----多余,没必要

5.最长掩码匹配 

         路由器在进行路由转发的时候,查看目的IP地址和掩码,按照最长掩码匹配的原则进行路由转发。

        IP路由基础之静态路由_第10张图片        在R2上另写一条3.3.3.0/24的静态路由,当R2收到目的地址是3.3.3.3的时候,这时匹配到两条路由,3.3.3.0/24和下面的3.3.3.3/32,此时R2会根据最长掩码匹配的原则,选择3.3.3.3/32这条路由进行转发。

6.特殊路由

         6.1 缺省路由

        配置:

[r1]ip route-static 0.0.0.0 0 10.1.12.2----配置缺省路由

        缺省路由也叫默认路由,当去往的目的网段匹配不到路由表中的其他路由时,就会通过缺省鲈鱼转发出去,适用于访问互联网或者单一出口的情况下。

IP路由基础之静态路由_第11张图片

        6.2 黑洞路由

        配置:

[r1]ip route-static 20.0.0.1 8 NULL 0-----配置黑洞路由

 当设备的目的网段匹配到黑洞路由时,就会发往逻辑接口null0,相当于是直接丢弃掉,不进行转发,可以用来聚合路由防环。

IP路由基础之静态路由_第12张图片

7.高级特性 

        7.1 负载分担IP路由基础之静态路由_第13张图片 

         当设备有多个出口可以去往目的网段时,可以配置多条静态路由,以达到路由冗余负载的效果,当一跳链路断开,还有另外的路由可以转发。

        配置:

[r1]ip route-static 3.3.3.3 32 100.1.12.2-----在R1上再加一条去往3.3.3.3的静态路由

       查看路由表:

        IP路由基础之静态路由_第14张图片 可以看到去往3.3.3.3的路由是等价负载的,一个down掉,还有另外一个。

        7.2 非等价负载

         当两条链路的带宽不一致,10网段是3G带宽,100网段是1G带宽时,可以实现3个包走10网段,1个包走100网段。

        配置:

[r1]ip route-static 2.2.2.2 255.255.255.255 100.1.12.2
[r1]ip route-static 3.3.3.3 255.255.255.255 7.7.7.7
[r1]ip route-static 3.3.3.3 255.255.255.255 8.8.8.8
[r1]ip route-static 3.3.3.3 255.255.255.255 9.9.9.9
[r1]ip route-static 3.3.3.3 255.255.255.255 2.2.2.2
[r1]ip route-static 7.7.7.7 255.255.255.255 10.1.12.2
[r1]ip route-static 8.8.8.8 255.255.255.255 10.1.12.2
[r1]ip route-static 9.9.9.9 255.255.255.255 10.1.12.2

查看路由表

        IP路由基础之静态路由_第15张图片

        7.3  浮动路由 

         当路由表中只需要一条路由,不需要负载的时候,但是需要一条路由作为备份,可以通过设置优先级的方式来实现。

        配置

[r1]ip route-static 3.3.3.3 32 10.1.12.2 -----默认优先级60
[r1]ip route-static 3.3.3.3 32 100.1.12.2 preference 65-----增大优先级为65

        查看路由表:

IP路由基础之静态路由_第16张图片 

 当10网段的链路断开时查看路由表

IP路由基础之静态路由_第17张图片

 

 

 

 

          

        

你可能感兴趣的:(tcp/ip,网络,p2p)