Unicast RPF,单播逆向转发

简介:
Unicast Reverse Path Forwarding (Unicast RPF,单播逆向转发)
Unicast RPF 这个功能可以帮助我们减轻(注意不是完全避免,是减轻)伪造的源IP地址(IP Spoofing,IP地址欺骗)的数据包通过路由器所带来的问题。
1.基本概念
Unicast RPF对于进入网络中的那些源IP地址“无法证实”的IP数据包进行丢弃以防止地址欺骗。举个例子来说,对于DoS攻击,攻击者会利用伪造的或者是不断改变的源IP地址以防止攻击被定位或过滤。对于此类攻击,Unicast RPF只转发那些源IP地址在路由表中存在并有效的数据包。
当Unicast RPF在某个接口上启用,路由器检查所有进入此接口的数据包,确定其源IP地址和源接口在路由表中存在。这种“向后看”的能力只有当Cisco express forwarding (CEF) 启用时才生效,因为其依赖于Forwarding Information Base (FIB),FIB是CEF生成的。

注意: Unicast RPF只能在接口的input方向上。
Unicast RPF检查从某个接口上进入路由器的数据包,通过FIB判断该数据包是否通过最优路径到达,如果是,则正常转发,如果找不到逆向(返回源)的路径,说明该数据包的源IP可能被修改,这时需要通过ACL来判定对该数据包是转发还是丢弃。在接口启用Unicast RPF时,ACL是可选项,如果没有配置ACL,则对于找不到逆向路径的数据包会被丢弃!
当数据包到达一个配置了Unicast RPF和ACl的接口,路由器进行以下操作:
Step 1 利用接口上Input方向的ACL对数据包进行检查。
Step 2 Unicast RPF 检查是否有返回源的最佳路径。
Step 3 完成FIB查找。
Step 4 利用出站接口上Output方向的ACL对数据包进行检查。
Step 5 转发数据包。
2.配置命令
(config)# ip cef //启用CEF
(config)# interface 接口名
(config-if)# ip verify unicast reverse-path [ACL编号] //在接口上启用Unicast RPF,ACL为可选项。
查看命令:
# show ip traffic
# show ip interface 接口名
# show access-lists
3.下面用例子说明一下:
ip cef
interface serial 0/0
ip verify unicast reverse-path
这个例子中;从serial 0/0口进入的数据包如果找不到逆向路径则丢弃!
ip cef
int eth 0/1
ip address 192.168.200.1 255.255.255.0
ip verify unicast reverse-path 197
access-list 197 deny ip 192.168.201.0 0.0.0.63 any log-input
access-list 197 permit ip 192.168.201.64 0.0.0.63 any log-input
access-list 197 deny ip 192.168.201.128 0.0.0.63 any log-input
access-list 197 permit ip 192.168.201.192 0.0.0.63 any log-input
access-list 197 deny ip host 0.0.0.0 any log
这个是将Unicast RPF和ACL一起使用的例子。


本文转自zcm8483 51CTO博客,原文链接:http://blog.51cto.com/haolun/991672
相关文章
|
机器学习/深度学习 弹性计算 云计算
阿里云ECS实例规格
阿里云ECS实例规格
|
Ubuntu Docker 容器
如何在Ubuntu上安装Docker?
【2月更文挑战第10天】
1003 0
|
2月前
|
存储 自然语言处理 前端开发
百亿级知识库解决方案:从零带你构建高并发RAG架构(附实践代码)
本文详解构建高效RAG系统的关键技术,涵盖基础架构、高级查询转换、智能路由、索引优化、噪声控制与端到端评估,助你打造稳定、精准的检索增强生成系统。
392 2
|
监控 网络协议 安全
|
关系型数据库 MySQL Linux
【Linux环境】centos安装mysql5.7.26报 ./mysqld: error while loading shared libraries: libaio.so.1: cannot op
【Linux环境】centos安装mysql5.7.26报 ./mysqld: error while loading shared libraries: libaio.so.1: cannot op
1060 0
|
11月前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
2501 2
|
数据采集 机器学习/深度学习 算法
Python实现用PSO粒子群优化算法对KMeans聚类模型进行优化项目实战
Python实现用PSO粒子群优化算法对KMeans聚类模型进行优化项目实战
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
337 0
|
Python
告别阻塞,拥抱未来!Python 异步编程 asyncio 库实战指南!
高效处理并发任务对提升程序性能至关重要,Python 的 `asyncio` 库提供了强大的异步编程支持。通过 `async/await` 关键字,可以在等待操作完成时不阻塞程序执行,显著提高效率和响应性。`asyncio` 支持定义异步函数、创建任务、等待多个任务完成等功能,并能结合第三方库如 `aiohttp` 实现异步网络请求。此外,它还支持异常处理,确保异步代码的健壮性。借助 `asyncio`,您可以轻松构建高性能、响应迅速的应用程序。
416 0
|
监控 关系型数据库 数据库
关系型数据库关系维护
【5月更文挑战第17天】
240 4