ensp - ARP及Proxy ARP(第七天)

ensp - ARP及Proxy ARP(第七天)_第1张图片

ARP

概念:
ARP是将IP地址解析为MAC地址的协议,可以分为两种(动态和静态两种类型)
1、动态ARP是利用ARP广播报文,动态执行并自动表示IP地址到以太网MAC地址得解析,不用网络管理员手动处理
2、静态ARP是建立IP地址和MAC地址之间固定的映射关系,在主机和路由器不能动态调整此映射关系时,需要管理员手动添加

设备上有一个ARP告诉缓存(ARP cache),用来存放IP地址MAC地址的映射表,利用ARP请求和应答报文来缓存映射表,可以正确把三层数据包封装成二层数据帧,达到快速封装数据帧、正确转发数据的目的
ARP还有扩展应用功能,如:Proxy ARP 功能


按拓扑配置好pc机

R1:使用arp -a命令查看主机的ARP表
PC>arp -a
Internet Address Physical Address Type
PC>
可以可看到ARP表为空


进行配置路由器 0/0/1 和 0/0/2号 端口
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.1.1.254 255.255.255.0
Jul 27 2020 16:18:01-08:00 R1 %%01IFNET/4/LINK_STATE(l)[2]:The line protocol IP
on the interface GigabitEthernet0/0/1 has entered the UP state.
[R1-GigabitEthernet0/0/1] int g0/0/2
[R1-GigabitEthernet0/0/2]ip add 10.1.2.254 255.255.255.0
Jul 27 2020 16:18:32-08:00 R1 %%01IFNET/4/LINK_STATE(l)[3]:The line protocol IP
on the interface GigabitEthernet0/0/2 has entered the UP state.


使用 display arp all 命令查看arp表
[R1]display arp all
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN/CEVLAN PVC


10.1.1.254 00e0-fc6d-1a5c I - GE0/0/1
10.1.2.254 00e0-fc6d-1a5d I - GE0/0/2


Total:2 Dynamic:0 Static:0 Interface:2


也可以使用查看端口和ip摘要的命令display ip interface brief
[R1-GigabitEthernet0/0/2]display ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 3
The number of interface that is DOWN in Physical is 1
The number of interface that is UP in Protocol is 3
The number of interface that is DOWN in Protocol is 1

Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 unassigned down down
GigabitEthernet0/0/1 10.1.1.254/24 up up
GigabitEthernet0/0/2 10.1.2.254/24 up up
NULL0 unassigned up up(s)


使用ping命令检测主机和路由器和网关的通性

PC1和pc2和网关连通性

PC>ping 10.1.1.254

Ping 10.1.1.254: 32 data bytes, Press Ctrl_C to break
From 10.1.1.254: bytes=32 seq=1 ttl=255 time=62 ms

— 10.1.1.254 ping statistics —
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 62/62/62 ms

PC>ping 10.1.1.2

Ping 10.1.1.2: 32 data bytes, Press Ctrl_C to break
From 10.1.1.2: bytes=32 seq=1 ttl=128 time=31 ms

— 10.1.1.2 ping statistics —
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 31/31/31 ms

PC3和网关连通性

PC>ping 10.1.2.254

Ping 10.1.2.254: 32 data bytes, Press Ctrl_C to break
From 10.1.2.254: bytes=32 seq=1 ttl=255 time=47 ms

— 10.1.2.254 ping statistics —
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 47/47/47 ms


ARP抓包试验

1、启动设备
2、配置IP地址
3、在LSW1的g0/0/1接口进行抓包
4、在PC1上pingAR1的g0/0/0接口
ensp - ARP及Proxy ARP(第七天)_第2张图片

网关收到广播请求后,回应ARP响应,含有自身IP地址和MAC地址的对应关系


PC和R1都会从这一条消息中知道对方IP地址和MAC地址的对应关系,并写到各自的ARP表中,PC1ping网关10.1.1.254后,输入arp -a命令查看,在R1输入display arp all 命令查看

PC>arp -a

Internet Address Physical Address Type
10.1.1.254 00-E0-FC-6D-1A-5C dynamic

[R1]display arp all
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN/CEVLAN PVC


10.1.1.254 00e0-fc6d-1a5c I - GE0/0/1
10.1.1.1 5489-98d5-6163 20 D-0 GE0/0/1
10.1.2.254 00e0-fc6d-1a5d I - GE0/0/2
10.1.2.3 5489-985c-7981 3 D-0 GE0/0/2


Total:4 Dynamic:2 Static:0 Interface:2


可以观察到PC-1上生成了网关IP地址10.1.1.254和对应的MAC地址的ARP表,在和IP地址10.1.1.1时也一样,如果一段时间没有更新,便会从上述ARP中删除


风险:
工作行为往往被攻击者利用,如果攻击者伪造ARP报文,而且里面所通告的IP地址的MAC地址的映射是错误的,则主机或网关会吧错误的映射更新到ARP表中,主机想要发送数据到指定IP地址是,会从ARP表中得到错误的MAC地址,并用之封装数据帧,导致数据帧不能正常发送

============================================================
模拟公司主机感染ARP病毒:
在R1上使用display arp all 命令添加一条关于PC-1的错误映射(静态的条目优先于动态),错误的映射会出现在ARP表中
[R1]arp static 10.1.1.1 5489-98CF-2803
使用命令查看路由表,并检测连通性
[R1]display arp all
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN/CEVLAN PVC


