zoukankan      html  css  js  c++  java
  • 十八、centos7网络属性配置

    一、为什么需要这个

    服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。
    Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序。
    为解决这类问题,dell开发了biosdevname方案(systemd v197版本中将dell的方案作了进一步的一般化拓展)。

    目前的Centos既支持dell的biosdevname,也支持systemd的方案。

    二、Centos7中的命名规则

    传统命名:以太网eth[0,1,2,...]

     2.1、可预测功能

        udev支持多种不同的命名方案:

          基于Firmware , 拓扑结构  

     udev支持多种不同的命名方案:UDEV是系统在用户空间探测内核空间,通过sys接口所输出的硬件设备,并配置的硬件设备的一种应用程序,
    在centos7上UDEV支持多种不同的命名方案,无非就是支持基于固件的命名(firmware,基于主板上rom芯片)或者是通过总线拓扑(PCI总线)结构来命名。
    总线拓扑(PCI总线)结构命名主要是根据对应设备所在的位置来命名,slot设备上的第几个接口方式命名,这样命名的方式就是能够实现自动命名,只要接口不坏,
    无论是哪一块网卡插上去其名称一定是固定的。

     

       (1)网卡命名机制

        systemd对网络设备的命名方式:

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

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

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

          (d)如果用户显示启动,也可以根据MAC地址进行命名,这个方法一般不用

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

           上述命名机制中,有的需要biosdevname程序的参与; Scheme的策略顺序是系统默认的。

      (2)名称组成格式 : 设备类型+设备位置+数字    

      en: ethernet (以太网接口)
    
      wl: wlan(无线网卡)
    
      ww: wwan(无线广域网拨号)
    
    名称类型:
    
      o<index>: 集成设备的设备索引号(基于主板上rom芯片);
    
      s<slot>: PCI-E扩展槽的索引号
    
      x<MAC>: 基于MAC地址的命名;
    
      p<bus>s<slot>: enp2s1---PCI-E总线上第二个总线上的第一个插槽设备

    2.2、网卡设备的命名过程:

    按照如下顺序执行udev的rule
    1./usr/lib/udev/rules.d/60-net.rules
    2./usr/lib/udev/rules.d/71-biosdevname.rules
    3./lib/udev/rules.d/75-net-description.rules
    4./usr/lib/udev/rules.d/80-net-name-slot.rules

    第一步:

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

    60-net.rules 
    使用/lib/udev/rename_device这个程序,去查询/etc/sysconfig/network-scripts/下所有以ifcfg-开头的文件
    如果在ifcfg-xx中匹配到HWADDR=xx:xx:xx:xx:xx:xx参数的网卡接口
    则选取DEVICE=yyyy中设置的名字作为网卡名称。

    第二步: 

      biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules

    71-biosdevname.rules
    如果系统中安装了biosdevname,且内核参数未指定biosdevname=0,且上一步没有重命名网卡,则按照biosdevname的命名规范,从BIOS中取相关信息来命名网卡。
    主要是取SMBIOS中的type 9 (System Slot) 和 type 41 (Onboard Devices Extended Information)
    不过要求SMBIOS的版本要高于2.6,且系统中要安装biosdevname程序。

    第三步:

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

    75-net-description.rules
    udev通过检查网卡信息,填写如下这些udev的属性值
    ID_NET_NAME_ONBOARD
    ID_NET_NAME_SLOT
    ID_NET_NAME_PATH
    ID_NET_NAME_MAC

    第四步:再不成功,则保留原来名字,接口不会重命名

    80-net-name-slot.rules
    如果在60-net.rules ,71-biosdevname.rules这两条规则中没有重命名网卡,且内核未指定net.ifnames=0参数
    则udev依次尝试使用以下属性值来命名网卡,如果这些属性值都没有,则网卡不会被重命名。
    ID_NET_NAME_ONBOARD
    ID_NET_NAME_SLOT
    ID_NET_NAME_PATH

    上边的71-biosdevname.rules 是实际执行biosdevname的policy
    75-net-description.rules和80-net-name-slot.rules实际执行Scheme a,b,c

    根据上述的过程,可见网卡命名受 biosdevname和net.ifnames这两个内核参数影响。

    这两个参数都可以在grub配置中提供:biosdevname=0是系统默认值(dell服务器默认是1),net.ifnames=1是系统默认值:

    修改默认参数:如回归默认命名方式:

    2.3、回归传递命名方式:centos7网卡重命名为ethx格式

    1)编辑内核参数
          在GRUB_CMDLINE_LINUX中加入net.ifnames=0即可

                     [root@localhost  ~]$vim /etc/default/grub

    GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 rhgb quiet"

    net.ifnames=0 禁止修改网络接口名称

    2)为grub2生成其配置文件
            编辑完grub配置文件以后不会立即生效,需要生成配置文件。

                    [root@localhost ~]$grub2-mkconfig -o /etc/grub2.cfg

    3) 重启系统

    注:内核参数组合使用的时候,其结果如下:

    默认内核参数(biosdevname=0,net.ifnames=1):  网卡名 "enp5s2"
    biosdevname=1,net.ifnames=0:网卡名 "em1"
    biosdevname=0,net.ifnames=0:网卡名 "eth0" (最传统的方式,eth0 eth1 傻傻分不清)

    总结:

            a)如系统BIOS符合要求,且系统中安装了biosdevname,且biosdevname=1启用,则biosdevname优先;

            b)如果BIOS不符合biosdevname要求或biosdevname=0,则仍然是systemd的规则优先。

            c)如果用户自己定义了udev rule来修改内核设备名字,则用户规则优先。

    三、地址配置工具 :nmcli

    3.1、出现如下情况:

    [root@localhost ~]# nmcli device show eth0
    Error: NetworkManager is not running.

     

    启动:systemctl start| stop| restart NetworkManager

          systemctl status NetworkManager

    开机自启动:systemctl enable NetworkManager

     nmcli dev help 
      nmcli device status     nmcli device show eth0 :指定接口当前状态信息

    修改IP地址等属性:
      nmcli connection modify IFACE [+|-]setting.property value(重点)
    setting.property: ipv4.addresser、ipv4.gateway 、ipv4.dns1、ipv4.method
    [+|-]: 添加或者减去      

      nmcli connection --help

         nmcli  con modify eth0  ipv4.addresses  172.16.100.12/16     修改接口ip地址

         localectl set-locale LANG=en_US.utf8

         nmcli con down eth0; nmcli con up eth0 接口禁用再启用  

    3.2、网络接口配置tui工具:nmtui 命令

     3.3、主机名称配置工具 :

      图形界面修改主机名 :nmtui ---->Set system hostname

      

      命令行修改:hostnamectl  --help

         hostnamectl  set-hostname hostname  然后重启即可

    
    

    网络客户端工具命令: ftp,lftp,wget,lftpget

      ftp命令 ,lftp命令 命令行客户端的交互式工具

      wget命令,lftpget命令 ftp命令行客户端的非交互式工具

    [CentOS6]
    
    name=CentOS 6.1
    
    failovermethod=priority
    
    baseurl=file:///media/cdrom
    
    gpgcheck=0
    
    enabled=1

    lftp命令

    lftp [ -u user[,password] ] [ -p port 默认21] site

    轻量的文件传输工具

        1、支持命令行补全

        2、支持glob通配符

        3、lftpget命令是调用lftp命令完成下载

        lftp内置命令:

            1、帮助:help

            2、下载:get,mget

            3、切换目录:cd

            4、以ls -l格式显示内容: ls

            5、本地切换: lcd

            6、!cmd

  • 相关阅读:
    RabbitMQ学习之集群消息可靠性测试
    RabbitMQ学习之集群镜像模式配置
    (转)RabbitMQ学习之集群部署
    RabbitMQ学习之集群模式
    RabbitMQ学习之spring配置文件rabbit标签的使用
    RabbitMQ学习之messageconver插件实现(Gson)
    RabbitMQ学习之基于spring-rabbitmq的RPC远程调用
    RabbitMQ学习之基于spring-rabbitmq的消息异步发送
    (转)RabbitMQ学习之spring整合发送异步消息(注解实现)
    范仁义js课程---16、非bool值的逻辑运算
  • 原文地址:https://www.cnblogs.com/liuzhiyun/p/11391094.html
Copyright © 2011-2022 走看看