一、知识整理
1、网卡配置文件格式:vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet接口类型,常见的类型有Ethernet,Bridge
BOOTPROTO=static设置静态还是DHCP获取IP,static和none都为静态,不写此行必须指定。查看配置DHCP之后的信息:
cat /var/lib/dhclient/dhclient-44b97795-3cc0-4a6f-88b9-f119b4abfe65-eth0.lease
DEFROUTE=yes
PEERDNS=yes 启动自动DNS,改为no则DNS=#生效
PEERROUTES=yes
USERCTL 普通用户是否可控制此设备
PEERDNS 如果BOOTPROTO的值为DHCP,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no IPv6配置相关信息
UUID=da2b67dd-063f-4ef8-9acb-3757dcf21203 网卡设备的UUID
DEVICE=eno16777736 网卡设备名,此名字必须与配置文件名称统一,配置文件为:
/etc/udev/rules.d/70-persistent-net.rules
ONBOOT=yes 是否开机启动
DOMAIN=nagedu.com
IPADDR=10.1.54.250 IP地址
GATEWAY=10.1.0.1 网关
DNS1= 设置DNS,建议设置多个
NAME= 图形界面下的显示名称,可以任意指定
HWADDR 设备的MAC地址,如果要改变则改为:MACADDR=
NETMASK= 子网掩码,可以使用CIDR模式,此时指定为PREFIX=#
NM_CONTROLLED=是否受NetworkManager控制,此服务在centos6中不稳定,建议永久关闭,使用命令chkconfig NetworkManager off不开机启动,service NetworkManager stop关闭当前正在运行的NetworkManager服务。
另一个文件可以统一指定网关等,但是优先级低于单一网卡配置文件,一般用于bond的统一配置:/etc/sysconfig/network。
二、事例及命令详解
1、netstat命令:print net connections,routing tables,interface statistics,masquerade connections,and multicast memberships。
-t tcp协议相关
-u udp协议相关
-w raw socket相关
-l 处于监听状态
-a 所有状态
-n 以数字显示IP和端口
-e 扩展格式
-p 显示相关进程及PID
常用组合:-tan
[root@localhost ~]# netstat -tan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:52709 0.0.0.0:* LISTEN tcp 0 52 10.1.252.28:22 10.1.250.66:50291 ESTABLISHED tcp 0 0 10.1.252.28:22 10.1.250.66:50290 ESTABLISHED tcp 0 0 :::111 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:631 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN tcp 0 0 ::1:6010 :::* LISTEN tcp 0 0 ::1:6011 :::* LISTEN tcp 0 0 :::50531 :::* LISTEN [root@localhost ~]# netstat -uan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:111 0.0.0.0:* udp 0 0 0.0.0.0:937 0.0.0.0:* udp 0 0 0.0.0.0:68 0.0.0.0:* [root@localhost ~]# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:52709 0.0.0.0:* LISTEN tcp 0 0 :::111 :::* LISTEN tcp 0 0 :::22 :::* LISTEN [root@localhost ~]# netstat -unl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:111 0.0.0.0:* udp 0 0 0.0.0.0:631 0.0.0.0:* udp 0 0 0.0.0.0:54328 0.0.0.0:* udp 0 0 127.0.0.1:980 0.0.0.0:* udp 0 0 :::111 :::* 0 0
显示路由表:netstat -r 显示内核路由表
netstat -n 数字格式
[root@localhost ~]# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 eth0
显示接口统计数据:
[root@localhost ~]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 61005 0 0 0 898 0 0 0 BMRU eth0:1 1500 0 - no statistics available - BMRU
[root@localhost ~]# netstat -Ieth0或者netstat -I=eth0
3、设备别名:为每个别名生成独立的接口配置文件,步骤如下:
关闭NetworkManager服务;
编辑ifcfg-eth#:##,设置网卡别名的设备文件
必须使用静态联网,信息如下
DEVICE=eth0:#
IPADDR=
NETMASK=
OMPARENT=yes 是否随着父设备的启动启动
注意:service network restart生效
参考帮助:/usr/share/doc/initscripts-*/sysconfig.txt
4、网络接口配置:Bonding
就是将多块网卡绑定同一地址对外提供服务,可以实现高可用或均衡负载。当然,直接给两块网卡设置同一IP地址是不可能的。通过Bonding,虚拟网卡对外提供连接,物理网卡被修改为相同的MAC地址。
工作模式:Mode 0 (balance-rr)
轮转模式round-robin策略,从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错能力。
Mode 1(active-backup)
活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见。
Mode 3(broodcast)
广播策略:在所有的slave接口上传送所有的报文。本模式提供了容错能力。
bonding的配置:
/etc/sysconfig/network-scripts/ifcfg-bond0,内容为:
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS=”miimon=100 mode=o”
miimon是用来进行链路检测的。如果miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条。
/etc/sysconfig/network-scripts/ifcfg-th0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
查看bond状态:/proc/net/bonding/bond#
关于bonding的详细配置参照:
/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
配置bond的步骤如下:
添加一块新网卡;
首先关闭NetworkManager,centos6中;
写bond配置文件;
写ifcfg-eth0和ifcfg-eth1配置文件;
重启网络服务。
三、课后练习
1、centos 6网卡别名
[root@localhost network-scripts]# ls ifcfg-eth0 ifdown-ippp ifdown-sit ifup-ib ifup-post init.ipv6-global ifcfg-lo ifdown-ipv6 ifdown-tunnel ifup-ippp ifup-ppp net.hotplug [root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1 [root@localhost network-scripts]# ls ifcfg-eth0 ifdown-eth ifdown-post ifup ifup-ippp ifup-post ifup-wireless ifcfg-eth0:1 ifdown-ib ifdown-ppp ifup-aliases ifup-ipv6 ifup-ppp init.ipv6-global ifcfg-lo ifdown-ippp ifdown-routes ifup-bnep ifup-isdn ifup-routes [root@localhost network-scripts]# vim ifcfg-eth0:1 DEVICE="eth0:1" BOOTPROTO="static" NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" IPADDR=10.1.54.251 NETMASK=255.255.0.0 GATEWAY=10.1.0.1 [root@localhost network-scripts]# service NetworkManager stop Stopping NetworkManager daemon: [FAILED] [root@localhost network-scripts]# chkconfig NetworkManager off [root@localhost network-scripts]# service network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Determining IP information for eth0... done. Determining if ip address 10.1.54.251 is already in use for device eth0... [ OK ] [root@localhost network-scripts]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:26 inet addr:10.1.252.28 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:feea:8b26/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:209881 errors:0 dropped:0 overruns:0 frame:0 TX packets:3091 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:16678475 (15.9 MiB) TX bytes:340775 (332.7 KiB) eth0:1 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:26 inet addr:10.1.54.251 Bcast:10.1.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
1、centos 6网卡bond
首先添加一块虚拟网卡,同样设置为桥接模式;
添加一个eth1的配置文件:将必要信息添加至配置文件中,其中BOOTPROTO需要设置为static或者none;设备名一定不能错误。
然后添加一个bond的配置文件,
重启网络服务,在这之前一定要将NetworkManager服务关闭
[root@localhost network-scripts]# service network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ] Bringing up interface eth0: Determining IP information for eth0... done. [ OK ] [root@localhost network-scripts]# ifconfig bond0 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:30 inet6 addr: fe80::20c:29ff:feea:8b30/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:83 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6945 (6.7 KiB) TX bytes:468 (468.0 b) eth0 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:26 inet addr:10.1.252.28 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:feea:8b26/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:214159 errors:0 dropped:0 overruns:0 frame:0 TX packets:3768 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:17042771 (16.2 MiB) TX bytes:438807 (428.5 KiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:30 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:83 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6945 (6.7 KiB) TX bytes:468 (468.0 b)
此时设备便启动完成,可以看到没有IP地址等信息,可以使用/etc/sysconfig/network统一配置,也可以使用bond0的配置文件进行配置。
使用另一台主机查看连通性:
可以看到连通正常;我们进行mode 0的高可用和负载均衡性特性验证:断开原网卡:
使用正常;我们断开新网卡,连接上原网卡:
显示主机不可达;检查原因后发现,是原网卡配置文件没有更改,进行更改,并重启网络服务:
重启成功,重新测试。
经测试,结果是:单独使用任意一个网卡的时候都可以使用;一起使用的时候也正常运行;但是当主卡停止工作后次卡也无法工作,然而断开次卡,再启用次卡时候次卡变为主卡,此时单卡运行正常。次卡停止工作时主卡运行正常。因MODE 0模式提供负载均衡的能力,高可用能力还是有缺陷。
MODE 1 模式:主备模式,提供高可用性,无论主次哪个设备损坏,另一个设备都可以继续运作。
MODE 3 模式:数据包同时发两份,提供高可用能力,但是没有均衡负载能力。
第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)
特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。
来自服务器端的接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。使用ARP协商进行负载均衡的一个问题是:每次广播 ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部流向当前的slave。这个问题可以通过给所有的对端发送更新(ARP应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。当新的slave加入到bond中时,或者某个未激活的slave重新 激活时,接收流量也要重新分布。接收的负载被顺序地分布(round robin)在bond中最高速的slave上。
当某个链路被重新接上,或者一个新的slave加入到bond中,接收流量在所有当前激活的slave中全部重新分配,通过使用指定的MAC地址给每个 client发起ARP应答。下面介绍的updelay参数必须被设置为某个大于等于switch(交换机)转发延时的值,从而保证发往对端的ARP应答 不会被switch(交换机)阻截。
原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/44203