• route路由的顺序问题了数据包的转发流程


    2018-02-28   15:29:26

    [root@linux ~]# route
    Kernel IP routing table
    Destination     Gateway           Genmask            Flags      Metric    Ref    Use   Iface
    192.168.10.0     *                    255.255.255.0    U              0           0        0      eth0
    169.254.0.0       *                    255.255.0.0        U              0           0        0      eth0
    default              server.cluster   0.0.0.0              UG            0           0        0      eth0

    此外,观察一下上面的路由排列顺序喔,依序是由小网域(192.168.10.0/24 是 Class C),逐渐到大网域(169.254.0.0/16 Class B) 最后则是预设路由 (0.0.0.0/0.0.0.0)。然后当我们要判断某个网路封包应该如何传送的时候,该封包会经
    由这个路由的过程来判断喔!举例来说,我上头仅有三个路由,若我有一个传往 192.168.10.20 的封包要传递,那首先会找 192.168.10.0/24 这个网域的路由,找到了!所以直接由 eth0 传送出去;如果是传送到 Yahoo 的主机呢? Yahoo
    的主机 IP 是 202.43.195.52,我通过判断

    1)不是 192.168.10.0/24,
    2)不是 169.254.0.0/16 结果到达

    3)0/0 时, OK !传出去了,透过 eth0 将封包传给 192.168.10.30 那部 gateway 主机啊!所以说,路由是有顺序的。因此当你重复设定多个同样的路由时,例如在你的主机上的两张网路卡设定为相同网域的 IP 时,会出现什么
    情况?会出现如下的情况:
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
    也就是说,由于路由是依照顺序来排列与传送的,所以不论封包是由那个介面 (eth0, eth1) 所接收,都会由上述的 eth0 传送出去,所以,在一部主机上面设定两个相同网域的 IP 本身没有什么意义!有点多此一举就是了。除非是
    类似虚拟主机 (Xen, VMware 等软体 ) 所架设的多主机时,才会有这个必要~

  • 相关阅读:
    C++中的extern "C"【转】
    无题
    MATLAB中文件的读写和数据的导入导出【转】
    逝去的2012
    C/C++语言中Static的作用详述
    C++:源文件与头文件有什么区别【转】
    Bash,后台与nohup
    关于include 和 extern
    python易错点
    android实现点击两次返回键实现退出功能
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/8483884.html
Copyright © 2020-2023  润新知