zoukankan      html  css  js  c++  java
  • IPV6_路由重定向

    路由重定向

    路由重定向的概念

    路由重定向是基于路由器发送的,那肯定是使用RA报文。

    当一个网关设备发现数据包进来的接口和出去的接口是一个接口的时候,网关设备意识到这个路径不是最优的,走了冤枉路,其实可以不用通过自己的,就通过重定向报文告诉发送这个数据包的主机,你下次再给目标IP发送报文的时候不用将目标IP填写成“我”,直接填写成最优的下一跳即可。

    好,我们仔细想一下,这对网关设备的要求就高了,要求路由器能判断出数据包的转发路径不是最优的路径,这怎么判断呢?如上所说,其实很简单,就是收到这个数据包的接口与路由后发送这个数据的接口是一个接口。

    对于主机而言收到重定向报文意味着什么?
    其实对于主机而言收到重定向报文意味着向在自己的路由表上添加一条主机路由,下一跳就是重定向报文当中告诉主机的下一跳。

    那你说,在这个报文是否可以采取一些攻击的机制,比如给主机一些错误的重定向报文,让主机瞎重定向,让主机无法正常使用?是可以的,在IPV4当中就用路由重定向攻击这一种攻击方式,其实主要是利用了IPV4当中路由重定向的时候缺乏安全验证机制,在IPV6则加强了IPV4的路由重定向缺乏安全验证机制的问题,主机变得警觉了,不再轻易别人(网关路由器)说的话了!从这些看,IPV4就相当于网络的儿童时代,而IPV6就像是网络的青年时代,不再那么容易轻易相信别人了。

    路由重定向需要满足的条件

    想要路由器发送重定向报文,还要满足一些条件的,

    1. 网关设备发送重定向的目标设备一定要是将自己视为下一跳的主机,换句话说,就是一定和自己处于同一个局域网当中的目标主机。
    2. 数据包的目标地址不能是一个组播地址。
    3. 入接口和路由后的出接口是一个接口的。

    必须满足以下这么几个条件,主机才会相信:

    1. 源地址必须是link-local地址,也就是说重定向的RA报文的源地址是路由器的link-local地址,这用于让主机根据自己已经保存到信息与重定向指定源IP做对比。
    2. HOP LIMIT字段等于255,意味着这个报文不能被其它路由器转发。
    3. ICMP校验必须有效
    4. ICMP code得是0
    5. ICMP的报文长度必须是40字节或以上
    6. 所有包含的选项长度必须大于0

    报文分析

    重点关注类型是137,以及以下两个字段

  • 相关阅读:
    golang json字符串合并操作
    goland 无法跳转 struct等
    golang 中mgo update报错: The dollar ($) prefixed field '$inc' in '$inc' is not valid for storage.
    解决windows下使用vscode没有函数提示的问题
    【转载,实测好用】gitlab结合sourcetree使用
    C++单继承、多继承情况下的虚函数表分析
    Linux 日志文件管理——限制大小
    C++ RCSP智能指针简单实现与应用
    Makefile模板(C++)
    Git关于pull,commit,push的总结
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/14729675.html
Copyright © 2011-2022 走看看