开发者学堂课程【Linux高级网络应用 - 网络管理与配置实战:企业IP地址规划部署实战】学习笔记,与课程紧密联系,让用户快速学习知识.
课程地址:https://developer.aliyun.com/learning/course/576/detail/7972
企业IP地址规划部署实战
目录:
一、TCP/IP与OSI/RM的对应关系
二、ARP协议
三、TCP协议和UDB协议
四、IP的信息
五、跨网段通讯的实现
六、无类域间路由
七、总练习
六、无类域间路由
1.运用背景
由于ABC类分类方式存在较大的问题,即最存在8位、16位、24位的网络ID,较为简单,但其导致的结果即一个网络中存在的主机数变化幅度过大。A类网络拥有8位网络ID,主机ID为24位,故一个网络中存放的主机数量可以达到一千六百万台。B类网络中中存放的主机数量可以达到六万台,而C类网络中存放的主机数量仅两百余台。ABC类分类方式过于不灵活。
例:
当前存在两台路由器:企业的路由器与通信单位(如电信)的路由器。两者之间并无其他的任何主机,仅靠线路相连。此类网段将来只需要配备企业路由器与通信单位路由器两个地址,但ABC分类方式中,至少也需要第三方,即C类路由器的存在。而C类中存在254个地址,分配C类254个地址的过程中,实际运用到的地址只有两个,大大浪费了地址的运用效率。
故,由于ABC种分类方式已不再适用于当今市场,而是采用了无类分类方式,即无类 CIDR 无类域间路由。
2.无类域间路由的分类
网络ID总数中,部分位数被固定为网络ID或主机ID,依照此间不同被分为不同的类别。
3.CIDR 无类域间路由
无类指网络ID,主机ID不确定,32位以内灵活调控,不受分类的限制,根据情况自行决定位数以内的相对调整,如24位、21位、27位等。
4.netmask
即子网掩码。在ID不固定后,由于失去ABC分类方式的辅助判断,为分辨网络ID和主机ID的详细位数而产生的技术。
(1)定义
真实本质为32位二进制数,网络ID数。netmask对应为1,主机ID数,netmask对应为0。为方便运用与观看,实际运用书写采用的实际上是十进制。
(2)网络ID和主机位数的体现
netmask与IP地址成对出现,一个IP地址对应于一个netmask。其规定IP地址中具有的网络ID位数对应的数量对应到子网掩码中以1的形式呈现,即netmask中对应呈现为1的数量。主机ID对应的位数对应到netmask中呈现为0的数量。
例:
若172.20前16位为网络ID,后24位为主机ID,书写成对应的redmask即前16位为1,后16位为0的形式。在此基础上改写为十进制。即:255.255.0.0为其子网掩码。
通过0和1的位数以查看对应ID 的位数。
(3)ABC类划分方式相对应的子网掩码
A:255.0.0.0
(前8位为网络ID,后24位为主机ID,255对应8个1,0.0.0对应24个0)
B:255.255.0.0
(前16位为网络ID后16位为主机ID,255.255对应16个1,0.0对应16个0)
C:255.255.255.0
(前24位为网络ID,后8位为主机ID,255.255.255对应24个1,0对应8个0)
D、E类地址(D:多播,E:保留)
由于属于特殊地址,并不拥有子网掩码的概念,故不存在子网掩码。
(4)CIDR 无类域间路由表示法
拥有无类子网掩码的写法后,为了便于书写,形成了更为简单的直接表现形式:IP/网络ID位数
由于无类网络的具体ID位数在总和32位当中不定切换,不再是8位ID的固定形式,故若只关注十进制形式的网络ID位数表示,则在8位ID位数情况中,若其全为0:00000000 0,有成为子网掩码的可能性。同样,子网掩码靠前位数全为1,靠后全为0,形成连续的1和连续的0即有可能形成子网掩码。
(相对于书写成子网掩码,此种表示方式更为简洁简单)
例子:
以下情况都有可能成为子网掩码的数字
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255
优点:方便,利于转化。
(5).公式
1) 网络(网段)数量=2^可变网络ID位数
2) 一个网络的主机数量=2^主机ID位数-2
=2^(32-网络ID位数)-2
3) 网络ID=IP与子网掩码netmask
(6)练习
练习1
172.20.0.123 网络ID位数是22位,试问netmask数为?
由于网络ID中1的位数对应为子网掩码netmask的位数,即255.255中存在两组8个1,共16个1,缺少6个1,根据上述可能成为子网掩码数字中寻找6个1的情况:11111100 252,
则netmask数表示为:255.255.11111100.0或255.255.252.0
无类域间路由表示法:172.20.123/22
练习2
200.222.123.23/26
1.求其netmask
进行26个1的数数,剩余的转化成十进制即可得netmask
255.255.255.192
(前255.255.255相加即为24个1,剩余两个1注解书写成11,而根据CIDR无类域间路由表示法,11000000可表示为192,即最终结果如上。)
2.求其存放主机数
公式:2^(32 -网络ID位数) -2=2
即得主机ID位数=2
2^(32 -26)-2=62
两台主机要取得通讯,首先确定两方是否位于同一个网段,即网络编号相同才能进一步决定详细措施。
练习3
当前存在两个路由器,中间只拉一根网线进行连接,并不存在任何其他的主机,此时应该使用何种子网掩码足够其实用且不造成地址的浪费、效率低下?。
此问题等于变相询问:在此网络中,IP地址仅有2,即“一个网络的主机数量=2”主机ID位数-2=2^(32-网络ID位数)-2”此公式的反向推导。
2^(32-网络ID位数)-2=2
主机ID位数=2
网络ID位数=30
即子网掩码为255.255.255.252
5.判断两台主机是否位于同一网段
IP地址与子网掩码相与
两个主机进行通讯,首先需要判断两者是否存在于同一网段内。只有判断出是否存在于同一网段中,才能进一步决定两者是由arp广播进行直接寻找或是通过路由器的转化得以实现。
例:
192.168.1.100
255.255.255.0
192.168.1.0即上述IP地址所在网络的网络ID
练习1
A机器:172.20.222.123/20 netid:172.20.208.0
B机器:172.20.230.100/20 netid:172.20.224.0
求两机器是否在同一网段(网络ID是否相同)
分别进行与运算
172.20.222.123
//20个1和12个0相与
255.255.11110000.0
//255.255表示16个1,20-16=4,补上缺乏的4个1。根据1和任何值相与仍然保留原值,即结果为相与值本身的特性,255=8个1,与172相与得到原值,与20相与同样的到原值。
222的二进制算法结果:
172.20.11011110.
11110000
//仅需要前4位和1相与的、保留原值的数字,而和0相与的数字结果全为0。
11010000.0
//最终网络ID结果
//172.20.222.123/20的十进制表示:172.20.208.0
//172.20.230.100/20的十进制表示:172.20.224.0
230
1110 0000
1111 0000
//取前四位相与
由于前四位ID已经出现了不同,故也可通过直接判断得出两台主机并不存在于同一网段之中。
练习2
A:192.168.1.100/16;B:192.168.2.100/16
判断两机器是否在同一网段(即求网络ID是否相同)
总体上一旦有不同都不存在于同一网段。其中,仅观察两数字的前16位,即192.168和192.168,由于A、B前16位完全相同,故两者存在于同一网段。
若更改题目
A:192.168.1.100/24;B:192.168.2.100/24
此时需要查看前24位,即192.168.1和192.168.2,由于A、B出现了不同的“1”和“2”,故两者不存在于同一网段之中。
变式
A:192.168.1.100/16;B:192.168.2.100/24
此时判断两者是否存在于同一网段之中
如果是A-->B的数据,此时站在A视角去判断自身与B是否位于同一网段
步骤1:利用A本身的子外掩码与IP地址进行与运算得出结果:
192.168.0.0
步骤2:由于A本身并不了解B的子外掩码,故针对对方B的运算过程中,需要使用A本身的子外掩码=16和B的IP地址进行与运算。 相与结果可得:
192.168.2.100
步骤3:比较
由于192.168.2.100与16=192.168.0.0(A取192.168,B取192.168),故A、B位于同一网段之中
如果是B -->A的数据,此时站在B视角去判断自身与A是否位于同一网段
步骤1:使用B本身的子外掩码=24和自己的IP地址相与,得到结果:
192.168.2.0
步骤2:由于B本身并不了解A的子外掩码,故针对对方A的运算过程中,需要使用B本身的子外掩码=24和A的IP地址进行与运算。相与结果可得:
192.168.1.0
步骤3:比较
由于192.168.2.0和192.168.1.0并不相等(A取192.168.2,B取192.168.1),故两者位于不同网段之中。
192.168.1.100/24;B:192.168.2.100/24
此种场景中不可进行片面判断,需要站在两方面的不同角度综合考虑情况的可能性。故而,当配置地址的过程中发现无法上网而更改子网掩码的操作,由于其本身判断机制的原因导致此种方式并不准确。
例:
以教室老师的主机为172.20.0.1为例,单纯从上网角度而言,IP地址配置为172.20.0.100/24或172.20.0.100/16都是可行的。
连接互联网时,假设访问互联网地址为6.6.6.6,欲达到上网目的现进行互联网与本身主机是否位于同一网段的判断,由于16位或24位与6.6.6.6都不位于同一网段,得出结果为否,则应进行寻找网关的操作。由于网关与自身存在于同一个网段,此后将数据包传输给网关,只需要网关自行访问网络6.6.6.6即可。
而对于学生而言,若其配置为172.20.100.100,老师为172.20.0.100/24,由于前24位的不同,两者并非位于同一网段,故存在无法进行通讯的可能性。
经过判断后,如若两者存在于同一网段中,进行ARP广播即可进行通讯操作;如若不存在于同一网段,则需要将数据包发送至网关处。如若未配置网关,即意味着两者无法进行直接通讯。
6.单臂路由
如图存在一个交换机,分别连接两个主机,尽管物理角度两者位于同一主机当中,但由于人为将两者的IP地址配置为了不同网段,故若A需要与B进行通讯,需要借助到网关,寻找路由器。
通常路由器拥有着诸多接口,但图中的路由器仅存在一个接口将物理逻辑的两个主机连接到一起。此种路由器形式较为特殊,被称为单臂路由。单臂路由同时意味着本身需要配置与自身相连接的主机相符的 地址,反映到图中,即:同时配置有A、B两个网段地址。
7.网关的目的
与对方主机不存在同一网段时,为了连接不同网段的主机使其能够相互进行通讯,需要运用到网关,故,在合理的主机配置中,其I P地址与网关地址应存在于同一网段之中。
七、总练习
练习1
198.168.199.111/21
(1)网络ID:192.168.199.111和子外掩码与255.255.248.0
192.168.199.111
255.255.248.0
和1相与的保留原值:192.168.11000111.111
255.255.248.0
192.168.11000111.111
255.255.11111000.0
192.168.192.0
(2)netmark:255.255.248.0
(3)主机数:
公式:主机ID位数-2=2^ (32-网络ID位数) -2
2^11-2=2046
(4)min ip,max ip
在数字保持不变的的情况下,只取前21位
192的二进制;192.168.11000 000.00000000,前11位为网络ID不可动,只能变剩余的11位。而全为0是不合理的,最小也需要取到1,则最大的数字即主机ID数为只有一个0
192.168.11000 000.00000001 192.168.192.1 标准十进制写法:192.168.192.1/21
192.168.11000 111.11111111 192.168.199.254 标准十进制写法:192.168.199.254/21
练习2
222.111.188.123 netmark:2555.255.255.192
(1)网络ID:
进行网络IP地址和子外掩码的相与
与1相与保留原值,123进行二进制,最高位不足以达到128,即转化为0,但最高位超过了24,即第二位为1,后续与0相与皆为0。
222.111.188.01xxxxxx
255.255.255.11000000
252.111.188.64
(2)CIDR:222.111.188.123/26
由于255.255.255相加即为24个1,剩余两个1注解书写成11,而根据CIDR无类域间路由表示法,11000000可表示为192,即最终结果如上。
(3)主机数:2^(32-26)-2=62 26-网络ID位数
(4)min ip,max ip
剩下的六位数可变,不可全为0,即最小IP末尾为1
222.111.188.01 000001 十进制:222.3111.188.65
剩下的六位数可变,不可全为1,即最小IP末尾为0,改为十进制64+62=126
222.111.188.01 111110 十进制:222.3111.188 126