网络管理2

一、知识整理

1、网卡配置文件格式:vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet接口类型,常见的类型有EthernetBridge

BOOTPROTO=static设置静态还是DHCP获取IPstaticnone都为静态,不写此行必须指定。查看配置DHCP之后的信息:

cat /var/lib/dhclient/dhclient-44b97795-3cc0-4a6f-88b9-f119b4abfe65-eth0.lease

DEFROUTE=yes

PEERDNS=yes  启动自动DNS,改为noDNS=#生效

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 connectionsrouting tablesinterface statisticsmasquerade connectionsand 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设备名一定不能错误

blob.png

然后添加一个bond的配置文件,

blob.png

重启网络服务,在这之前一定要将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的配置文件进行配置。

blob.png

使用另一台主机查看连通性:

blob.png

可以看到连通正常;我们进行mode 0的高可用和负载均衡性特性验证:断开原网卡:

blob.png

blob.png

使用正常;我们断开新网卡,连接上原网卡:

blob.png

显示主机不可达;检查原因后发现,是原网卡配置文件没有更改,进行更改,并重启网络服务:

blob.png

blob.png

重启成功,重新测试。

blob.png

经测试,结果是:单独使用任意一个网卡的时候都可以使用;一起使用的时候也正常运行;但是当主卡停止工作后次卡也无法工作,然而断开次卡,再启用次卡时候次卡变为主卡,此时单卡运行正常。次卡停止工作时主卡运行正常。因MODE 0模式提供负载均衡的能力,高可用能力还是有缺陷。

MODE 1 模式:主备模式,提供高可用性,无论主次哪个设备损坏,另一个设备都可以继续运作。

MODE 3 模式:数据包同时发两份,提供高可用能力,但是没有均衡负载能力。

blob.png

第七种模式: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

(0)
SilencePavilionSilencePavilion
上一篇 2016-09-07
下一篇 2016-09-07

相关推荐

  • 三剑客之Sed

    sed:stream editor(流编辑器) 工作特性:并不直接处理文本文件本身,处理机制为每当处理一个文件的时候,它会逐行读取,每次把一行读取到内存空间中去,而后在模式空间(pattern space)中完成编辑.并把编辑好的结果输出到屏幕上  功      能:数据替换、删除、增加、等,数据为关键字或者一整行, …

    Linux干货 2016-08-08
  • 第八周 服务管理与文本处理

    1、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理 2、描述awk命令用法及示例(至少3例) 3、描述awk函数示例(至少3例)    

    2018-01-21
  • 权限管理

    权限管理 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。 我们先来看看文件的属性: 权限: r:可获取文件数据(读取文件) w:可修改文件的数据(写入数据) x:可以把此文件提请内核启动为一个进程 (执行) 文件的权限主要针对三类对象进行定义:  owner: 属主, u  grou…

    Linux干货 2016-08-05
  • N25-第二周作业

    第二周作业 1.Linux上的文件管理命令都有哪些,其常用的使用方法及相关示例演示。 Linux上的文件管理命令有:cp , mv , rm 等命令 cp是复制命令: 命令使用格式是: cp [OPTION]… SOURCE… DEST 例:root@vps ~]# cp /etc/passwd /tmp 复制…

    Linux干货 2016-12-14
  • python基础 习题总结

    pyenv 编程题目总结(99乘法表 打印菱形与闪电 斐波那契数列 素数 猴子吃桃) 原反补码与异或运算 list列表

    Linux干货 2018-03-25
  • N25 – week 3 blog

    本周的blog开始使用了代码语言格式,我原本以为自然的才是最好的,orginal的才是最美的,但是我错了。。。我发现同学们都在各种markdown,各种排版。我说过我早已过了care这些的年纪,但是我不能脱离群体单独存在,所以我底下了傲娇的头。 本周开始blog标题改为英文,逼格满满,麦满分~ 下面开始第$wk_num周的作业 [root@dhcp-10-1…

    Linux干货 2016-12-19