一、为什么有这玩意?这是啥?

简单说人话就是:

        IPV4哪怕划分了子网,依旧要不够用了,全世界人口越来越多.......;IVP6有还没有发明好;所以【CIDR】就是介于原始IPV4 ~ IVP6之间过渡的一个技术,能够让IPV4互联网接着增长

二、怎么表示

说白了,就是跟【子网掩码】差不多

只不过不再分什么A、B、C、D、E类网址,统一用一个N位【网络前缀】固定死前N位后面的32-N是可变的【主机位】

表示形式也基本一模一样.......

区别

  • 首先就是,不用看【第一个字节】来区分是哪一类网络;
  • 第二就是,【网络前缀】可以变化!!!!!
    • 前面我们学传统IPV4的【网络前缀】包括【网络号 + 子网号】,一旦定下N位,子网掩码【位数】就只能N位,不可以再变
    • 但是这里,当这 N 位【网络前缀】起初【不包含子网】的时候不给动,当往剩下的主机号里再去拆分k位作为【子网号】 后【网络前缀】又可变成 N + k 位     

CIDR三类【特殊地址块】

  • 1、【主机路由】
    • 前缀n=32,也就是没有主机号
    • 这就是一个IP地址,用于主机路由,不用管主机路由是啥,反正记住就行,不会考多深
  • 2、【点对点链路】
    • 最好情况是:前缀n=31,主机号只有0和1
    • 正常情况是:前缀n越多越好,也就是让【主机号】尽可能最少,但至少不能少于2个
  • 3、【默认网关】
    • 前缀n=0,ip地址也全0,即0.0.0.0/0就是默认网关

例题

三、定长子网划分、变长子网划分

1、定长子网

        就是我们前面学的【子网划分】:在N位主机号固定【借k位】作为【子网号】,每个子网的子网号一样,内可划分的【主机数量一样:2^(N-k)

(实际可分配的是:2^(N-k) - 2不包括主机号全0、全1网址)

那么就不够灵活,导致IP地址利用率低

(比如:A公司研发部需要1千万个电脑、市场部只用1个电脑,但是各个部门的子网主机号都是一样多......)

例题

2、变长子网

1)概念

字面意思:各个子网的子网号可以不一样长,谁需要的主机多,子网号就占的少;反之,则子网号占得多一点

2)如何分配变长子网

结合王道的一个例子解释

大致的规律就是:

  • 1、初始ip地址【网络前缀】不包含【子网号】,剩下的位全都是【主机号位】
  • 2、然后从这些【主机号位】开始 ”借位“ 划分【子网】:
    • 每次划分借【1位】作为子网号,那么可以选【0】或【1】作为当前这个子网的子网号最后一位,越往下借子网号,则子网号占位越多
      • 比如例子里,第一个子网只有1位,选择【0】作为子网号最后一位
      • 第二个子网有2位,上一个子网选剩的【1】作为子网号第一位、自己选择【0】作为子网号最后一位
      • 以此类推,直到分到最后,主机号最少只剩【2位】为止,此时的【0】和【1】各自可组成2个子网的子网号最后一位
  • 3、这就类似一个数据结构的二叉树,只有 “叶子节点”(绿色的) 才是【子网】!!!!
    • 但是注意【高度】不可以超过【子网数量 - 1】!!!(因为一个子网最少要有【2位主机号】,如果只有1位主机号,那主机号0和1都代表特殊ip地址,不可以给主机分配)
    • 【高度】就是【子网数量 - 1】,也就是【最小的子网的 “子网号位数”】(因为被分得子网号最多,主机范围最小,在“二叉树最下层”)

这样分完的子网,可以发现:

  • 每一个子网的【子网号】都不一样长,所以不同的子网的【网络前缀长度】都不一样
    • 像图例,要发一个信息给【接收方:“狗剩”】,【目的地址】的ip地址是:“128.14.32.153”,最后一个字节是【10011001】(所有子网前面3个字节都是一样,那就只用看最后一字节)
      • F1子网最后字节是【10000000】,28位网络前缀,那么最后字节的【前4位】和【目的地址10011001】不一样,不属于一个子网
      • F2子网最后字节是【10010000】,29位网络前缀,那么最后字节的【前5位】和【目的地址10011001】不一样,不属于一个子网
      • F3子网最后字节是【10011000】,30位网络前缀,那么最后字节的【前6位】和【目的地址10011001】一样,属于一个子网,可以转发到 “狗剩”主机所在子网
例题

【重点重点重点重点!!!!!!!!!!!!!!!!】

        所有人记住了,只要问:“将一个IP网络划分成N个子网” 马上马上优先想到【变长子网划分】!!!!不可能是【定长子网划分】,因为不难死大家老师不爽,一定得是变长!变长!变长!画二叉树!画二叉树!画二叉树!

  • 笔记有点潦草,希望尽量能理解:
    • ① 首先根据要划分几个子网,我们要猜想会有哪几种树形结构的可能
      • (子网是叶子节点,也就是不能再往下分的)
    • ② 将题目给出的已知【子网ip】带入到自己画的树里
      • 根据【分支路径】和【已知子网的网络前缀位数】,我们可以定位到改子网应该在哪
      • 比如图例,【~128/26~.10000000)】的子网在树结构从顶到下,应该顺着【1—>0】定位到节点
    • ③ 根据已知1个子网节点,顺着网上得出【最原始的开始划分子网前的】ip地址
    • ④ 最终可以顺着路径写出【所有节点】的子网ip地址,然后对应选项,选项里没有的就是错的

