企业IP地址规划部署实战
目录:
一、TCP/IP与OSI/RM的对应关系
二、ARP协议
三、TCP协议和UDB协议
四、IP的信息
五、跨网段通讯的实现
六、无类域间路由
七、总练习
一、TCP/IP与OSI/RM的对应关系
现进行TCP/IP内容的讲解,提及到TCP/IP的分层结构。TCP/IP与OSI/RM模型拥有一个大概的对应关系。TCP/IP更少一些,为四层结构,OSI/RM为七层结构。其相比之下前者层次更少。TCP/IP协议的最下方一层-应用层对应于OSI/RM模型的上下层:即会话层、表示层和应用层;在TCP/IP协议中,其从上往下数的第二层-传输层对应于OSI/RM模型的传输层,此间为一一应的关系;其下拥有一层Internet层,对应到OSI/RM模型中为网络层;OSI/RM剩下的最下面的两个层次即数据链路层、物理层在TCP/IP协议中对应为网络访问层。
在诸多硬件、协议的概念中,都可以将其归纳为各个层次。例如往前是所讲的:硬件、交换机、网桥、路由器。这些设备分别属于的层次中,例如网桥属于数据链路层,其与交换机的原理相当,根据MAC地址表进行数据的转发。其在转发数据的过程中,MAC地址表的信息通过学习数据包的原地址,但在转发数据时又是借助数据包中的目标MAC地址来进行的。此间的工作原理需要进行清楚的明了。
二、ARP协议
此前介绍到的,与MAC地址相关的协议,即地址解析协议。其是将IP地址转化为MAC地址。ARP协议基于广播之上,因此若有跨网段通讯的情况,由于其不能跨路由,故其是通过一段一段进行通讯。其通讯过程,在windows等中都可进行ARP缓存表的查询。只要在主机上进行过一次通讯,其也同样能够在主机中生成此表。
ARP协议属于TCP/IP模型中的Internet层(对应为网络层)。其中,网络层也包括IP协议、RARP协议、ICMP协议。
三、TCP协议和UDB协议
在传输层较为重要的协议:TCP协议和UDB协议。两者的区别主要存在于报文首部的格式差别。TCP报文首部中包含编号、确认号,此外还含有标记(共6个标记位。较为重要的标记位例如三次握手四次挥手相关:SYN位、ACK位、FIN位,不同位的标记使得TCP协议的会话处于不同状态)等。状态同样包含众多,此前讲述到的状态有11种类:数据的切换、三次握手、四次挥手(从一种状态切换到另一种状态下)等等。
四、IP的信息
包含IP的版本,即来自于何种包的表示、分片标记位等。IP地址带有关键的原地址、原IP地址、原目标地址......实际上在IP地址中其位数,如IPV4是32位的IP地址,则32位的IP地址中,部分为主机ID位,另一部分为网络ID位。明确规定IP地址中,前部分为网络ID位,后部分为主机ID位。而其中网络ID位一定在最前,而网络ID位、主机ID位的详细位数,与ABC划分方式密切相关。传统IP地址是分类的,看清属于的类别即可分别而出具体的位数属于哪类型。
网络ID位标示除了此IP位于何种网段,即为网络的标号。不同的网段网络ID自不相同。如果位于同一个网段中,则网络ID大多数情况应该相同。
五、跨网段通讯的实现
1.实例
实际过程中,可能会遇到此类场景。
假设交换机分别直接连接两个主机,通常情况下两主机位于同一交换器之下,且未划分VLAN,直接连接后配置地址,则通常情况下两主机应该位于同一网段、同一地址中。在一个网段中配置的地址自然应该位同一地址。
假设故意使其中一台主机的配置出现了失误,试问:两主机是否仍存在于同一网段?
如若进行ABC类分类方式:
一般规定前16位为网络ID;A类前8位为网络IO;C位前24位为网络ID。1-126属于A类地址,127拥有特殊作用被排除后,128-191开头为B类;192-223属于C类;224-239属于D类;240之后属于E类......但D类、E类并不能使用。
在电脑中配置地址时,如若配置的地址故意超过范围,会被电脑给予超出提醒。
(范围仅能够为1-223,即ABC类划分方式,D类地址属于多播地址,不能配与单机,而E类为保留下来的未使用到的地址,不能使用。)
根据此类划分方式,则172属于B类地址,意味着前16位为网络ID,172.20属于此范围。但172.18并不在此范围内,故两主机不存在于同一网段、在路由器吧连接交换机的情况下,物理角度两者都位于交换机一侧,属于同一网段。但逻辑角度(IP地址)两者不在同一网段。
故只要两主机不在同一网段,想要实现跨网段通讯就必须通过路由器的运用。
即此案例中,即使两台主机已然连接于同一交换机之中,欲实现通讯也必须经过首先路由器、再移动到另一台主机之中。
需要路由器的原因与系统主机中的路由表密切相关。
2.查询路由表的命令
(1)route -n
实例:
[root@centos7 ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.20.0.1 0.0.0.0 UG 100 0 0 ens37
172.20.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.30.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0virbr0
(2)ip route
[root@centos ~]#ip route
defaut via 172.20.0.1 dev ens37 proto static metric 100
172.20.0.0/16 ens37 proto kernel scope link src 172.20.102.77 metric 100
192.168.30.0/24 dev ens33 proto kernel scope link src 192.168.30.100 metric 100
192.168.122.0/24 dev virbro proto kernel scopelink src 192.168.122.1
六、无类域间路由
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