公网排障工具

实现京东侧IP到公网IP之间网络节点的质量监控

采集侧

采集原理

从京东侧IP发起traceroute,获取到目的端IP所经节点的质量(延迟) traceroute -n -s <源IP地址> <目的IP地址>

数据染色

  1. 时间戳;

  2. 每个IP地址归属(省份+城市+运营商);若地址是京东的,则(机房+设备角色+京东)

  3. IP地址延迟;

警告

地址染色归属顺序:1.是否私网 2.若是公网,是否京东 3.对非京东的公网地址进行位置和运营商确定

需求1

  1. 每小时测试一次;

  2. 测试结果保留14天;

  3. 提供查询页面:根据输入查询源IP和目的IP可以获取查询时间范围内的探测结果比对界面;

警告

目的IP地址指`公网监控矩阵<http://nmp.jd.com/npm/network_quality>`_中的目的IP

需求2

  1. 有故障发生时,立即traceroute和ping探测

  2. 将上诉探测结果保存,以供查询,便于报障运营商是提供参考

  3. 将故障邮件到网络组和对应的运营商(先实现发送给网络组,运营商的之后通过调用cmdb实现)

需求2扩展

  1. 公网正向探测模拟:

当京东A机房到B市X运营商的网络质量有问题时,调用京东其他市X运营商的服务器对京东A机房的网络进行traceroute和ping探测。

  1. 记录traceroute和ping结果,以供查询

需求3

根据用户保障时,提供的源IP(京东侧IP)、目的IP(用户侧IP),输入系统,系统自动判定:

a. 根据报障提供的源IP地址解析到 京东侧同机房内采集机IP,然后在采集机上ping和traceroute报障提供的目的IP,继续执行下一步。

1 判断ip为京东侧ip的接口
2 获取京东侧ip接口的机房信息
3 获取采集机的机房信息的接口
4 获取从源到目的的traceroute结果的接口
5 获取从源到目的的ping结果的接口

b. 根据报障提供的源IP地址解析到 京东侧同城市&同运营商的采集机IP,然后在采集机上ping和traceroute报障提供的目的IP,继续执行下一步。

1 判断ip为京东侧ip的接口
2 根据机房,获取京东测ip的城市的接口
3 获取京东侧ip运营商的接口
4 获取采集机的城市和运营商的接口
5 获取从源到目的的traceroute结果的接口
6 获取从源到目的的ping结果的接口
  1. 判断用户侧的IP所属运营商,使用所有公网采集机的同运营商的源IP(BGP认为包含三个运营商),ping用户IP,看能否互通。(例如,用户IP为电信IP,则,使用所有公网采集机的电信源IP、BGP源IP,ping用户IP,查看互通结果)返回traceroute结果。 如果,用户IP也是从京东采购的IP,则,两端IP均需执行相同的c操作,并同时返回traceroute结果。:

    1 获取用户侧ip所属运营商的接口
    2 获取采集机的运营商的接口
    3 获取从源到目的的traceroute结果的接口
    4 获取从源到目的的ping结果的接口
    

需求4

指定多个源(机房公网采集机的IP,区分运营商),手动输入多个目的IP,关注源IP对目的IP的命令执行结果,命令包括:ping、wget、traceroute、curl,暂时是这四个。wget产生的垃圾文件,命令执行结束后,可以删除。

小技巧

交互界面可参考 http://nmp.jd.com/npm/realtime_task