四、路由聚合

1)概念

简单说:就是因为路由表记录太多网络ip地址,路由表要爆了,所以就把多个【部分前缀一样】的网络ip地址————>合成一个【地址快】(也叫【聚合地址快】、【超网】)

2)实际路由如何解析【地址快】

那么实际【路由聚合】是应用于更外层的网络的转发路由器

        可以发现下图,“咸鱼典型电信路由器”的网络里的3个子网地址,相对在“县里的路由器”眼里都是从【G1接口】进出,那他又何必再一条一条地检查对比同一个接口地3个地址?

        所以“县里地路由器”就可以把3个ip地址前缀相同的话,就合并成一个【(超网)地址块】,只要符合这个【超网】的网络前缀的都从【G1接口】发出

        而“咸鱼电信”的这个路由表,因为3个子网地址对应3个不同接口所以还是要把ip地址针对路由表的3个具体子网地址一一进行对比,网络前缀相同的就从各自接口发出

3)最长前缀匹配原则

        如果一个目的ip地址和路由表里多个地址都可以匹配,那么路由转发优先选择【前缀最长的】接口转发出去,因为【前缀越长,网络地址更具体】

例子:

        那么假设现在上面例子里的“咸鱼电信的网络里”,“铁柱网吧”这个子网想直接连接“县里的电信路由器”,那么此时“县里的电信路由器”就多一个接口G3用于接“铁柱网吧”。那由于接口不一样,“铁柱网吧”的ip地址必须单独记录在路由表(而不是和G1接口进行路由聚合)

        那此时对比这个路由表,会发现“铁柱网吧”的IP地址其实和整个路由表3个地址都匹配,那怎么办?————选择前缀最长的,也就是“铁柱网吧”自己本身的子网id地址

3)例题

4)结合前面学的【无分类编址CIDR】和【路由聚合】知识点一起

        其中图中说【聚合C类网的数量】,你可以理解为:一开始128.14.35.7/20【网络前缀】【20位】

  • 1、现在要你改成C类标准的网,那不就是向后面借【4位】【网络前缀】变成【24位】,然后用这【4位】作为【定长子网划分】能分出 “几个子网”
  • 2、或者【原本20位网络前缀】时还剩【2^(32-20)个主机地址块】,划分成【C类网】后还剩【2^8个主机地址块】,【前者】除以【后者】可得出【聚合地址快数】(已作修改,之前笔记有误)

五、地址块交叠、冗余

这一块知识点真是给我学死了,我愣是反复看书看题研究,就是不知道啥意思,可能我确实就是智障吧,到最后才勉强明白

为了方便解释,我假设ip地址掩码是4位的二进制数,这样计算起来好理解

1、交叠地址块

        顾名思义,就是根据【掩码】,计算出【所有的主机地址块范围(包括全0和全1)】,若一个IP地址的主机号范围和别的IP地址主机号范围重合了【一样的主机号】,那就是交叠地址块了

【换句话说:各个子网之间应该是平级关系!!!各自的 <子网号> 不能有包含关系(某一子网号和另一子网号的前几位一样的情况)!!!】

比如下面例子:

  • 一个ip地址块是【1100/2】,可以计算出:【子网号是11】、【ip地址的范围是:12~15】;
  • 那么下面【1000/2】的【子网号是10】、【所有ip地址范围是:8~11】;
  • 而【1100/2】的【子网号是110】、【所有ip地址范围是:12~13】
    • 和【1100/2】的ip地址有重合,你两子网号前2位都一样了,还不如直接合并成只用子网号是【11】的,不然的话范围在12~13的ip地址到底算哪个子网的?
  • 【例题】

2、冗余地址块

        就是这个地址块和【要聚合的地址块】一起重新【聚合成一个新的超网】之后,【新的超网】的【所有ip地址范围】里有原本【要聚合的地址块】范围里不存在的ip地址,这些地址就是一些毫无意义的ip地址

我这么比喻一下:

        假设某【心脏病抢救室规定心脏病医生入内】,某【发热科抢救室规定发热科医生入内】,那么如果有一种病【融合了两个科病】,要归并一个新的抢救室,允许【心脏病医生】和【发热科医生】入内,那就没有冗余;

        如果归并完的抢救室允许清洁工、护士、病人、外卖小哥都进去,这些就是冗余。。。和这个抢救室一点关系都没有的闲人

现在再结合图片例子:

多说无益,直接看这题

  • 做题方法1:一定一定一定要像我一样画成【二叉树形式】
    • 在【聚合后的超网】基础上每次往后划分子网位,直到【网络前缀】和【聚合前两子网IP】都一样后停下
    • 然后在【叶子节点】找出和【聚合两子网IP地址一样的子网】,那么剩下的不一样的就是多余冗余的子网,说明这个超网包含了一些和原来两子网IP不相干的子网进来
  • 做题方法2:直接放弃,这傻逼题ctm的光画图都废老半天,一个分神就错了,计网占比本来就少,我写nm,直接不要这分了
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