# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 118.192.12.184
netmask 255.255.255.192
network 118.192.12.128
broadcast 118.192.12.191
gateway 118.192.12.129
# dns-* options are implemented by the resolvconf package, if installed
#dns-nameservers 192.168.100.252
#dns-search cft.cn
# The secondary network interface
allow-hotplug eth1
iface eth1 inet static
address 118.192.12.184
netmask 255.255.255.192
network 118.192.12.128
broadcast 118.192.12.191
gateway 118.192.12.129
# dns-* options are implemented by the resolvconf package, if installed
#dns-nameservers 192.168.100.252
#dns-search cft.cn
-
以上配置是在公司的内部局域网运行正常的,所以直接修改IP和网关,子网掩码为服务器托管公司的公的对应的信息就OK啦。。
root@cft:/home/cft# vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 118.192.12.184
netmask 255.255.255.192
gateway 118.192.12.129
# dns-* options are implemented by the resolvconf package, if installed
#dns-nameservers 192.168.100.252
#dns-search cft.cn
# The secondary network interface
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.135
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.254
# dns-* options are implemented by the resolvconf package, if installed
#dns-nameservers 192.168.100.252
#dns-search cft.cn
---------------------------------------------------------------------------------
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
注意,eth0的network[网段]和broadcast[网络广播]配置信息没有配置,据服务商说:系统会自动计算这些值,如果配置错误,反而上不了网。。
很明显,技术经理再三叮嘱,一定要配置这两个参数。。
使用ipcalc工具可以计算出值来。。
ipcalc命令的使用
从上例来看,计算机子网划分的方法非常麻烦。在Linux中系统提供了ipcalc命令解决了这个问题。当需要进行子网划分时,采用ipcalc命令即可。ipcalc命令能够计算出子网掩码和IP地址范围及网络地址和广播地址。
命令格式:ipcalc 选项 IP地址/跳数
常用参数见表8-1。
表8-1 ipcalc参数说明
参 数
说 明
-n
计算网络号
-m
计算子网掩码
-b
计算广播地址
-p
计算跳数
实例:
(1)计算出192.168.10.1/26的子网掩码、网络号、广播地址、各子网范围。
# ipcalc -bmn 192.168.10.1/26
显示结果如下。
NETMASK=255.255.255.192
BROADCAST=192.168.10.63
NETWORK=192.168.10.0
(2)计算出192.168.10.64/26的子网掩码、网络号、广播地址、各子网范围。
# ipcalc -bmn 192.168.10.64/26
显示结果如下。
NETMASK=255.255.255.192
BROADCAST=192.168.10.127
NETWORK=192.168.10.64
(3)计算出192.168.10.128/26的子网掩码、网络号、广播地址、各子网范围。
# ipcalc -bmn 192.168.10.128/26
显示结果如下。
NETMASK=255.255.255.192
BROADCAST=192.168.10.191
NETWORK=192.168.10.128
(4)计算出192.168.10. 192/26的子网掩码、网络号、广播地址、各子网范围。
# ipcalc -bmn 192.168.10.192/26
显示结果如下。
NETMASK=255.255.255.192
BROADCAST=192.168.10.255
NETWORK=192.168.10.192
由以上操作可知,子网掩码为255.255.255.192。也可获得4个子网的网段地址、网络号和广播地址
首先得说明一下,没有0/24是什么意思的说法。192.168.1.0/24表示网段是192.168.1.0,子网掩码是24位,子网掩码为:255.255.255.0,用二进制表示为:11111111 11111111 11111111 00000000 ,这里为什么是24呢,就是因为子网掩码里面的前面连续的“1”的个数为24个,一定要连续的才行。
再给你举个例子,192.168.1.0/28表示的意思是网段是192.168.1.0,子网掩码为:255.255.255.240,用二进制表示为:11111111 11111111 11111111 11110000。
这时候你也许就疑惑了,就是24和28两个字不一样,为什么网段是一样的呢?
24位说明网络位是24位,那么主机位就是32-24=8位了,则子网的IP个数是254个,即是从00000001到11111110.
28位说明网络位是28位,那么主机位4位,则子网的IP个数是14个,即是从00000001到00001110.
如果还不明白,你再补充吧。2年前考网络工程师时候学习到的,现在搞软件开发,都忘得差不多了。
root@cft:/home/cft# ipcalc -b 118.192.12.184/26
Address: 118.192.12.184
Netmask: 255.255.255.192 = 26
Wildcard: 0.0.0.63
=>
Network: 118.192.12.128/26
HostMin: 118.192.12.129
HostMax: 118.192.12.190
Broadcast: 118.192.12.191
Hosts/Net: 62 Class A
计算结果也是正确的,没有错误呀。???
郁闷!!
直接不带参数计算
root@cft:/home/cft# ipcalc 118.192.12.184/26
Address: 118.192.12.184 01110110.11000000.00001100.10 111000
Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Wildcard: 0.0.0.63 00000000.00000000.00000000.00 111111
=>
Network: 118.192.12.128/26 01110110.11000000.00001100.10 000000 网段,ip&子网掩码
HostMin: 118.192.12.129 01110110.11000000.00001100.10 000001
HostMax: 118.192.12.190 01110110.11000000.00001100.10 111110
Broadcast: 118.192.12.191 01110110.11000000.00001100.10 111111 广播地址
Hosts/Net: 62 Class A
调试了好久,结果配置了这两个参数就不行,,
所以。。。嗨。。。
没办法,最终解决方案,直接将network和broadcast删除(服务商提供自动计算)
linux网路的热插拔
在linux中设定IP时我常常会设为
auto eth0
这样的意思是「一开机就自动启动eth0设备,不管有沒有插上网线」
如果开机没有插上网线,系统也会让dhclient3去设定,这样只有等超时才能继续开机。
如果设为
allow-hotplug eth0
就不会出现上面,先不插网线,开开机插上网线也可以。
但是在debian linux 里用/etc/init.d/networking restart后会出现网卡没有起来,
非要用ifup eth0才行。所以为了方便起见还是用auto eth0比较好。
事情到此告一段落,总结:
1.检查哪个网卡连接:mii-tool
2.建议使用auto eth0来配置网卡,不要使用allow-hotplug eth0,调试麻烦,不过可以后面【配置正常后】在改回来
3.ipcalc[ip计算器]。。eg:ipcalc ip/子网掩码位数(转换为二进制后1的个数)
4.有时候,软件搞不定了,试试硬件!!