目录
本章重要程度:☆☆☆☆☆
■ ARP和RARP
为什么需要ARP?
数据链路层在进行数据封装时,需要目的MAC地址。
▲ ARP工作过程
主机A发送数据包给主机B之前,首先通过ARP协议根据IP地址获取主机MAC地址。
arp -a 查看ARP缓存。
如果没有,则发送ARP请求报文。
更新ARP缓存。
ARP响应(Reply)。
主机A,更新ARP缓存。
ARP解析主要过程如下:
①主机A查询自己的ARP缓存表,发现没有主机B对应的MAC地址;
②主机A发送ARP Request广播报文;
③主机B把主机A的IP、MAC对应信息填入自己的ARP缓存中(ARP学习);
④主机B发送ARP Reply,把自己的MAC地址信息回复给主机A;
⑤主机A收到主机B的ARP Reply信息,将主机B的IP、MAC对应信息填入自己的ARP缓存中。
▲ 免费ARP
免费ARP可以用来探测IP地址是否冲突。
▲ 代理ARP
PC1和PC2在同一网段,但网关设备却在不同网段,如果PC1 ping PC2,在网关设备上开启代理ARP功能,网关设备会以自己的MAC地址代为应答。代理ARP具备如下特点:
部署在网关上,网络中的主机不必做任何改动。
可以隐藏物理网络细节,使两个物理网络可以使用同一个网络号。
只影响主机的ARP表,对网关的ARP表和路由表没有影响。
ARP总结
ARP(Address Resolution Protocol,地址解析协议)作用是根据IP地址查询MAC地址。 类型中的动态表示是通过ARP协议学习到的,静态表示是手动绑定的。通过命令arp -a或arp -g查看ARP缓存表。删除ARP表项命令是arp -d,静态绑定命令是arp -s。
RARP(Reverse Address Resolution Protocol,反向地址转换协议)可以根据MAC地址直找IP地 址,常用于无盘工作站。由于设备没有硬盘,无法记录IP,刚启动时会发送一个广播报文,通过MAC去获取IP地址。
免费ARP(Gratuitous ARP)用于检测IP地址冲突,通常发生在接口配置的时候, 比如接口刚刚DHCP获取了IP地址,就会对外发送免费ARP。原理:主机发送ARP查找自己IP地址对应的MAC地址,如果有终端回复表示发生了IP地址冲突。
代理ARP: 用于端口隔离、Aggragation-VLAN、单臂路由。
◎ 真题
ARP报文分为ARP Request和ARP Response,其中ARP Request采用(20)进行传送,ARP Response采用(21)进行传送。
A.广播 B.组播 C.多播 D.单播
A.广播 B.组播 C.多播 D.单播
◎ 真题
该企业在网络中使用了VLAN技术,将一个物理的LAN在逻辑上划分成多个(广播域/逻辑网络)的通信技术,相同VLAN内进行二层隔离可采用交换机的(端口隔离/port-isolate)功能,隔离后二层主机之间需要通信,则需要在主机网关上配置(代理ARP)功能。
【解析】由于是相同VLAN内的隔离技术,不能写MUX-VLAN。 交换机端口隔离配置:
[Huawei-GigabitEthernet0/0/1] port-isolate enable group group-id
如果不指定group-id参数时,默认加入的端口隔离组为1。
采用二层隔离三层互通的隔离模式时,在VLANIF接口上使能VLAN内Proxy ARP功能,可以实现同一VLAN内主机通信。配置命令:
arp-proxy inner-sub-vlan-proxy enable。
■ ICMP
ICMP(Internet Control Message Protocol,Internet控制报文协议),封装在IP报文中,协议号 为1,用来传递差错、控制、查询等信息,典型应用ping/tracert依赖ICMP报文。
传输期间生存时间为0:tracert过程中,TTL减为0时想客户端回复该报文。
在数据包组装期间生存时间为0:分片丢失,不能完成IP数据包重组。
▲ ICMP应用-ping
Echo Request和Echo Reply分别用来查询和响应某些信息,进行差错检测。
▲ ICMP应用-tracert
tracert可以记录下数据包经过的每一跳路由器的IP地址,从而显示完整的路径。
tracertroute是Linux下的路径跟踪程序,中间都是TTL超时报文(Type=11,Code=0),最后一个是端口不可达。
而tracert是Windows下的跟踪程序,所有节点返回都是TTL超时报文。
◎ 真题
当IP报文在网络中传输时,如果其生存时间(TTL)减至0,将会发送ICMP消息的是()。
A.Destination Unreachable
B.TTL Exceeded
C. Parameter Problem
D.Source Quench
■ ICMPv6和NDP
▲ICMPv6
ICMPv6报文分为两类:差错报文和信息报文。
差错报文(Error Messages),也称为差错消息,Type字段最高bit为0,也就是ICMPv6 Type=[0, 127]差错消息用于报告在转发IPv6数据包过程中出现的错误,如常见的目的不可达、超时等。
信息报文(Information Messages), 也称为信息消息,Type字段最高bit为1,也就是ICMPv6 Type=[128,255] 。信息报文可以用来实现同一链路上节点间的通信和子网内的组播成员管理、地址自动配置等。
▲ICMPv6差错报文应用 - Path MTU发现
在IPv6中,中间转发设备不对IPv6报文进行分片,报文的分片将在源节点进行。
PMTU(Path MTU)就是路径上的最小接口MTU。
PMTUD(Path MTU发现机制)的主要目的是发现路径上的MTU,当数据包被从源转发到目的地的过程中避免分段。
依赖PMTUD,数据的发送方可以使用所发现到的最优PMTU与目的地节点进行通信,这样可以避免数据包在从源传输到目的的过程之中,被中途的路由器分片而导致性能的下降。
▲ICMPv6信息报文应用 - Ping
Ping基于ICMPv6信息报文实现。
Echo Request:用于发送到目标节点,以使目标节点立即发回一个Echo Reply应答报文。EchoRequest报文的Type字段值为128,Code字段的值为0。
Echo Reply:当收到一个Echo Request报文时,ICMPv6会用Echo Reply报文响应。Echo Reply报文的Type字段的值为129,Code字段的值为0。
▲NDP
IPv6邻居发现协议(Neighbor Discovery Protocol,简称NDP或ND)定义了5种类型的信息,包括: 路由器宣告、路由器请求、路由重定向、邻居请求和邻居宣告,具体如下功能:
路由器发现:发现链路上的路由器,获得路由器通告的信息。
无状态自动配置:通过路由器通告的地址前缀,终端自动生成IPv6地址。
重复地址检测:获得地址后,进行地址重复检测,确保地址不存在冲突。
地址解析:请求目的网络地址对应的数据链路层地址,类似IPV4的ARP。
邻居状态跟踪:通过NDP发现链路上的邻居并跟踪邻居状态。
前缀重编址:路由器对所通告的地址前缀进行灵活设置,实现网络重编址。
重定向:告知其他设备,到达目标网络的更优下一跳。
▲NDP报文类型及功能
NDP使用以下几种ICMPv6报文:
133 RS(Router Solicitation):路由器请求报文 。路由器发现,前缀重编址。
134 RA(Router Advertisement):路由器通告报文 。路由器发现,前缀重编址。
135 NS(Neighbor Solicitation):邻居请求报文 。地址解析,重复地址检测。
136 NA(Neighbor Advertisement):邻居通告报文 。地址解析,重复地址检测。
▲IPv6地址自动配置的分类
无状态地址自动配置
不需要IPv6地址分配服务器保存和管理每个节点的状态信息的一种IPv6地址自动配置方式,称之为IPv6无状态地址自动配置。
无状态地址自动配置方式基于NDP来实现。
有状态地址自动配置
IPv6地址分配服务器必须保存每个节点的状态信息,并管理这些保存的信息,这种方式称之为IPv6有状态地址自动配置。
有状态地址自动配置基于DHCPv6(Dynamic Host Configuration Protocol for IPv6)来实现。
▲IPv6地址无状态自动配置过程
①PC1根据本地的接口ID自动生成链路本地地址。
②PC1对该链路本地地址进行DAD检测,如果该地址无冲突则可启用,此时PC1具备IPv6连接能力。
③PC1发送RS报文,尝试在链路上发现IPv6路由器。
④R1发送RA报文(携带可用于无状态地址自动配置的IPv6地址前缀。路由器在没有收到RS报文时也能够主动发出RA报文)。
⑤PC1解析路由器发送的RA报文,获得IPv6地址前缀,使用该前缀+接口ID生成IPv6单播地址。
⑥PC1对生成的IPv6单播地址进行DAD检测,如果没有检测到冲突,则启用该地址。
至此,本文分享的内容就结束了。