[svc]arp协议的细枝末节

时间:2023-03-08 17:30:49

tcpdump抓取arp包

tcpdump -nn -i calif24874aae57 -e

arp数据包格式

[svc]arp协议的细枝末节

[svc]arp协议的细枝末节

[svc]arp协议的细枝末节

操作字段指出四种操作类型:
arp请求 1
arp应答 2
rarp请求 3
rarp应答 4 发送端的ip

arp老化时间-linux默认30s

[svc]arp协议的细枝末节

要想更改这个值,需要通过如下命令:

sudo sysctl -w net.ipv4.neigh.eth0.base_reachable_time=30
或者:
sudo sysctl -w net.ipv4.neigh.eth0.base_reachable_time_ms=30000

arp欺骗(arp表根据发送者ip/mac学习)

正常情况下

[svc]arp协议的细枝末节

  • 通过arp request欺骗-刷新对端arp表的网关条目

    [svc]arp协议的细枝末节

  • 通过arp reply欺骗-刷新对端arp表的网关条目

    [svc]arp协议的细枝末节

invalid arp表象-等待收arp reply

[svc]arp协议的细枝末节

[svc]arp协议的细枝末节

产生原因: 发送arp request后,为接收arp reply做准备

大量存在原因: 通往段扫码(主机),夸网段扫描(网络设备)

代理arp-网关欺骗内部主机的工具

参考: http://www.voidcn.com/article/p-sezcdlec-bpq.html

一般网关nat设备上发生. 这种arp数据包没有特殊格式,和普通arp一样.只是发送者ip/mac做了善意的欺骗

[svc]arp协议的细枝末节

[svc]arp协议的细枝末节

默认eth0是关闭的, 但是calico网络网桥默认是开着的

[root@n1 ~]# cat /proc/sys/net/ipv4/conf/eth0/proxy_arp
0 [root@n1 ~]# cat /proc/sys/net/ipv4/conf/cali376fa7941cf/proxy_arp
1

如果主机不配网关会如何.

首先是能够访问外网的

其次arp表里会产生一堆脏数据.

主机访问一个ip-->先查路由表-->如果有匹配,则arp下一跳
如果无匹配,直接arp目的ip-->网关收到后代理arp生效.

此时如果主机不配网关:-arp表里会有脏数据

[svc]arp协议的细枝末节

此时如果主机配了网关:

[svc]arp协议的细枝末节

如果关闭arp-主机有网关仍旧可以上网

如果关闭后,则主机不配网关上不了网了.
主机配网关仍旧可以上网.
Router(config-if)# no ip proxy-arp

免费arp-用于检测ip是否冲突

1.一般早上上班来抓包可以看到很多,因为同事们都在启动电脑. 网卡重启(接口shut no shu)会发免费arp

[svc]arp协议的细枝末节

[svc]arp协议的细枝末节

2.dhcp获取到地址后会发一个免费arp探测

[svc]arp协议的细枝末节

linux上的arp

参考

ARP缓存表是把双刃剑

a) 主机有了arp缓存表,可以加快ARP的解析速度,减少局域网内广播风暴。因为arp是发广播解析的,频繁的解析也是消耗带宽的,尤其是机器多的时候。

b) 正是有了arp缓存表,给恶意黑客带来了攻击服务器主机的风险,这个就是arp欺骗攻击。

c) 切换路由器,负载均衡器等设备时,可能会导致短时网络中断。因为所有的客户端ARP缓存表没有更新

LVS-DR模式通常会抑制arp

cat >>/etc/sysctl.conf<<EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF
sysctl -p