Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失。
1.相关的配置文件:
/ect/hosts 配置主机名和IP地址的对应
/etc/sysconfig/network 配置主机名和网关
/etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推
2.网卡配置
假设我们要配置主机名为test,eth0的IP地址192.168.168.1/24,网关地址192.168.168.250
则/etc/sysconfig/network文件内容如下:
NETWORKING=yes
HOSTNAME=test
GATEWAY=192.168.168.250
eth0对应的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:
DEVICE=eth0 设备名称
BOOTPROTO=static 地址配置方式:static、dhcp、none
IPADDR=192.168.168.1
NETMASK=255.255.255.0
TYPE=Ethernet 网络类型
ONBOOT=yes 系统开机是否自启动
HWADDR= MAC地址
2. 多个网卡绑定成一块虚拟网卡
为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。比如我们可以将eth0和eth1绑定成虚拟网卡bond0。网卡绑定步骤如下:
2.1首先用ifconfig命令查看系统网卡信息,进行网卡绑定规划,比如我们选定eth0和eth1
2.2网卡绑定前要关闭系统的NetworkManager服务
service NetworkManager stop 停止服务
chkconfig NetworkManager off 开机自启动关掉
chkconfig|grep NetworkManager 检查服务是否彻底关掉
2.3 在 /etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下:
DEVICE=bond1
ONBOOT=yes
BOOTPROTO=none 地址配置方式none
IPADDR=22.1.82.63
NETMASK=255.255.255.0
USERCTRL=no
GATEWAY=22.1.82.253
BONDING_OPTS="mode=0 miimon=50 fail_over_mac=0" 虚拟网卡参数,mode为网卡策略,目前有七种(详细介绍在下面)miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡。
接下来在同一个目录下面分别配置eth0和eth1的配置文件,内容如下:
eth0:
DEVICE=eth0
HWADDR=
MASTER=bond0 虚拟网卡名称,eth0的主设备
SLAVE=yes 配置eth1位从设备
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
Eth1:
DEVICE=eth1
HWADDR=
MASTER=bond0 虚拟网卡名称,eth1的主设备
SLAVE=yes 配置eth1位从设备
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
2.4配置文件配置完成后使用如下命令
Ifdown eth0
Ifdown eth1
Ifup bond0
如果上述命令不成功,可以使用
Ifconfig eth0 down
Ifconfig eth1 down
Ifconfig bond0 up
2.5 使用ifconfig查看网卡信息,新建立的bond0 会在网卡信息列表里面显示
2.6重启网络服务
service network restart
2.7 用 ping命令测试一下所配置的虚拟地址,如果重启网络服务不生效,则重启服务器,然后在用 ping命令测试一下所配置的虚拟地址
3.网卡绑定策略目前有七种:
Mode
=0: (balance-rr) Round-robin policy: (平衡抡循环策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。
=1: (active-backup) Active-backup policy:(主-备份策略):只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。 此模式提供了容错能力。
=2:(balance-xor) XOR policy:(平衡 策略): 传输根据原地址布尔值选择传输设备。 此模式提供负载平衡和容错能力。
=3:(broadcast) broadcast policy: (广播策略):将所有数据包传输给所有接口。 此模式提供了容错能力。
=4:(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。(我不是太懂。)
=5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址,帮助上一个传。
=6:(balance-alb) Adaptive load balancing: (适配器传输负载均衡):大致意思是包括mode5,bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。
这些选项可以用命令:# modinfo bonding 来查看
4说明
如果想做成负载均衡,仅仅设置这里modprode bonding miimon=100 mode=0是不够的,还需要设置交换机的端口.
从原理分析一下(bond运行在mode 0下):
mode 0下bond所绑定的网卡的IP都被修改成一样的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。
所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址