文章目录
ARP协议及路由原理
一、ARP协议
1.ARP定义
地址解析协议,通过目标ip获取目标MAC地址
ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的底层协议,负责将某个IP地址解析成对应的MAC地址。
2.ARP寻址过程
-
发送ARP广播包,获得主机mac地址
-
所有主机会收到广播包,完善ARP表
-
利用获得的MAC地址,封装数据包实现通讯
交换机在连接到主机后,会立即获取主机的mac地址
3.ARP表
记录局域网内所有主机与MAC地址的对应关系
windows中的ARP表
# 查看ARP表
arp -a
# 设置
arp -s ip mac
#建议使用下面方法:
查看网卡编号:
netsh -c "i i" show in
配置静态arp表项:
netsh -c "i i" add neighbors 7 "192.168.19.46" "50-c2-e8-1b-26-5b"
删除静态arp表项:
netsh -c "i i" delete neighbors 7 "192.168.19.46"
# 删除
arp -d 默认清空
linux中的arp表
arp
-n #不翻译IP
# 添加arp记录
arp -s ip mac
# 删除arp记录
arp -d ip
二、ARP攻击——中间人攻击
1.断网攻击
2.ARP欺骗
逻辑:不法分子通过伪装网关的mac地址,导致被攻击主机将数据包发送到了不法分子的主机上,从而产生危险
3.ARP攻击的模拟
环境:kali 攻击主机
windows10 被攻击主机
#kali端准备arp欺骗工具——arpspoof
1- 切换root
sudo su - root
2- 使用arpspoof
arpspoof -i 网卡名 -t 攻击IP 网关
-i 指定外网网卡
-t 攻击目标
arpspoof -i eth0 -t 10.0.0.12 10.0.0.2
#内核参数
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 1 开启内核转发允许对方上网
0 关闭内核转发,不允许对方上网
#模拟结合ARP攻击截获
# 通过driftnet 模拟截获数据
apt install driftnet -y
##如果更新失败先执行更新仓库
apt update
driftnet -i 指定接收数据接口
三、ARP防护与分析
1.防护
- 清空ARP历史记录
arp -d - 设置网关静态arp记录
设置静态arp表
2.arp攻击分析
- 利用抓包工具分析
- 分析哪些数据包是arp攻击的包——特征,arp单向回复包
- 作为筛选条件查找tcp协议报文,从而获取对方的IP,将该IP封禁
四、路由的原理
1.什么是路由
路由是数据通信网络中最基本的要素。路由信息是指导报文转发的路径信息,路由过程就是报文转发的过程。
2.路由要素
下一跳地址:本网段能到达目标网段的一个出网地址
目标网络:需要到达的目标的所在网段
3.路由表的设定
动态路由:动态学习路由路径。RIP,OSPF。
静态路由:人为手动指定到达目标网络的下一跳地址。
4.查看路由表
windows中的路由表
route print
linux中查看路由表
route -n
5.准备环境
克隆三台主机:
dns NAT: 10.0.0.200
test1 NAT: 10.0.0.201 LAN: 172.16.1.201
test2 LAN: 172.16.1.202
6.静态路由的配置
#dns
route add -net 目标网段 gw 下一跳地址
#test1
route add -net 172.16.1.0/24 gw 10.0.0.201
#test2
开启内核转发
vim /etc/sysctl.conf