我们有一个解决方案,其中许多 Solaris 服务器位于一个专用 VLAN 中,并且该 VLAN 中不存在 arp 代理,因此要到达相邻服务器,我们必须添加静态 arp 条目。此私有 vlan 上的子网中的每个其他服务器必须指向网关的 mac 地址。
例如
#!/sbin/sh
ARP=/usr/sbin/arp
${ARP} -s 10.1.2.1 00:10:20:30:40:50 permanent
${ARP} -s 10.1.2.2 00:10:20:30:40:50 permanent
${ARP} -s 10.1.2.3 00:10:20:30:40:50 permanent
${ARP} -s 10.1.2.4 00:10:20:30:40:50 permanent
${ARP} -s 10.1.2.5 00:10:20:30:40:50 permanent
给我们 arp 条目:
arp -an
Net to Media Table: IPv4
Device IP Address Mask Flags Phys Addr
------ -------------------- --------------- -------- ---------------
oce1 10.1.2.1 255.255.255.255 SA 00:10:20:30:40:50
oce1 10.1.2.2 255.255.255.255 SA 00:10:20:30:40:50
oce1 10.1.2.3 255.255.255.255 SA 00:10:20:30:40:50
oce1 10.1.2.4 255.255.255.255 SA 00:10:20:30:40:50
oce1 10.1.2.5 255.255.255.255 SA 00:10:20:30:40:50
我们遇到的问题是,由于某种原因,很快条目将标记为“U”,然后变得不可用,然后从 ARP 表中消失。在通常的日志文件中看不到任何原因。系统日志配置:
*.info;auth.none /var/adm/messages
关于问题可能是什么的任何建议,所有帮助都感激不尽。Solaris 10,x86 是操作系统。
我的第一个建议是将脚本更改为“永久酒吧”,而不仅仅是“永久”。
所以从这个;
对此;
或者只是更改脚本以按预期使用“arp -f文件名”。来自 Solaris 10 arp 手册页;
其次,通过更改设置暂时增加系统日志的详细程度
syslog.conf
并查看正在发生的事情。syslog.conf
从此改变;*.info;auth.none /var/adm/messages
对此;
*.info;auth.none;*.debug /var/adm/messages
然后刷新syslog服务;
svcadm -v refresh svc:/system/system-log:default
ProTIP: 如果你在日志中看到这个;
ar_entry_query: Could not find the ace for source address #.#.#.#"
那么这意味着 arp 正在删除您的物理接口的条目。大约一个月前,我在一些接口有问题的服务器上遇到了同样的问题,内核补丁 (120012-14) 解决了这个问题。
如果有问题的系统配置了虚拟 IP 和/或端口绑定,则还需要一些其他补丁。