Linux之网络管理(2)虚拟网卡
在linux中,默认的内核模块中包含了很多与网络相关的组件和工具,来提供对网络的管理和设置。同样,linux中也是支持虚拟网卡的设置,已经多网卡绑定等功能。在网卡不够用的情况下,想用多个不同的地址来代表自己,以让其它ip来访问,是可以设置多个地址的。
网卡基本信息查看
使用ifconfig命令查看IP
ifconfig [interface] #默认不指定为显示全部网络接口
ifconfig eth0 #表示只显示eth0网卡设备的信息
例子:
解析:这里格式是针对readhat5、6版本的,高版本可能信息有些细微改变。
格式说明: eth0 代表网卡设备名
inet addr:表示ipv4地址
Bcast:表示广播地址
Mask:表示子网掩码
HWaddr:表示物理地址,也就是mac 地址
MTU:网卡数据包最大传输单元
单网卡多地址:
1、使用命令来设置:ifconfig、ip
(1)使用ifconfig命令
#在设置之前,我们先查看eth0 的ipv4地址,信息或长,这里我用文本处理工具来取出ip
[root@mageedu ~]# ifconfig eth0 | sed -n 's/.*addr:\(.*\)[[:space:]]B.*$/\1/gp' 10.1.249.185
#同样ifconfig能查看网卡信息,也能设置网卡信息,对eth0新增一个ip地址
[root@mageedu ~]# ifconfig eth0:1 172.16.2.10 netmask 255.255.0.0 up
解析:从上图来看,好像是添加了一个新的设备,实际上是对eth0起了一个别名来存放另一个ip地址,而网卡接口指向的都是eth0设备,给网卡添加别名这种是固定写法:ethX:X
ethX:X:ethX表示网卡设备的命令,而后面的X表示为对此设备做的一个label标签,所有使用ifconfig查看才会显示两个。
#删除刚才的网卡别名及信息,直接停止此别命令设备
[root@mageedu ~]# ifconfig eth0:1 down
解析:因为此配置只是在内存中,临时生效,并未写入配置文件中,所以,一旦停止一个内存中的数据,就相当于清除掉了网卡别名及所有信息。
#为了验证,下面再次使用ifconfig命名来启用刚才设置的别名eth0:1
[root@mageedu ~]# ifconfig eth0:1 up SIOCSIFFLAGS: Cannot assign requested address
说明:这里验证了上面的说法,把eth0:1当作一个设备来识别,肯定是无法识别的。
(2)使用ip命令
ip addr show eth0 #显示eth0的ip地址相关信息
解析:这里的信息格式和ifconfig显示有所不同,但大致信息都有,第3行就显示了当前eth0的ipv4地址以及其广播地址,ip地址后面的/16表示255.255.0.0(子网掩码)。
ip addr add #添加地址
[root@mageedu network-scripts]# ip addr add 172.16.2.10 dev eth0
注意:这里可以不指定别名来直接给网卡设备泰添加额外地址,但是只能使用ip命令来查看出来额外的ip地址,而使用ifconfig命令是无法查看到的:
#下面使用ip命令查看
ip addr show eth0
解析:这里显示了172.16网段的ip,说明已经配置成功
#使用ip命令再为eth0添加一个带别名的ip
[root@mageedu network-scripts]# ip addr add 192.168.0.0/24 dev eth0 label eth0:0
解析:当一个ip地址被定义了label名称,也就被识别为一个别名设备,那么使用ifconfig命令也是能查看出来的,下面查看测试:
ifconfig eth0
总结:以上的方法即使设置即使生效,却不能保证永久生效,当然也有其他的方法来处理量这些文件。
2、写入配置文件:
说明:上面使用命令看似很快就能生效,但是,一旦系统或者网络服务重新启动,这些信息都会从内存中清理掉,所有,想要永久生效,必须设置配置文件,以让网络服务重启时去自动读取配置文件中信息来直接设置网络信息。
#下面我们切换到存放网卡配置文件的目录/etc/sysconfig/network-sctipts/,在切换之前,发现此目录路径的字符长度过长,因此可以考虑设置一个别名来更快捷的切换到目录。
(1)设置别名,并写入用户配置文件
解析:cdnet就是新增添的别名,保存退出后要想使用,得先让当前内核识别alias别名
(2)让当前bash重读用户配置文件
[root@mageedu ~]# source ~/.bashrc
#再次查看当前shell中的alias定义列表,cdnet已经出现了
[root@mageedu ~]# alias alias cdnet='cd /etc/sysconfig/network-scripts/' alias cdyum='cd /etc/yum.repos.d/' alias cp='cp -i' alias l.='ls -d .* --color=tty' alias ll='ls -l --color=tty' alias ls='ls --color=tty' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
#使用定义好的cdnet直接切换到network-scripts目录
[root@mageedu ~]# cdnet
#使用pwd查看当前所在目录,已经切换成功
[root@mageedu network-scripts]# pwd /etc/sysconfig/network-scripts
#查看eth0设备文件 ifcfg-eth0
#可以根据eth0配置来参考设置,这里新建一个网络别名配置文件ifcfg-eth0:0
[root@mageedu network-scripts]# vim ifcfg-eth0:0 DEVICE=eth0:0 #eth0表示为为此设备做别名,:后面的0表示一个label标记名 BOOTPROTO=staic #因为网卡别名,所有这里必须设置为static或者none IPADDR=172.16.2.10 #设置额外的ip地址 PREFIX=16 #PREFIX表示子网掩码255换成2进制1的个数,16位1表示255.255.0.0 GATEWAY=172.16.0.1 #设置网关 ONPARNET=yes #表示标记的网卡设备启用时,此别名设备也同时生效
#下面使用servcie命令重启网络服务
解析:这里显示ok表示各个模块启动成功
#再次查看网卡设备
#再使用命令添加一个别名,这里使用ip 命令
[root@mageedu network-scripts]# ip addr add 192.168.0.0/24 dev eth0 label eth0:2
#再次查看,又多了一个网卡别名设备,这样其它人就可以通过这3个ip地址来访问了啦
#下面重启网络服务,来看看eth0:2是否会被删除
解析:已经验证了网卡的别名