• ICMP协议(二)


    一  ping工作原理

    ①  为什么ping不通

    1. +++++++++++++++ "ping不通分为两类" +++++++++++++++
    2. 1) 请求没有到'目标'服务器
    3. 细节: 要注意是'ip'不通还是'域名'不能解析导致'ping'不通
    4. 2) 请求到了'目标'服务器,但是'没有'回包
    5. +++++++++++++++ "常见原因" +++++++++++++++
    6. 1、对方'关机/ip'不存在
    7. 备注: ping同网段'不存在的'ip地址
    8. 2、网段不同,通过'路由''无法'找到
    9. 3、'防火墙 [安全组]'设置,过滤了ping发出的ICMP数据包,导致'无反馈',time out
    10. 备注:ping的结果是"超时或者time out",属于ping的请求已经'成功发出'了,但目标主机'没有回复'
    11. 4、ip地址设置错误,'多网卡ip同一网段'造成路由'不知'选择哪一个出口
    12. 备注: 对'多个网卡的服务器'来说,每个网口的ip配置必须'不能'在同一个网段
    13. 5、'网线'故障
    14. 6、未设置'网关',如果'未配置'将无法路由
    15. 7、内核参数禁止'ping'
    16. 强调: ping'不通'不代表'网络不可达',所以'ping不通'不代表有问题

    ②  ping应用场景

    1. 1、用来检测'网络的连通'情况和分析'网络'速度
    2. 2、根据'域名解析'得到服务器ip
    3. 3、根据ping返回的'TTL值'来判断对方所使用的'操作系统'及数据包经过'路由器'数量

    Windows 和Linux的 ping 的ttl

    ③  ping命令行参数

    1. -I '网卡名称' '目标IP地址'
    2. -c 执行 ping '几次' count,指定'发送ICMP ECHO-REQUEST报文'次数
    3. -i 指定'间隔'秒数
    4. -W 设置'超时'时间,以毫秒为单位,与 '-c' 一起使用才'有效'
    5. -S 指定请求的'源ip',一般会'自动'选择
    6. 结果: ping命令的输出信息中包括'目的地址ip'、ICMP报文长度、序号、'TTL值'、以及'往返'时间

    ping -S 的使用

    ④  内核参数禁ping

    1. ++++++++++++++++ "禁止ping [三种方式]" ++++++++++++++++
    2. echo net.ipv4.icmp_echo_ignore_all=1 >> /etc/sysctl.conf && sysctl -p
    3. echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
    4. iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 \
    5. -j DROP -icmp-type 8 echo request
    6. 1、表示回显请求'ping请求'
    7. 2、0/0 表示'所有 ip'
    8. 需求1: 直接'拒绝' icmp 的请求包
    9. iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT
    10. --> Destination port unreachable.
    11. 需求2: 直接'丢弃' icmp 的请求包
    12. iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
    13. --> Request timed out.
    14. 需求3: 禁止主机的'ping'功能 --> 直接'丢弃'向外发送的ICMP包
    15. iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
    16. --> ping: sendmsg: Operation not permitted

    通过ipatles禁止ping

    ping socket 不允许的操作

    ⑤  探究ping 的发送和接收过程

    说明: 后续'通过'tcpdump + wireshark 抓包'详细'查看

    1. 1、上面只是'最简单'的,同一个'局域网'里面的情况
    2. 2、如果'跨网段'的话,还会涉及'网关的转发''路由器的转发'

    ⑥   traceroute  差错报文类型的使用

  • 相关阅读:
    Elastic基本操作
    imx6ull pro BSP 工具链
    HTTP1.1、HTTP2、HTTP3 演变
    P1972 [SDOI2009] HH的项链
    初学Vue3(个人学习)
    ajax异步传值以及后端接收参数的几种方式
    基于Python+Django深度学习的身份证识别考勤系统设计与实现
    基于MySQL的事务管理
    卷出头了,终于学完阿里架构师推荐 413 页微服务分布式架构基础与实战笔记
    串口工作流程硬核解析,没有比这更简单的了!
  • 原文地址:https://blog.csdn.net/wzj_110/article/details/133865519