Linux服务器 arp –a不能获取网关mac
1、事情是这样子:某公司需要一台测试机,在老板的命令下安装了一台服务器:硬件:宝德服务器4核呖分甾胗8G的系统:CentOS 鲂番黟谊6.4_X64位系统最小化安装后正常配置静态IP地址,像往常一样。但是!!!!!到这里就有问题了,ping不同外网,更ping不通网关,arp还看不到网关mac地址(这是关键)。愚蠢的我,解决思路如下:1、 先检查配置文件:网关、IP、掩码、dns、网卡状态都正常,排除配置文件的问题2、 防火墙问题,service iptables stop,问题依旧,没解决。3、 想想是selinux的问题?关闭了,问题还是没解决。4、 我开始思考了,“route add –net 0.0.0.0 gw 网关IP” 添加默认路由,指定网关,结果还是不行。5、 Arp –a 不显示网关的mac地址,提示“? (192.168.1.102) at <incomplete> on eth0”这时我意识到了,是本服务器获取不到网关mac地址,这是问题的关键。于是乎百度解决办法,你还别说,还真有,就是手动绑定mac地址。(原谅我是小白!)Arp –s 192.168.0.1 +网关mac地址。你还别说,这个还真不管用!!!!按理说,本机获取不到网关mac地址这才是关键!只要获取到mac地址(或者根据mac缓存表 /etc/proc/arp)就可以和网关通信了啊,但是,说实话,我这里真没成功。6、 后来我突发奇想,我想别的服务器用同一个系统版本没有问题,为啥你不行?于是乎我把服务器搬到了办公室,在局域网下搞,整个下午,我就不信弄不好你了。7、 下面是干货!!!8、 首先,我把两个网卡都改成dhcp的,当做一台办公电脑来用。这时候出现的问题是:我给eth0的TYPE字段设置成了PPPoE,eth1的TYPE字段默认用Ethernet;BOOTPROTO字段都设置成dhcp,把网线插在了eth1,结果不通。后来将eth1的BOOTPROTO字段设置成默认的none,eth0的没有修改还是dhcp。哎,通了!!!!!9、 现在想这样就获取到了网关的mac地址,有了mac缓存表,只要IP配置没有问题,修改成静态的应该也会通啊。于是乎vi /etc/sysconfig/network-scripts/ifcfg-eth1,将IP、网关、掩码等信息重新修改成静态的,BOOTPROTO字段改为static,eth0网卡也改成静态的,但是没有配置相关的IP信息,保持默认配置文件,然后service network restart。奇迹发生了,居然通了!!!谁给我个合理的解释,如果就是在公网环境下,没有dhcp获取相关mac信息,怎么来处理?求指导!