什么是ARP
ARP(Address Resolution Protocol),地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。
那么它有什么作用呢,我们在使用网络时都是通过IP地址在进行数据的传送,知道了IP地址就像是知道了对
方的门牌号一样,可以很明确的知道要把信息发送到哪里。但是在网络设备中,比如在交换机中,最终要是
要通过MAC地址(Media Access Control Address)来确定接收和发送的地址的。所以在这个过程中,就
要通过IP地址来找出对应的MAC地址,这就是ARP的作用。
ARP的工作原理就是两条:查询与回复,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主
机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中
并保留一定时间,下次请求时直接查询ARP缓存以节约资源。ARP地址解析协议是建立在网络中各个主机互相
信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实
性就会将其记入本机ARP缓存。
查询与回复
当一个Host要找另外一个Host时,如果他不知道这个设备在哪里,它就会先发出一个ARP Query(ARP查询)
,这个ARP Query包含想要查询的P,这个就像车站里的寻人启示一样,是以广播的方式发送出去的,网络中
的所有Host都会接收到这个Query。拥有这个IP地址的Host收到这个查询请求后,就会进行回复,回复的信
息里包含它自己的MAC地址。查询方就会把这个MAC地址记录到自己的ARP Table中。
1,如上图中的拓扑,R1不知道谁是192.168.1.100,所以目前它的ARP Table里不包含这个信息,如下图
R1的ARP Table里只有它自己的Interface记录。
2、现在我们在R1 ping R2,这时R1就会先发出ARP查询请求,R2回复之后,R1的ARP Table里就增加了一条
记录。同时R1就能ping通R2了。这里我们可以看到在Ping的过程中,第一个包ICMP包是超时的,这个超时的
时间就是ARP在做查询的工作。
3、Age是指这条记录已经记录了多长时间,思科设备默认设置是保留4个小时,如果超过4个小时没有使用到
这个记录,记录就会被删除,那么下次会再次通过ARP查询来获取。
4、我们通过Packet Tracer来看一下这个过程。这里我们用两台2911路由器来模拟ARP的过程。
5、可以看到结果与前面介绍的是一样的。
6、从simulation panel可以看到整个过程,当开始Ping的时候,由于不知道对方的MAC,所以系统先发出
了ARP请求,ARP完成后,后4个ICMP包被送到正确的地址并正确回应。
7、查看PDU information,可以看到完整的过程。
Proxy ARP
Proxy ARP在Router Interface默认是开启的,Proxy ARP可以让Router在接到ARP查询时查看自己的Rou
ting Table,如果Routing Table中包含查询IP的网段,就会发ARP回复。如下图,现在R0与R2之间被R1阻
隔。R0要想查询R2的IP,必需要经过R1
1、首先清除掉R1的arp-table。
clear arp-cache
2、然后在R0上Ping R2的IP地址。
3、这时观察simulation panel,可以看到Ping开始前先进行的是ARP查询操作。
4、查看R0的ARP Table,可以看到只有R1的接口地址。这说明R1代替R0进行了ARP查询。
5、查看R1的ARP Table,包含所有4个接口的地址。
6、R2的ARP Table同样也不会有R1的记录。
什么是CDP
Cisco Discovery Protocol(CDP)思科发现协议,是思科的私有协议。通过CDP可以查看该设备的所有物
理连接,获得临近设备的具体信息,比如设备型号,IOS版本等等,目前使用的CDP版为Version2。网络管理
员可以通过CDP快速确定本设备是否连接到了正确的设备上,或者连接的端口是否正确。
1、CDP message每60秒发送一次。
show cdp
2、查看相邻设备。
show cdp neighbors
● Devid ID: 相邻设备的hostname
● Local Interfce: 本设备连接相邻设备的端口。
● Holdtme: CDP报文默认每60秒发送一次,如果过了默认的180秒也没收到CDP packet,则判断对方
已经不存在,所以Hold time会从180秒开始倒数,收到回复后再重新开始倒计时,如果180秒后还没收到回
复,就将该条记录删除。
● Capability: 相邻设备的类型,是Router还是Switch等等。
● Platform: 相邻设备的型号。
● Port ID: 相邻设备连接本设备的端口。
3、查看更详细的信息,使用以下命令,可以查看到IP地址,IOS版本等信息。
show cdp neithbors detail
4、当修改路由器的Hostname后,会发现新的记录会过一段时间才更新,并且旧的记录也没有立刻删除,可能
会共存一段时间,这是因为CDP Timer和Hold Timer的原因,如果想快速更新记录,可以调整这两个值。但
不建议更改此值,以免造成混乱,并且会增加设备和网络的负荷。
5、如果要关闭CDP,可以在接口上关闭,也可以全局关闭。
● 在接口上关闭:
R2(config)# interface f0/0
R2(config-if)# no cdp enable
● 全局关闭:
R2(config)# no cdp run