zoukankan      html  css  js  c++  java
  • 为什么用IP查询网查询的自己的*IP和用tracert命令查询的自己的出口IP不一致?

    斜体为读者提问:

    我在电脑上查询的出口IP是58.60.*.*,然后用tracert命令查询ping百度的路径,结果发现路径里面没有同一网段的(即以58.60.开头的),这是为什么?

    正文

    题主这个问题,有两种可能:

    (1)运营商给客户分配的是公网IP = 58.60.x.x

    (2)运营商给用户分配的是非公网IP,当用户的流量进入Internet,使用公网IP  = 58.60.x.x做NAT

    这两种情况都有可能traceroute时,网络路径上没有任何一跳的IP和58.60.x.x在一个网段内。接下来分析一下这两种情况:

    情况一:通常用户使用PPPoE拨号上网,分配的IP 如58.60.x.x/32,使用32位掩码长度,这样有什么好处呢?不浪费IP资源!

    问同学们一个问题,PPPoE接口是广播接口还是点对点接口类型?

    对,是点对点接口,点对点接口需要通信的双方在一个网段吧?不需要!

    为何是点对点接口?

    看看封装格式吧:

    Ethernet/PPPoE/PPP/IP/IP Payload

    由于从局域网发出的所有IP报文,目的MAC都是PPPoE Server的,源MAC都是家庭路由器的,这不是典型的点对点接口特征吗?

    Okay,运营商用来终结客户端PPPoE的接口需要IP地址吧?

    当然需要,可以是任意IP,只要该接口配置IP就可以工作,为了节省IP,通常可以借用别的接口的IP,比如 “IP unnumbered”

    客户端拨号成功会生成两条路由:

    0.0.0.0/0              PPPoE

    58.60.x.x/32        PPPoE

    当访问Internet时使用0.0.0.0/0路由,由于是点对点接口,压根不关心下一跳的IP是多少,对吗?

    所以出现题主描述的现象一点也不奇怪。

    情况二:当用户的流量前往Internet时,需要做NAT,那公网IP从哪里来?从路由器的接口上借用吗?可以,但是扩展性不够高,毕竟就一个IP。

    那如何扩展性高呢?

    使用一个公网IP资源池,这个池子可以一个IP、也可以任意多个,完全看需求。

    Okay,那这些池子里的公网IP需要事先配置在接口上吗?不需要!

    既然58.60.x.x压根没有配置在任何接口上,那当你traceroute 时,那这台NAT设备直连的路由器接口IP,完全有可能不是58.60.x.x。

    那当你traceroute 到NAT设备时,由于58.60.x.x没有配置在任何接口,所以自然不会使用58.60地址来发送traceroute 出错消息!

    原文链接:https://mp.weixin.qq.com/s?__biz=MzIxNTM3NDE2Nw==&mid=2247483847&idx=1&sn=6a905897c8255c6a0666b9fda413f47b&chksm=979801ffa0ef88e951ebdf439df2bea8775d8c8119dd021002c638eb9475254a9e898c30aa1a#rd

  • 相关阅读:
    操作技巧——电脑远程控制
    软件安装——internal error2503/2502
    系统常识——虚拟内存地址
    操作技巧——保障无线上网的技巧
    操作技巧——输入法转换问题
    软件安装——彻底卸载MySQL
    Java——this
    python百度贴吧爬虫
    糗事百科python爬虫
    python请求带cookie
  • 原文地址:https://www.cnblogs.com/a3192048/p/12241272.html
Copyright © 2011-2022 走看看