网络管理3

七、网络接口配置-bonding

    Bonding

        就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

    Bonding的工作模式

        Mode 0 (balance-rr)

            轮转( Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力

        Mode 1 (active-backup)

            活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见

        Mode 3 (broadcast)

            广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。

    Bonding配置

        创建bonding设备的配置文件

            /etc/sysconfig/network-scripts/ifcfg-bond0

                DEVICE=bond0

                BOOTPROTO=none

                BONDING_OPTS= “miimon=100 mode=0”

            /etc/sysconfig/network-scripts/ifcfg-eth0

                DEVICE=eth0

                BOOTPROTO=none

                MASTER=bond0

                SLAVE=yes

                USERCTL=no

        miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路

        查看bond0状态: /proc/net/bonding/bond

        关于bonding的详细配置请参照/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt

八、CentOS 7网络属性配置

    rhel6之前,网络接口使用连续号码命名: eth0、 eth1等,当增加或删除网卡时,名称可能会发生变化。

    rhel7使用基于硬件,设备拓扑和设置类型命名:

    (1) 网卡命名机制

        systemd对网络设备的命名方式

        (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1

        (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1

        (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

        (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56;

        (e) 上述均不可用时,则使用传统命名机制

    基于BIOS支持biosdevname中

        内置网卡: em1,em2

        pci卡: pYpX Y: slot ,X:port

    (2) 名称组成格式

        en: Ethernet 有线局域网

        wl: wlan 无线局域网

        ww: wwan无线广域网

    名称类型:

        o<index>: 集成设备的设备索引号

        s<slot>: 扩展槽的索引号

        x<MAC>: 基于MAC地址的命名

        p<bus>s<slot>: enp2s1

    网卡设备的命名过程:

        第一步:udev, 辅助工具程序/lib/udev/rename_device,/usr/lib/udev/rules.d/60-net.rules

        第二步:biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules

        第三步:通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description

            ID_NET_NAME_ONBOARD

            ID_NET_NAME_SLOT

            ID_NET_NAME_PATH

    使用传统命名方式:

        1) 编辑/etc/default/grub配置文件

            GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet" 或:修改/boot/grub2/grub.cfg

        (2) 为grub2生成其配置文件

            grub2-mkconfig -o /etc/grub2.cfg

        (3) 重启系统

九、nmcli命令

    地址配置工具: nmcli

    nmcli [ OPTIONS ] OBJECT { COMMAND | help }

        device – show and manage network interfaces

        nmcli device help

        connection – start, stop, and manage network connections

        nmcli connection help

    修改IP地址等属性:

        #nmcli connection modify IFACE [+|-]setting.property value

            setting.property:

            ipv4.addresses  ipv4.gateway

            ipv4.dns1  ipv4.method   manual | dhcp

    修改配置文件执行生效:

        systemctl restart network

        nmcli con reload

    nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0

    相关工具

        网络接口配置tui工具: nmtui

        主机名称配置工具: hostnamectl

            status

            set-hostname

    使用nmcli配置网络

        NeworkManager是管理和监控网络设置的守护进程

        设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接配置生效。

        显示所有包括不活动连接

            nmcli con show

        显示所有活动连接

            nmcli con show –active

        显示网络连接配置

            nmcli con show "System eth0“

        显示设备状态

            nmcli dev status

        显示网络接口属性

            nmcli dev show eno16777736

        创建新连接default, IP自动通过dhcp获取

            nmcli con add con-name default type Ethernet ifname eth0

        删除连接

            nmcli con del default

        创建新连接static ,指定静态IP,不自动连接

            nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254

        启用static连接配置

            nmcli con up static

        启用default连接配置

            nmcli con up default

        查看帮助

            nmcli con add help

        修改连接设置

            nmcli con mod“static” connection.autoconnect no

            nmcli con mod “static” ipv4.dns 172.25.X.254

            nmcli con mod “static” +ipv4.dns 8.8.8.8

            nmcli con mod “static” -ipv4.dns 8.8.8.8

            nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”

            nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

blob.png

blob.png

    网络配置文件

        设备配置被保存在文本文件中

            /etc/sysconfig/network-scripts/ifcfg-<name>

            帮助文档列出完整选项列表: /usr/share/doc/initcripts-*/sysconfig.txt

blob.png

    修改连接配置后,需要重新加载配置

        nmcli con reload

        nmcli con down “system eth0” 可被自动激活

        nmcli con up “system eth0”

        nmcli dev dis eth0 禁用网卡,访止被自动激活

    图形工具

        nm-connection-editor

十、实现网络组

    网络组Network Teaming

        网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量

        网络组不同于旧版中bonding技术,提供更好的性能和扩展性

        网络组由内核驱动和teamd守护进程实现

        多种方式runner

            broadcast

            roundrobin

            activebackup

            loadbalance

            lacp (implements the 802.3ad Link Aggregation Control Protocol)

        启动网络组接口不会自动启动网络组中的port接口

        启动网络组接口中的port接口不会自动启动网络组接口

        禁用网络组接口会自动禁用网络组中的port接口

        没有port接口的网络组接口可以启动静态IP连接

        启用DHCP连接时,没有port接口的网络组会等待port接口的加入

    创建网络组接口

        nmcli con add type team con-name CNAME ifname INAME [config JSON]

            CNAME 连接名, INAME 接口名

            JSON 指定runner方式

            格式: '{"runner": {"name": "METHOD"}}'

            METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp.

    创建port接口

        nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

            CNAME 连接名

            INAME 网络接口名

            TEAM 网络组接口名

        连接名若不指定,默认为team-slave-IFACE .

        nmcli dev dis INAME

        nmcli con up CNAME

            INAME 设备名 CNAME 网络组接口名或port接口

    网络组示例

        # nmcli con add type team con-name team0 ifname team0 config ‘{"runner": {"name": "loadbalance"}}'

        # nmcli con mod team0 ipv4.addresses 192.168.1.100/24

        # nmcli con mod team0 ipv4.method manual

        # nmcli con add con-name team0-eth1 type teamslave ifname eth1 master team0

        # nmcli con add con-name team0-eth2 type teamslave ifname eth2 master team0

        # nmcli con up team0

        # nmcli con up team0-eth1

        # nmcli con up team0-eth2

        # teamdctl team0 state; # nmcli dev dis eth1

    实验:创建网络组

        #ip link

        # nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'

        # nmcli con mod team0 ipv4.addresses '192.168.0.100/24'

        # nmcli con mod team0 ipv4.method manual

        # nmcli con add type team-slave con-name team0-port1 ifname eno1 master team0

        # nmcli con add type team-slave con-name team0-port2 ifname eno2 master team0

        # teamdctl team0 state

        #ping -I team0 192.168.0.254

        # nmcli dev dis eno1

        # teamdctl team0 state

        # nmcli con up team0-port1

        # nmcli dev dis eno2

        # teamdctl team0 state

        # nmcli con up team0-port2

        # teamdctl team0 state

    管理网络组配置文件

        # /etc/sysconfig/network-scripts/ifcfg-team0

            DEVICE=team0

            DEVICETYPE=Team

            TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"

            BOOTPROTO=none

            IPADDR0=172.25.5.100

            PREFIX0=24

            NAME=team0

            ONBOOT=yes

        # /etc/sysconfig/network-scripts/ifcfg-team0-eth1

            DEVICE=eth1

            DEVICETYPE=TeamPort

            TEAM_MASTER=team0

            NAME=team0-eth1

            ONBOOT=yes

    使用nmcli配置主机名

        rhel6之前主机名配置文件: /etc/sysconfig/network

        rhel7.0主机名配置文件:/etc/hostname ,默认没有这个文件, 通过DNS反向解析获取主机名, 主机名默认为:localhost.localdomain

        显示主机名信息

            hostname

            hostnamectl status

        创建并修改文件并生效

            hostnamectl set-hostname desktopX.example.com

        删除文件,恢复主机名localhost.localdomain

        DNS设置,存放在/etc/resolv.conf文件中,PEERDNS=no 表示当IP通过dhcp自动获取时, dns仍是手动设置,不自动获取。等价于下面命令:

            nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

十一、测试网络

    在命令行下测试网络的连通性

        显示主机名:

            hostname

        测试网络连通性:

            ping

            mtr

        显示正确的路由表:

            ip route

        确定名称服务器使用:

            nslookup

            host

            dig

        跟踪路由:

            traceroute

            Tracepath

十二、网络客户端工具

    lftp, ftp, lftpget, wget

        # lftp [-p port] [-u user[,password]] SERVER

    子命令:

        get、 mget、 ls、 help

    # lftpget URL

    # ftp

    # wget

    wget [option]… [URL]…

        -q: 静默模式

        -c: 断点续传

        -O: 保存位置

        –limit-rates=: 指定传输速率

原创文章,作者:DYW,如若转载,请注明出处:http://www.178linux.com/44994

(0)
DYWDYW
上一篇 2016-09-10 13:22
下一篇 2016-09-10 20:18

相关推荐

  • Linux的诞生史

    Linux诞生史 远古记忆-UNIX的诞生 Multics计划—开始 这是由麻省理工学院,通用电气和AT&T的贝尔实验室合作的操作系统项目,用于使用在GE-645大型主机上的。但是由于整个目标过于庞大,Multics虽然发布了一些产品,但是性能都很低,AT&T退出了Mulitcs项目,计划终止。肯.汤姆逊当时也参加了这个项目,很不…

    2017-07-11
  • Linux网络配置

    Linux网络基础配置 将Linux主机接入到网络,需要配置网络相关设置。 一般包括如下内容:     主机名     IP/netmask     路由:默认网关     DNS服务器  …

    Linux干货 2016-09-09
  • shell编程之循环

           当需要重复运行特定的指令以满足系统管理工作需要时,条件判断语句if、case并不能很好地提供支撑,shell提供了for、while、until循环语句来满足此需求。 一、for循环语句        for循环用于重复整个对象列表,依次遍历对列…

    Linux干货 2016-08-18
  • 10 文本处理のsed狗带

    sed 介绍 工作原理 语法 参数选项:-n, -e, -r, -f, -i 地址定界 编辑命令 查找替换 空间操作 练习 参考文档 sed介绍 sed是一个(stream editor)。         1) :使用sed只能在命令行下输入编辑命令来编辑文…

    Linux干货 2016-08-12
  • N22-第十一周作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 (1)数字签名 A与B通信,B发给A一段数据,为了证明数据确实是B发送过来的,B首先会用单向加密算法从数据中提取一段特征码,然后用自己的私钥加密这段特征码和原始数据后,发送给A;A接受到数据,首先用B的公钥解密,获取到特征码和原始数据;然后用同样的单向加密算法从原始数据中提取一段特征码,与之前用公钥解密得到的特…

    Linux干货 2016-11-01
  • Linux 文件系统权限

    一、简述权限  文件系统的权限管理机制的建立,约束了用户对数据的操作。 1、对系统安全而言  管理员的操作权限非常大,足以破坏系统,权限机制将管理员与普通用户之间区分开,防止系统被随意破坏。 2、对用户而言  Linux是一个多用户的操作系统,不同用户间为了防止其他人破坏数据或访问数据,文件系统的权限管理是非常必要的。 二、文件…

    Linux干货 2016-08-04

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-10 14:27

    综合前面两篇文章,作者已经对linux网络基础与属性管理有了一个深刻的认识,望课后多加练习,熟练掌握。