说明

Classless和classful指的是无类和有类的意思,有类非常好理解,就是按子网掩码A、B、C的主类网进行划分的,而无类就是支持VLMS(变长子网掩码)和CIDR(超网)。

在卷一中只有稍微提了下有类和无类的概念,但是 说的不是非常的清晰,如果是初学看的话,估计不是那么容易懂。所以,这里,详细介绍下Classless和classful的工作过程。

路由协议有Classless和classful的区别:
1、classful:RIPV1,IGRP
2、classless:RIPV2,EIGRP,OSPF,ISIS,BGP

IOS本身也可以工作在classless和classful的状态下。

分析一:IOS的classles和classful

在IOS 11.0以后,默认是工作在classless状态下。

有类和无类的区别:
1、无类别的处理方式,当一个数据包经过路由器的时候,它查看目的地址是否存在于路由表,并且执行的是逐条查询(最长掩码匹配)
2、有类别的处理方式:当一个数据包经过路由器的时候,路由器会查找该目的地址是否在路由表中存在主类网络,如果存在的话,继续查找子网,如果匹配子网条目,则转发,如果不匹配,则丢弃(就算有默认路由存在)。如果不匹配主类网络,查看是否有默认路由,如果有则转发,没有则丢弃。

主要分析有类别的处理方式,因为无类别在讲解之前的静态路由的时候就已经说过了,其实也非常好理解,就是最长掩码匹配。

开启有类别的工作方式:
no ip classless
no ip cef
这里必须关闭CEF,有类别方式才能生效,否则在CEF下,也是无类别在工作

R1(config)#ip route 172.16.1.0 255.255.255.0 12.1.1.2

因为路由器查找关于172.16.0.0/16的主类网络路由是否存在于路由表,关于172.16.1.0/24是172.16.0.0的子网,所以继续查找172.16.1.1是否在172.16.1.0/24的范围内,这是存在的,所以,路由器转发这个数据包。

R1(config)#no ip route 172.16.1.0 255.255.255.0 12.1.1.2
R1(config)#ip route 172.16.1.32 255.255.255.224 12.1.1.2
R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2

这次把之前的静态路由去掉,加了一条172.16.1.32/27和一条默认路由,测试的是当路由匹配主类网络的时候,但是不匹配子网路由,是否使用默认路由。

这次测试是不通的,介绍过有类的工作方式,当匹配了主类路由的时候,子网路由不匹配的话,则直接丢弃,不管是否存在默认路由。

R1(config)#no ip route 172.16.1.32 255.255.255.224 12.1.1.2
R1(config)#ip route 13.1.1.0 255.255.255.0 12.1.1.2
这次默认路由保留,把关于匹配主类网络去掉,新加了一条不匹配去往17.16.0.0的主类路由。

是可以通信的,因为当不匹配主类网络的时候,查看时是否有默认路由存在,有的话则转发,没有则丢弃。

总结:在有类别的方式下对数据包的处理过程,如果匹配 主类网络,只查看是否匹配主类或子网路由的范围,匹配则转发,如果不匹配则丢弃,不会进行查看默认路由。 如果不匹配主类网络,那么只会查看路由表中是否有默认路由存在,有则转发,没有则不转发。

分析二:路由选择协议下的区别

在路由选择协议下的classle和classful的区别在于:更新的路由信息中是否携带子网掩码信息。

这里只要分析有类别的更新过程,虽然在现在的网络中已经不适应了,但是,作为学习网络的人来说,了解了解是有必要的。
RIP
R1——————R2
R1发送更新规则

1、1向2广播的网络网络是否与源接口(发送路由更新的接口) 处于同一个主类网络
2、如果不是,则R1在主网络边界自动汇总网络或子网并广播该网络
3、如果是,则判断网络(所连接的掩码)与源接口是否有相同的子网掩码
4、如果是,则广播该路由
5、如果不是,则丢弃该路由。除非次路由是主机路由,并且路由器支持。

R2接受更新的规则

1、判断从更新接受的子网与接受的端口是否处于同一主类网络
2、如果是,则R2使用接受接口的掩码。如果是32位路由,则R2使用主机掩码
3、如果不是,则判断主网络中的任一子网是否已在路由表中,并且是从另外一个接口所学习到
4、如果是,则R2忽略更新
5、如果不是,则路由器2使用有类掩码。


简单说下发送的更新原则:比如R1有条172.16.1.0/24的路由需要更新给R2,这时候R1会查看这条路由条目是否与接口处于同一主类网络,也就是说处于172.16.0.0/16,如果没有处于,就按照主类边界自动汇总并且广播给邻居。也就是说当R1的接口为192.168.1.1的时候,不处于同一主类网络,则把这条路由按照主类网络进行汇总。 如果是相同主类网络的话,则查看它们的子网掩码是否匹配,如果不匹配则丢弃,匹配的话,则发送这条路由更新。

关于在RIP中会出现32为的主类路由,这到RIP的时候在进行介绍。

总结:关于classle和classful在实际应用中,其实没有太多的必要去了解,因为现在的IPV4网络或者IPV6网络都是以无类别的方式在工作的,只是作为一个网络工程师或者爱好者来说,对协议的进一步了解,有助于自己的知识充实和对学习的态度。

本文首发于公众号:网络之路博客

©著作权归作者所有:来自51CTO博客作者网络之路blo的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. TCPIP卷一(6):距离矢量与链路状态 路由选择协议
  2. TCPIP卷一(10):EIGRP的DUAL算法和SIA解决方案
  3. TCPIP卷一(7):Routing Information Protocol—-RIP
  4. TCPIP卷一(9):EIGRP的数据包格式、TLV、 三张表
  5. TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数
  6. TCPIP卷一(12):EIGRP的负载均衡方式 And RouterID、default Rout
  7. MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、
  8. MPLS系列之二:MPLS *** 静态路由、RIP、EIGRP【包括配置 分析控制
  9. 华为交换机配置基于IP地址划分VLAN

随机推荐

  1. android layouts之RelativeLayout
  2. react-native APP图标和Splash(Android)
  3. 移植android的工作环境
  4. 2015-10-30-02-Android Theme主题使用心
  5. Android 重力感应 翻转页面造成Activity
  6. android ListView向下展开 抽屉效果
  7. android 关于字符转化问题
  8. Android文档-开发者指南-第一部分:入门-中
  9. Android 基于UDP的Socket通信
  10. Android 的GUI 系统