[svc]arp协议的细枝末节
tcpdump抓取arp包
tcpdump -nn -i calif24874aae57 -e
arp数据包格式
操作字段指出四种操作类型:
arp请求 1
arp应答 2
rarp请求 3
rarp应答 4
发送端的ip
arp老化时间-linux默认30s
要想更改这个值,需要通过如下命令:
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学习)
正常情况下
-
通过arp request欺骗-刷新对端arp表的网关条目
-
通过arp reply欺骗-刷新对端arp表的网关条目
invalid arp表象-等待收arp reply
产生原因: 发送arp request后,为接收arp reply做准备
大量存在原因: 通往段扫码(主机),夸网段扫描(网络设备)
代理arp-网关欺骗内部主机的工具
参考: http://www.voidcn.com/article/p-sezcdlec-bpq.html
一般网关nat设备上发生. 这种arp数据包没有特殊格式,和普通arp一样.只是发送者ip/mac做了善意的欺骗
默认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表里会有脏数据
此时如果主机配了网关:
如果关闭arp-主机有网关仍旧可以上网
如果关闭后,则主机不配网关上不了网了.
主机配网关仍旧可以上网.
Router(config-if)# no ip proxy-arp
免费arp-用于检测ip是否冲突
1.一般早上上班来抓包可以看到很多,因为同事们都在启动电脑. 网卡重启(接口shut no shu)会发免费arp
2.dhcp获取到地址后会发一个免费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