目录
前言
学IE以前认为IA很简单,学IE以后发现IA最重要;好多IE学员拿到证以后还不知道什么是二层转发,什么是三层转发;这些都是IA的基础,基础扎实学IE才会顺风顺水一举拿下,学IA一定要做到对知识点一公里深一厘米宽,知识点延展不用太宽。
没有什么知识点是一个实验解决不了的,如果有就再抓个包!
IP地址
本篇文章讲的IP地址指的是IPv4地址。
IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层。
IP地址作用是用来寻址(寻找广播域/网段)
同一广播域通过MAC地址通信,不同广播域使用IP地址通信。
IP编址
IP地址分为网络位与主机位。
IP地址由32个二进制组成,通常用点分十进制形式表示。
网络号码字段(Net-id):用来标识一个网络。
主机号码字段(Host-id):用来区分一个网络内的不同主机。对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一网络中。
每个网段上都有两个特殊地址不能分配给主机或网络设备。
第一个是该网段的网络地址,该IP地址的主机位为全0,表示一个网段。
第二个是该网段中的广播地址,目的地址为广播地址的报文会被该网段中的所有网络设备接收。广播地址的主机位全为1。
网段的广播地址应用场景:网关更换后,在新的网关上ping该网段的广播地址。
除了网络地址与广播地址,其他IP地址可以作为网络设备的IP地址,被称为可用主机地址。
进制
在IP网络中,二进制与十六进制是常用的编码方式。
了解这些进制对理解IP网络基础知识很有必要。每种进制使用不同的基值表示每一位的数值。二进制每一位只有0和1两个值,基值为2,二进制数的每一位都可以用2的x次幂来表示,x表示二进制数的位数。十六进制的每一位可以有16个数值,范围为0-F(即0-9和A-F),A对应十进制的10,F对应十进制的15(二进制的1111)。
进制之间的转换
IP地址以字节为单位分为四段,每字节包含8个比特,可以表示0到255,共256个数值。从二进制到十进制转换表中可以看到每一位二进制数所代表的的十进制数。上面的表格举例说明了8位二进制数转换为十进制数和十六进制数的情况。从表格中也可以看到全0和全1所对应的十进制数和十六进制数。
二进制与十进制转换
32位的IP地址分为4个字节,每个字节有256个取值。因此,理论上IPv4可以有4 294 967 296个IP地址,但实际上只有其中一部分地址可以分配给网络设备使用。本例中,IP地址的前三个字节表示网络号,最后一个字节表示该网络上网络设备可用的地址范围。将二进制格式的IP地址转换为十进制格式时,需要把二进制中每一位1所代表的值加在一起,得出IP地址的十进制值。
IPv4地址分类
为了方便IP地址的管理及组网,IP地址分为五类。
目前大量使用的IP地址属于A、B、C三类IP地址中的一种。D类地址是组播地址,E类地址保留。A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。
组播地址分类
224.0.0.0~224.0.0.255 | 永久组地址,保留给协议用 |
224.0.1.0~231.255.255.255 233.0.0.0~238.255.255.255 | ASM组播地址,全网有效 |
232.0.0.0~232.255.255.255 | SSM组播地址,全网有效 |
239.0.0.0~239.255.255.255 | 本地管理组地址,仅在本地管理域内有效,在不同管理域内重复使用相同的管理组地址,不会导致冲突 |
IP地址类型
IPv4中的部分IP地址被保留用作特殊用途。为节省IPv4地址,A、B、C类地址段中都预留了特定范围的地址作为私网地址。现在,世界上所有终端系统与网络设备需要的IP地址总数已经超过了32位IPv4地址所能支持的最大地址数。为主机分配私网地址节省了公网地址,可以用来缓解IP地址短缺的问题。企业中普遍使用私网地址,不同企业网络中私网地址可以重叠。默认情况下,网络的主机无法使用私网地址与公网通信;当需要与公网通信时,私网地址必须转换成公网地址。还有其他一些特殊IP地址,如127.0.0.0网段中的地址为环回地址,用于诊断网络是否正常。IPv4中的第一个地址0.0.0.0表示任何网络。IPv4中的最后一个地址255.255.255.255是0.0.0.0网络中的广播地址。
私有地址范围
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
特殊地址
127.0.0.0~127.255.255.255
0.0.0.0
255.255.255.255
IPv4报文格式
一个IPv4数据报文由首部与数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IPv4数据报必须具有的。在首部的固定部分后面是一些可选字段,其长度是可变的。
字段 | 长度 | 含义 |
版本 | 4比特 | IP协议的版本号,分为IPv4与IPv6协议。 |
首部长度 | 4比特 | IPv4的首部长度。 |
区分服务 | 8比特 | 服务类型。只有在有QOS差分服务要求时这个字段才起作用。 |
总长度 | 16比特 | 整个IP数据报的长度,包括首部与数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。 |
标识 | 16比特 | 主机每发一个报文,加1,分片重组时会用到该字段。 |
标志 | 3比特 | 目前只有两位有意义,Bit 0:保留位,必须为0。Bit 1:DF(Don't Fragment),能否分片位,0表示可以分片,1表示不能分片。Bit 2:MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。 |
片移位 | 13比特 | 分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。 |
生存时间 | 8比特 | 可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。 |
协议 | 8比特 | 下一层协议。指出数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。 常见值:
|
首部校验和 | 16比特 | 只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。 |
源地址 | 32比特 | 源IP地址。 |
目的地址 | 32比特 | 目的IP地址。 |
选项字段 | 可变 | 用于支持排错,测量以及安全等措施。选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。 |
数据部分 | 可变 | 用来填充报文。 |
网络通信
源主机必须要知道目的主机的IP地址后才能将数据发送到目的地。源主机向其他目的主机发送报文之前,需要检查目的IP地址与源IP地址是否属于同一网段(将目的IP与自己的掩码进行与运算)。
二层转发:如果是同一网段,则报文将被下发到底层协议进行以太网封装处理。
三层转发:如果目的地址与源地址不在同一网段,则主机需要获取下一跳路由器的IP地址,然后将报文下发到底层协议处理。
子网掩码
子网掩码用于区分网络部分与主机部分。子网掩码与IP地址的表示方法相同。每个IP地址与子网掩码一起可以用来唯一的标识一个网段中的某台网络设备。子网掩码中的1表示网络位,0表示主机位。
默认子网掩码
A类地址缺省子网掩码为8位
B类地址缺省子网掩码为16位
C类地址缺省子网掩码为24位
子网划分
通过将IP地址的网络部分进一步划分为若干个子网,解决了IP地址空间利用率低与两级IP地址不够灵活的问题。
当一个单位的主机很多时,为了便于管理,可将单位内部的主机号码再进一步划分为多个子网。通过子网划分,整个网络地址可以划分成更多的小网络。
子网的划分是网络内部的行为,从外部看,这个单位只有一个网络号码。只有当外部的报文进入到本单位范围后,本单位的路由设备才根据子网号码再进行选路,找到目的主机。
如下图所示,为一个B类IP地址子网划分情况,其中子网掩码由一串连续的“1”与一串连续的“0”组成。“1”对应于网络号码与子网号码字段,而“0”对应于主机号码字段。
把一个B类地址的Host-id的高位5bits用来划分子网,Subnet-id的范围是从00000~11111,总共可以划分32(2^6)个子网。子网对应的子网掩码也会相应的发生变化,比如Subnet-id为11111的子网掩码就是255.255.248.0。将IP地址与其相应掩码执行与运算的结果就是网络地址。
多划分一个子网号码字段是要付出代价的。举例来说,本来一个B类IP地址可以容纳65534(2^16-2)个主机号码。但是划分出5bits长的子网字段后,最多可有32个子网,每个子网有11bit的主机号码,即每个子网最多有2046(2^11-2,去掉全1与全0的主机号码)个主机号码。因此主机号码的总数是(32x2046=65472)个,比不划分子网要少62个,子网划分越多可用IP地址浪费越多。
子网划分与IP地址规划时,通常需要综合考虑以下原则,实现合理高效的网络规划。
层次性
实现网络的层次性划分,需要综合考虑地域与业务因素,采用自顶向下的方法规划,达到有效管理网络、简化路由表的目标。一般情况下:
- 对于大骨干网络与大城域网络相结合的网络,采用层次性划分方式。
- 对于行政区类型的网络,采用多级网络分配方式。
连续性
连续地址在层次结构的网络中易于进行路由聚合,大大缩减路由表数量,提高路由查找的效率。
- 尽量为每个区域分配连续的IP地址空间。
- 尽量为具有相同业务与功能的设备分配连续的IP地址。
扩展性
分配地址时,在每一层次上都要有余量。当网络规模扩展时能保证地址分配的连续性,实现网络的长远规划。骨干网络应有足够的连续地址组成独立的自治域,并为今后的扩展留有余地。
高效性
划分子网时,要保证充分利用地址资源,使子网的划分满足主机个数的要求。
- 利用可变长子网掩码VLSM(Variable Length Subnet Mask)技术分配IP地址,充分合理地利用地址资源。
- 与网络的路由机制设计相结合,合理使用已规划的地址空间,提高地址的利用率。
变长子网掩码
在设计网络时使用有类IP地址会造成地址的浪费。使用缺省子网掩码会存在一定的局限性,因为网段中划分多个网段后,每个网段中的实际主机数量可能有限,导致很多地址未被使用。
可采用变长子网掩码解决上述问题。
缺省子网掩码可以进一步划分,成为变长子网掩码(VLSM)。通过改变子网掩码,可以将网络划分为多个子网。
本例中的地址为C类地址,缺省子网掩码为24位。现借用一个主机位作为网络位,借用的主机位变成子网位。一个子网位有两个取值0与1,因此可以划分两个子网。该比特位设置为0,则子网为0,该比特位设置为1,则子网号为128。将剩余的主机位都设置为0,则可得到划分后的子网掩码;将剩余的主机位都设置为1,即可得到子网的广播地址(192.168.1.127)。每个子网中支持的主机数为2^7-2=126个主机地址。
子网划分与变长子网掩码区别
子网划分可以理解是行为,变长子网掩码是方法,使用变长子网掩码方法进行子网划分。
无类域间路由
CIDR增强了网络的可扩展性。
无类域间路由CIDR(Classless Inter Domain Routing)由RFC1817定义。CIDR突破了传统IP地址的分类边界,将路由表中的若干条路由汇聚为一条路由,减少了路由表的规模,提高了路由器的可扩展性。
如下图所示,一个企业分配到了一段A类地址10.24.0.0/22,该企业准备把这些A类网络分配给各个用户群,目前已经分配了四个网段给用户。如果没有实施CIDR技术,企业路由器的路由表中会有四条下连网段的路由条目,并且会把它通告给其他路由器。
通过实施CIDR技术,我们可以在企业的路由器上把这四条路由10.24.0.0/24,10.24.1.0/24,10.24.2.0/24,10.24.3.0/24汇聚成一条路由10.24.0.0/22。这样,企业路由器只需通告10.24.0.0/22这一条路由,大大减少了路由表的规模。
配置接口借用其他接口的IP地址
背景信息
在某些应用环境下,为了节约IP地址资源,需要配置某个接口借用其他接口的IP地址。有时某个接口只是偶尔使用,这种情况也可配置该接口借用其他接口的IP地址,而不必让其一直占用一个单独的IP地址。
在配置接口借用IP地址时,有如下的限制条件:
- 被借用方接口的IP地址本身不能为借用来的IP地址。
- 被借用方接口的IP地址可以借给多个接口。
- 被借用方接口的IP地址如果有多个IP地址,则只能借用主IP地址。
- 被借用方接口的IP地址如果没有配置IP地址,则接口借用到的IP地址为0.0.0.0。
- 借用方接口不能为以太网接口。
- Loopback接口的IP地址可被其它接口借用,但Loopback接口不能借用其它接口的IP地址。
操作步骤
- 执行命令system-view,进入接口视图。
- 执行命令interface interface-type interface-number,进入接口视图。接口类型可以是VLANIF接口与Tunnel接口。
- 执行命令ip address unnumbered interface interface-type interface-number,配置借用接口指定接口的IP地址。
说明:ip address unnumbered命令仅指定接口借用其他接口的IP地址,借用方接口的其他属性(例如路由协议的使能情况)需要单独配置。
IP地址常见配置错误
接口下配置IP地址不成功
故障分析
接口下配置IP地址过程中出现错误,导致IP地址配置不成功。
操作步骤
- 根据下表检查错误提示信息,并对照采取故障排查方法。
错误提示信息及对应的故障排除方法
错误提示信息 | 错误提示信息解释 | 故障排除方法 |
---|---|---|
Error:The specified IP address is invalid. | 无效的IP地址,IP地址或子网掩码错误。 | 请检查后重新配置。
|
Error:The specified address conflicts with another address. | IP地址冲突,本设备的其他接口已使用了相同网段的IP地址。 | 请使用其他网段IP地址进行配置。 |
Error:The specified primary address does not exist. | 删除的主地址不存在。 说明:一个接口只能有一个主IP地址,当配置主IP地址时,如果接口上已经有主IP地址,则原主IP地址被删除,新配置的地址成为主IP地址。 | 无需执行删除操作。 |
Error:Please configure the primary address in the interface view first. | 设备没有配置主IP,所以无法配置从IP。 | 先给设备配置主IP地址。 |
Error:The number of addresses of the specified interface reached the upper limit(31). | 在接口上配置的从IP地址超过最大数目,无法继续配置从IP地址。 说明:默认情况下,每个接口最多可以配置31个IP地址。 | - |
Error:Please delete the sub address in the interface view first. | 无法删除主IP地址。 | 请先删除接口下所有的从IP地址,再删除主IP地址。 |
Error:The specified address cannot be delete because it is not the primary address of this interface. | 无法删除从IP地址,无法使用删除主IP地址的命令删除从IP地址。 | 请执行删除从IP地址的命令undo ip address ip-address { mask | mask-length } sub |
Error:The specified sub address does not exist. | 删除的从IP地址不存在。 | 无需执行删除操作。 |
Error:The address already exist. | 接口下已经有相同的IP地址了,应该配置其他的IP地址。 | 请使用其他的IP地址进行配置。 |
接口下配置借用IP地址后无法通信
故障分析
借用接口类型不是VLANIF接口、Tunnel接口;被借用接口本身没有配置IP地址或者借用接口没有配置到对端设备的静态路由,导致配置借用IP地址后无法通信。
操作步骤
1.检查借用接口类型是否为VLANIF接口、Tunnel接口。
说明:目前设备进支持VLANIF接口、Tunnel接口借用其他接口的IP地址,以太网接口不能借用其他接口的IP地址。
查看配置借用IP地址的接口类型,如果是VLANIF接口、Tunnel接口,请执行步骤2。
2.检查被借用接口是否已经配置了IP地址。
在被借用接口视图下执行命令display this,检查该接口下是否已经配置了IP第一种。
- 如果没有ip address x.x.x.x字段,请在该被借用接口视图下执行命令ip address ip-address { mask | mask-length }配置IP地址。
- 如果有ip address x.x.x.x字段,请执行步骤3。
3.检查设备上是否配置了到对端设备的静态路由。
说明:由于借用接口本身没有IP地址,无法在此接口上启用动态路由协议,所以必须手工配置一条到对端设备的静态路由,才能实现设备与对端设备之间的连通。
执行命令display ip routing-table,检查Proto值等于Static的路由中是否有到对端设备的静态路由。
- 如果在这些静态路由中,没有Destination/Mask值等于对端设备的目的IP地址,说明没有配置静态路由,请执行命令ip route-static ip-address { mask | mask-length } interface-type interface-number [ nexthop-address ],配置静态路由。
- 如果在这些静态路由中,有Destination/Mask值等于对端设备的目的IP地址且出接口为借用地址的接口,说明已经正确配置了静态路由,请执行步骤4。
4.请收集如下信息,并联系技术支持人员。
- 上述步骤的执行结果。
- 设备的配置文件、日志信息、告警信息。