五一前接了一个任务,让我对华为一个服务器的网络进行bonding方面的配置,看看能不能通过。
由于服务器一直有人需要调试,我就先用我的测试机器进行了配置,中间出现的一些问题引发了我
对ipv4方面的关注,通过学习理解了现象出现的根源,所以记录下来以备日后所需。
配置Bonding网上教程有很多,我就不记录了,贴一个链接。
http://blog.itpub.net/27144762/viewspace-1127106/
如果不是像我这种特殊情况,这篇文章基本可以实现bonding的配置了。
我按照上面流程走了一遍后,
设置如下
ip 10.3.3.139
子网掩码 255.255.255.0
网关 10.3.0.2
DNS 223.6.6.6
由于自己平时通过网络设置工具都是这么设置的,所以当时很肯定这个肯定是对的
但是设置出来以后,结果却发现
ping 10.3.3.137是可以通的,但是ping 10.3.6.84却没有办法通,而且百度也没有办法ping通
通过无数次的实践发现,只要去掉子网掩码的设置,就可以ping通所有想ping的了,但是这是
为什么呢?后来又发现设置子网掩码是255.255.0.0时也是可以通的。所以当时隐约感觉到了好像
有什么东西阻碍了我。
通过上网查找网络方面的知识,大体上可以得到下面的一些常识性的东西
1:ipv4中的ip地址分为网络号和主机号,但是为了满足不同的需求,并没有规定死32位ip地址中
多少位是网络号,多少位是主机号,而子网掩码的作用就是区分哪些是网络号哪些是主机号
2:在寻址的过程中,如果不经过网关,那么要想ping通,必须要位于同一子网下面。
所以上面的问题中10.3.3.137和10.3.3.139可以互相ping通。
3:要想网关起效果,必须要让网关和子网在同一个子网下面。
最后分析下为什么我的网关没有起到效果
我的ip是10.3.3.139,子网掩码是255.255.255.0 网关是10.3.0.2
子网掩码决定了我的ip前面的24位是网络位(因为前面二进制全是1),所以我10.3.3.139有效的子网范围是10.3.3.1~10.3.3.254
共有254个。(也是2的8次方-2 因为主机号全为0时代表网络号,全位1代表广播地址)
所以我的10.3.0.2并不在有效的
当子网掩码为255.255.255.0的10.3.3.139的ip地址的同一个子网内。
所以我的网络一直就不通啊,至于为甚ping不通百度,我猜测应该是当我去ping百度时,显然百度并不在内网中,那么肯定会去
找网关,而网关又不起效果,肯定没法去找dns啦,所以就没法上网啊。
额外补充两点
当ping 网络的时候(以主机A ping 主机B为例),可能会有下面两种报错
1:Request time out
2:Destination host unreachable
第一种报错是说明A可以给主机B发包,但是主机B却没法给主机A发包
此时B没法发包的一个可能原因是B认为他和A不在同一个子网内,所以没法给他发包
第二种报错就是单纯地没法A没法连通上主机B了
最后说一个网上学来的判断两个主机是不是在同一个子网内的方法
就是如果两台主机把他们的ip地址分别和他们的子网掩码相与,如果结果相同,则说明他们在同一个子网内。