10.1.1.254 00e0-fcac-7e21 I - GE0/0/1
10.1.2.254 00e0-fcac-7e22 I - GE0/0/2
10.1.2.3 5489-9822-0124 18 D-0 GE0/0/2
10.1.1.1 5489-98cf-2803 S–


Total:4 Dynamic:1 Static:1 Interface:2

[R1]ping 10.1.1.1
PING 10.1.1.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out

— 10.1.1.1 ping statistics —
3 packet(s) transmitted
0 packet(s) received
100.00% packet loss

PC>ping 10.1.1.254

Ping 10.1.1.254: 32 data bytes, Press Ctrl_C to break
Request timeout!

— 10.1.1.254 ping statistics —
1 packet(s) transmitted
0 packet(s) received
100.00% packet loss

可以观察到PC-1与网关之间无法通信,因为R1上ARP的映射错误,导致路由器无法正确的发送数据包给PC-1。

在R1的CE 0/0/1 接口上抓包可观察考
ensp - ARP及Proxy ARP(第七天)_第3张图片

观察到,由于配置了静态ARP,R1发往PC-1的ping包的二层头部,目的MAV地址被错误的封装为5489-98CF-2803

应对ARP欺骗攻击,防止感染其他路由器的ARP表,可以通过配置静态ARP表项来实现

如果IP地址和MAC地址的静态映射已出现在ARP表中,则通过动态ARP方式学来的映射则无法进入ARP表

针对现在的问题,解决方式如下:(MA地址是唯一的)
在R1上配置三条关于PC-1、PC-2、PC-3 的正确映射,使用 arp static 命令,并查看ARP表
[R1]undo arp static 10.1.1.1 5489-98CF-2803
[R1]arp static 10.1.1.1 5489-98cf-2603
[R1]arp static 10.1.1.2 5489-98cf-5723
[R1]arp static 10.1.2.3 5489-98cf-e417
[R1]display arp all
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN/CEVLAN PVC


10.1.1.254 00e0-fcac-7e21 I - GE0/0/1
10.1.2.254 00e0-fcac-7e22 I - GE0/0/2
10.1.1.1 5489-98cf-2603 S–
10.1.1.2 5489-98cf-5723 S–
10.1.2.3 5489-98cf-e417 S–


Total:5 Dynamic:0 Static:3 Interface:2

配置完,PC-1上测试连通性

3、配置Proxy ARP
查看R1路由表:display ip routing-table
如果R1保持ARP代理功能关闭
如果R1保持ARP代理功能关闭,PC-2和PC-3之间不能通信
在PC-2上ping 10.1.2.3,并在PC-2的E 0/0/1 接口进行抓包
在这里插入图片描述
可以观察PC-2发出的ARP广播,却没收到ARP响应
原因:PC-2和PC-3分处在两个广播域内,PC-2发出的ARP请求无法跨越中间的路由器,所以PC-3收不到PC-2的ARP请求PC-2也不知道目标主机PC-3的硬件MAC地址而导致数据封装失败。

如果R1开启ARP代理就可以解决这问题,使用 arp-proxy enable 配置命令在路由器的接口上开启ARP代理功能
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]arp-proxy enable
进行测试,PC-2ping PC-3,并在E 0/0/1接口抓包ensp - ARP及Proxy ARP(第七天)_第4张图片
可以观察到PC-2发出的请求收到了并进行响应,响应中10.1.2.3对应的硬件MAC地址并非是PC-3的MAC地址,而是网关R1的GE 0/0/1 接口MAC地址
在PC-2上arp-a 查看ARP缓存表
PC>arp -a

Internet Address Physical Address Type
10.1.2.3 00-E0-FC-71-10-8B dynamic

开启代理,PC-2访问PC-3工作过程:
开启代理之后,收到PC-2的ARP广播请求报文后,R1根据ARP请求的目标·IP,10.1.2.3查看自身的路由表中有没有对应的目标网络,R1的CE 0/0/2接口就10.1.2.0/24 网络,所以R1把自身的CE0/0/1接口的MAC地址通过ARP响应返回给PC-2,PC-2接收此ARP响应后使用MAC作为目标硬件地址发送报文给R1,R1收到报文在转发给PC-3

同理,PC-3要访问R1连接其他广播域的PC,也要在R1的GE0/0/2接口上开启ARP代理
[R1]int g0/0/2
[R1-GigabitEthernet0/0/2]arp-proxy enable
配置完成后,测试PC-3和PC-1测试连通性
PC>ping 10.1.1.1

Ping 10.1.1.1: 32 data bytes, Press Ctrl_C to break
From 10.1.1.1: bytes=32 seq=1 ttl=127 time=63 ms
From 10.1.1.1: bytes=32 seq=2 ttl=127 time=62 ms
From 10.1.1.1: bytes=32 seq=3 ttl=127 time=78 ms
From 10.1.1.1: bytes=32 seq=4 ttl=127 time=79 ms
From 10.1.1.1: bytes=32 seq=5 ttl=127 time=93 ms

— 10.1.1.1 ping statistics —
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 62/75/93 ms


个人学习中总结的,有错误的地方请及时联系修改

你可能感兴趣的:(ensp)