最近面临增加IP,还有加入IPv6,设置网卡网关掩码等信息的问题,总是对linux不熟,找了3篇文章贴在下面,以备以后查询。
另外配置好后,一定要重启一下网卡,命令为/etc/init.d/network restart

CentOS Linux XEN / OpenVZ VPS 增加额外IP

手头有2台vps,分别是基于xen与openvz虚拟化技术,系统为centos linux。

需要对他们增加额外的ip,XEN的默认网卡为eth0,OpenVZ的默认网卡为venet0,网卡的配置文件均位于/etc/sysconfig/network-scripts/目录下。

对XEN VPS进行操作如下:

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:0
vi ifcfg-eth0:0
将其中属于eth0的信息修改为eth0:0然后退出保存
ifup eth0:0
eth0一般配置如下:

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=111.111.111.111
NETMASK=255.255.255.0
对OpenVZ VPS进行操作如下:

OpenVZ VPS有点特别,默认的venet0网卡存放的是ip为127.0.0.1,绑定ipv6地址(如果有),ipv4地址绑定在venet0:0上。以venet0:0为例,增加额外ipv4的ip。

cd /etc/sysconfig/network-scripts/
cp ifcfg-venet0:0 ifcfg-venet0:1
vi ifcfg-venet0:1
将其中属于venet0:0的信息修改为venet0:1然后退出保存
ifup venet0:1
venet0:0一般配置如下:

DEVICE=venet0:0
ONBOOT=yes
IPADDR=222.222.222.222
NETMASK=255.255.255.255

在Linux下有时候需要给一个网卡绑定多个IP,本文介绍在Redhat系列(redhat,Fedora Core,Centos)中的实现方法和一种在Gentoo等其他Linux中普遍适用的方法。

1、单网卡绑定多IP在Redhat系列中的实现方法
假设需要绑定多IP的网卡是eth0,请在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,
内容样例为:

DEVICE=”eth0:0″
IPADDR=”192.168.0.2″
BROADCAST=”172.168.0.255″
NETMASK=”255.255.255.0″
ONBOOT=”yes”
其中的DEVICE为设备的名称,
IPADDR为此设备的IP地址,
BROADCAST是广播地址,
NETMASK为子网掩码,
ONBOOT 表示在系统启动时自动启动。
如果需要再绑定多一个IP地址,
只需要把文件名和文件内的DEVICE中的eth0:x加一即可。
LINUX最多可以支持255个IP别名

2、普遍适用的单网卡绑定多IP实现方法

ifconfig eth0:1 192.168.0.3 broadcast 192.168.0.255 netmask 255.255.255.0
可以把上述命令加在启动自运行文件里面,在Gentoo下是/etc/conf.d/local.start,而某些版本的Linux是/etc/rc.d/rc.local。

3、多网卡共用单IP的实现方法
使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术其实在sun和cisco中已经存在,分别称为Trunking和 etherchannel技术,在linux中,这种技术称为bonding。因为bonding在内核2.4.x中已经包含了,只需要在编译的时候把网络设备选项中的 Bonding driver support选中就可以了。
然后,重新编译核心,重新起动计算机,执行如下命令:
ismod bonding
ifconfig eth0 down
ifconfig eth1 down
ifconfig bond0 ipaddress
ifenslave bond0 eth0
ifenslave bond0 eth1
现在两块网卡已经象一块一样工作了,这样可以提高集群节点间的数据传输。
你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local或者/etc/conf.d/local.start调用,以便一开机就生效。
bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作 bonding,可大大提高服务器到交换机之间的带宽。但是需要在交换机上设置连接bonding 网卡的两个口子映射为同一个虚拟接口。

近日在进行Aapche的虚拟站点设置时,因为想使用单网卡上绑定多个IP,通过研究发现,SUSUE 10与RED HAT有所不同,在SUSE10中并没有/etc/sysconfig/network-scripts目录,所以只能另辟方法.

SUSE 10中设定单网卡绑定多个IP需要在配置文件/etc/sysconfig/network/ifcfg-eth-id-xx.xx.xx.xx.xx的配置文件中添加如下几行:

IPADDR_1='192.168.2.151'
NETMASK_1='255.255.255.0'
LABEL_1='1'
IPADDR_2='192.168.2.152'
NETMASK_2='255.255.255.0'
LABEL_2='2'
IPADDR_3='192.168.2.153'
NETMASK_3='255.255.255.0'
LABEL_3='3'
注意:

IPADDR_X 指定所需要的IP地址

NETMASK_X 指定对应IP地址的子网掩码

LABEL_X 指定该网卡的别名,如此处的数字1、2、3,对应通过ifconfig命令查看到的名称为:eth0:1、eth0:2、eth0:3

通过以上的设置,我们就在单网卡上绑定了四个IP地址

linux网卡配置文件

联网其实就3个步骤
1.配ip
2.配dns
3.指定gateway
--------------------------------------------------------------------------------------------
主机IP
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=
NM_CONTROLLED=yes
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
USERCTL=NO #设置root以外的人是否可以控制eth0网卡
IPADDR=192.168.168.168
NETMASK=255.255.255.0
NETWORK=192.168.168.0 #设置IP地址段

网络DNS
/etc/resolv.conf
nameserver 192.168.168.1 #指定dns

主机网络
/etc/sysconfig/network
NETWORK=yes #网络是否可以被配置,设为No将不能配置网络,service network restart无效
HOSTNAME=localhost.localdomain
GATWAYEV=eth0 #设置属于eth0网卡
GATEWAY=192.168.168.1 #设置默认网关,很重要
RORWARD_IPV4=YES #是否开启ip地址转发功能
这一步可以用命令代替:route add default gw 192.168.168.1
--------------------------------------------------------------------------------------------
/etc/networks
暂时我也不是很明白,说是表示网络名之类的,网络编号,没用过
--------------------------------------------------------------------------------------------
host.conf配置文件一般不用
/etc/host.conf
multi on #指定主机是否可以有多个ip地址
order bind,hosts #指定解析顺序
--------------------------------------------------------------------------------------------
本地解析文件
/etc/hosts
#格式:
IP 主机域名 主机别名
127.0.0.1 www.baidu.com baidu
--------------------------------------------------------------------------------------------