zoukankan      html  css  js  c++  java
  • LVS前奏-ARP知识回顾

    什么是ARP协议:
    ARP协议,全称“Address Resolution Protocol”(地址解析协议),使用ARP协议,可以实现将IP地址解析成对应主机的物理地址(MAC地址)
    为了能够正确的向目的主机发送数据,必须将目的主机的32位IP地址转换成为目的主机48位以太网地址(MAC地址).为了完成从ip地址向MAC地址的转换,就需要使用到ARP协议。
    ARP协议和DNS服务有点相像之处。不同点:DNS是域名和IP之间的解析,且DNS需要配置服务,ARP不需要配置服务
    ARP协议要求通信的主机双方必须在同一个物理网段(即局域网)
    小结:
    arp协议主要是将ip和mac地址相互转换
    arp协议工作在2层属于三层协议
    arp协议要求通信的主机在同一个局域网内
     
    ARP通信原理:
    通信过程:
    1)1.1的机器想和1.2通信,首先检查本地的arp缓存表,查看是否有1.2的MAC地址
    2)本地arp表有1.2的mac地址就直接通信。没有1.2的mac地址,1.1就发送arp广播(携带自己的ip:mac,并广播请求1.2的mac地址)
    3)所有的主机都接收到arp广播信息,但是有1.2主机才会响应请求,给1.1单播一个回复,并缓存1.1的mac地址
    4)1.1将1.2的mac缓存在arp表中,并传输数据。
    局域网主机数量过多的情况下,会使用vlan来进行隔离避免广播风暴。
     
    arp缓存表是把双刃剑:
    1)加速arp的解析速度(减少广播风暴)
    2)有了arp表,给恶意的黑客带来了攻击主机的风险。arp欺骗(伪造网关mac地址),arp攻击
     
    ARP欺骗原理
    ARP攻击就是伪造IP地址和MAC地址对实现ARP欺骗,如果一台主机中了ARP病毒,那么它就能够在网络中产生大量的ARP通信量(它会以很快的频率进行广播),以至于使网络阻塞,攻击者只要不断的发出伪造的ARP响应包就能更改局域网中目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
    ARP攻击主要存在于局域网中。
    ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击
    ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
    攻击者向电脑A发送一个伪造的ARP响应,告诉电脑A:电脑B的IP地址192.168.0.2对应的MAC地址是00-aa-00-62-c6-03,电脑A信以为真,将这个对应关系写入自己的ARP缓存表中,以后发送数据时,将本应该发往电脑B的数据发送给了攻击者。同样的,攻击者向电脑B也发送一个伪造的ARP响应,告诉电脑B:电脑A的IP地址192.168.0.1对应的MAC地址是00-aa-00-62-c6-03,电脑B也会将数据发送给攻击者。
     
    为什么使用ARP协议
    OSI模型把网络工作分为7层彼此不直接打交道,只通过接口(layer interface)进行通信。IP地址工作在第三层,MAC地址工作在第二层。当协议在发送数据包时,需要先通过第三层(IP地址),第二层(MAC地址)的报头。但协议只知道目的节点的ip地址,不知道其MAC地址,又不能跨第二,第三层,所以需要使用ARP协议服务。
     
    arp缓存表生产环境中的实际应用:
    1)高可用服务器在切换时要考虑到arp缓存表的问题(keepalived,heartbeat自动实现arp表的更新)
    2)路由器迁移,机房设备准备切换,导致主备机故障等设备在无缝迁移时要考虑arp缓存的问题。例如:更换办公室路由器
     
    相关命令:
    arp -a 查看arp缓存表
    arp -d 情况arp缓存表
    ARP广播而进行新的地址解析
    /sbin/arping -I eth0 -c 3 -s 10.0.0.162 10.0.0.253(目标地址)
    /sbin/arping -U -I eth0 10.0.0.162
     
    在172.16.10.76主机上没有.31的MAC地址解析
    [root@CMPP80 ~]# arp -a
    ? (172.16.10.1) at 00:10:db:ff:10:04 [ether] on eth1
    在172.16.10.31主机上发起对.76的MAC地址解析
    [root@cmpp_90 ~]# arping -I eth0 -c 3 -s 172.16.10.31 172.16.10.76
    ARPING 172.16.10.76 from 172.16.10.31 eth0
    Unicast reply from 172.16.10.76 [6A:EE:BE:55:21:24] 1.949ms
    Unicast reply from 172.16.10.76 [6A:EE:BE:55:21:24] 1.337ms
    Unicast reply from 172.16.10.76 [6A:EE:BE:55:21:24] 1.237ms
    Sent 3 probes (1 broadcast(s))
    Received 3 response(s)
    再看.76主机的arp表,已经有了.31的ip-mac条目
    [root@CMPP80 ~]# arp -a
    ? (172.16.10.31) at 6e:45:1b:4c:d4:85 [ether] on eth1
    ? (172.16.10.1) at 00:10:db:ff:10:04 [ether] on eth1
    在172.16.10.76主机上更新跟.76互通主机ip-mac地址
    /sbin/arping -U -I eth1 172.16.10.76
     
    arping 命令:
    说明:arping是用于发送arp请求到一个相邻主机的工具;
    arping使用arp数据包,通过ping命令检查设备上的硬件地址。
    语法:arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination
    参数:
     
    -c count表示发送指定数量的 ARP 请求 数据包后就停止。如果制定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止;
     
    -b 用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址。
    -w timeout设定一个超时时间,单位是秒。如果到了指定时间,arping 还没有完全收到响应则退出;
    -q quiet output 不显示任何信息;
    -f 表示在收到第一个响应包后就退出;
    -s source设定 arping 发送的 arp 数据包中的   SPA 字段的值。如果为空,则按下面处理
    如果是 DAD 模式(冲突地址探测),则设置为 0.0.0.0;
    如果是 Unsolicited ARP 模式(Gratutious ARP)则设置为目标地址;
    否则从路由表得出;
    -U 主动ARP模式来更新邻居的ARP缓存。 预期没有答复。
    -I interface设置ping使用的网络接口;
    destination设置目标地址。
     
    服务器切换ARP问题
    当网络中一台提供服务的集群宕机后,当其他正常运行的主机,接管宕机的机器的资源时,会因为客户端的ARP table cache的地址解析还是原来宕机机器的MAC地址,从而导致,客户依然无法访问的情况。
    解决办法:当机器宕机。ip地址迁移到其他机器上时,需要使用arping命令来通知所有网络内机器清空其本地的ARP table cache。从而使客户机访问时重新广播获取MAC地址。
    ARP广播而进行新的地址解析
    /sbin/arping -I eth0 -c 3 -s 10.0.0.162(接管vip的正常主机) 10.0.0.253(不通的客户机或者是网关地址。)
    /sbin/arping -U -I eth0 10.0.0.162(接管vip的主机)
     
  • 相关阅读:
    lianjie
    分享页(把末尾的JS函数换成这个)
    面试题:Java回形数组
    Keycloak暴力检测和OTP验证
    Mybatis 使用Spring boot AOP +自定义注解+PageHelper实现分页
    基于Keycloak权限管理服务的架构
    如何访问被Keycloak保护的后端API
    KeyCloak实战|Vue项目集成Keycloak
    LeetCode|788. Rotated Digits
    LeetCode|413. Arithmetic Slices
  • 原文地址:https://www.cnblogs.com/jmucai/p/8430363.html
Copyright © 2011-2022 走看看