美文网首页linux学习
linux网络篇第二章CentOS7网络属性配置

linux网络篇第二章CentOS7网络属性配置

作者: 数据革命 | 来源:发表于2017-06-29 15:54 被阅读72次

    网卡命名机制

    • 早期的系统网卡命名都是非常容易变化的
    • 在CentOS6之前,网络接口使用连续号码命令如:eth0,eth1.....等,当增加或删除网卡时,名称可能会发生变化

    Centos7使用基于硬件, 设备拓扑和设备类型命令:

    • CentOS7 和Centos6的不同就是通过硬件来生成你的网卡名称
    • 他生成的时候有一系列的命名过程:
      • 首先他会基于你的固件如BOISS里面的信息或其他的硬件的信息来进行识别,比如他有可能会识别为eno1,eno就是内置网卡的意思
      • 如果你不是内置网卡时外置的,比方说是PCI-E的插槽外置网卡,他可能会设备ens1
      • 当然也有可能会识别别的名称如:ens0等等
      • 总之会根据你的物理位置,和主板的信息来识别和生成网卡名称
      • 所以这就可以保证我们的网卡不会那么容易变化,导致服务器断网等等一些危险的情况
      • 甚至有可能会用到我们物理网卡的MAC地址来命令
      • 当然有利也有弊,不容易管理,如果你实在是不喜欢,一样也可以采用传统的命名机制

    网卡名称

    • 在老期版本的里面我们的网卡名不是叫eth0,eh1吗
    • 有的厂家为了避免网卡名的变化就开发了一些软件,让你的网卡名称不像那么老变,其中有个软件可以实现这功能

    biosdevname

    • 这是老早期的软件,装上这个软件以后你的网卡可能会生成这种名字,:如内置网卡会生成em1,em2,外置网卡会生成:pypX :y(slot)插槽的意思 : X(port)意思是第几个端口
    • 那我们来看看这个软件
    [root@localhost ~]# rpm -qi biosdevname     
    Name        : biosdevname                  Relocations: (not relocatable)
    Version     : 0.7.2                             Vendor: CentOS
    Release     : 1.el6                         Build Date: Wed 22 Mar 2017 12:30:37 PM CST
    Install Date: Wed 28 Jun 2017 11:52:56 AM CST      Build Host: c1bm.rdu2.centos.org
    Group       : System Environment/Base       Source RPM: biosdevname-0.7.2-1.el6.src.rpm
    Size        : 55296                            License: GPLv2
    Signature   : RSA/SHA1, Thu 23 Mar 2017 11:02:59 PM CST, Key ID 0946fca2c105b9de
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    URL         : http://linux.dell.com/files/biosdevname
    Summary     : Udev helper for naming devices per BIOS names
    Description :
    biosdevname in its simplest form takes a kernel device name as an
    argument, and returns the BIOS-given name it "should" be.  This is necessary
    on systems where the BIOS name for a given device (e.g. the label on
    the chassis is "Gb1") doesn't map directly and obviously to the kernel
    name (e.g. eth0).
    
    • 瞧上面网址就给咋们列出了来了DEll,我相信你们都知道这是上面厂家,那就是戴尔
    • 只要你买的是DELL的服务器,会自带给你配一个biosdevname的软件
    • 如果你公司买的是DELL的服务器,自己不修改的话可能看到的是这种网卡名字
    • 当然别的厂家也可以装这个软件,但是别的厂家一般默认不会配,或者是有这个软件没启用这个功能

    名称组成格式

    • 在CentOS7 里面他的命名如下:

       -  **en**:**Ethernet**  有线局域网
       -  **wl**:**wlan** 无线局域网
       -  **ww**:**wwan**   无线广域网
      
    • 名称类型

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

      • s<slot> 扩展的索引号

      • x<MAC>基于MAC地址的命令

      • p<bus>s<slot>:enp2s1

    网卡设备的命令过程

    • 对于CentOS7来讲有一系列的命名过程
    • 第一步:udev,辅助工具程序/linb/udev/rename_device/usr/lib/udev/rules.d/60-net.rules
    • 第二步:biosdevname,会根据/usr/lib/udev/rules.d/71-biosdrvname.rules
    • 第三步:通过检查网络接口设备,根据/usr/lib/udev/rulis.d/75-net-description如:
    • ID_NET_NAME_ONBOARD
    • ID_NET_NAME_SLOT
    • ID_NET_NAME_PATH

    采用传统命名方式

    使用传统命令方式

    • 其实很简单我们只需要修改内核选项就可以了,下面我们开始介绍
    • 方法1:进入grub.cfg 由于里面数据较多,找到BEGIN /etc/grub.d/10_linu开头的行,在找到LANG=en_US.UTF-8结尾的行在后面加上net.ifnames=0即可
    [root@localhost ~]#  vim   /boot/grub2/grub.cfg
    
    ### BEGIN /etc/grub.d/10_linux ###
    
    
    menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menue
    ntry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-e9dc3158-e6dd-41d1-b51e-c24105d130cc' {
            load_video
            set gfxpayload=keep
            insmod gzio
            insmod part_msdos
            insmod xfs
            set root='hd0,msdos1'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd
    0,msdos1'  3ffaae18-be19-44b1-b629-e850953533b2
            else
              search --no-floppy --fs-uuid --set=root 3ffaae18-be19-44b1-b629-e850953533b2
            fi
            linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/
    swap rhgb quiet LANG=en_US.UTF-8 net.ifnames=0  <<<<<在后面加上 net.ifnames=0即可
            initrd16 /initramfs-3.10.0-327.el7.x86_64.img
    
    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:6f:cf:88 brd ff:ff:ff:ff:ff:ff
        inet 192.168.42.130/24 brd 192.168.42.255 scope global dynamic eth0
           valid_lft 1182sec preferred_lft 1182sec
        inet6 fe80::20c:29ff:fe6f:cf88/64 scope link 
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:6f:cf:92 brd ff:ff:ff:ff:ff:ff
        inet 172.17.253.208/16 brd 172.17.255.255 scope global dynamic eth1
           valid_lft 85782sec preferred_lft 85782sec
        inet6 fe80::20c:29ff:fe6f:cf92/64 scope link 
           valid_lft forever preferred_lft forever
    
    • 方法2:
      • grub2-mkconfig来生成,他是根据/etc/default/grub这个文件来生成的,我们也可以把这个文件也改了,下次在用grub2-mkconfig来生成就会有我们改过的net.ifnames-0了,我们修改的是倒数第二行
    [root@localhost ~]# vi /etc/default/grub 
    
    [root@localhost ~]# vi /etc/default/grub 
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0"
    GRUB_DISABLE_RECOVERY="true"
    ~                    
    
    • 所谓的方法2,就是已经改好了的/etc/default/grub,来重定向/boot?grub2/grub.cfg,不过原来的设计者也带有这个选项-o 有重定向功能
    [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-5ec44303424e44a3a31f7b97358af5de
    Found initrd image: /boot/initramfs-0-rescue-5ec44303424e44a3a31f7b97358af5de.img
    done
    
    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:6f:cf:88 brd ff:ff:ff:ff:ff:ff
        inet 192.168.42.130/24 brd 192.168.42.255 scope global dynamic eth0
           valid_lft 1784sec preferred_lft 1784sec
        inet6 fe80::20c:29ff:fe6f:cf88/64 scope link 
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:6f:cf:92 brd ff:ff:ff:ff:ff:ff
        inet 172.17.253.208/16 brd 172.17.255.255 scope global dynamic eth1
           valid_lft 86384sec preferred_lft 86384sec
        inet6 fe80::20c:29ff:fe6f:cf92/64 scope link 
           valid_lft forever preferred_lft forever
    

    CentOS7 网络配置工具

    • CentOS7里面,他有一个重大的变化就是,在CentOS7里面有一个重大的服务
    • 那就是systemctl status NetworkManager服务,这个服务在CentOS7里面很稳定,而且功能很强,CentOS6里面也有这个服务,推荐还是别用因为不稳定,在CentOS7里面已经是一个主流的服务了,那对应的这个服务有很多工具,我们来开始介绍
    [root@localhost ~]# systemctl status NetworkManager
    ● NetworkManager.service - Network Manager
       Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2017-06-29 20:38:09 CST; 16min ago
     Main PID: 999 (NetworkManager)
       CGroup: /system.slice/NetworkManager.service
               ├─ 999 /usr/sbin/NetworkManager --no-daemon
               ├─1337 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth1.pid -lf /var/lib/NetworkManager/dh...
               └─1338 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dh...
    
    Jun 29 20:49:43 localhost.localdomain dhclient[1338]: DHCPREQUEST on eth0 to 192.168.42.254 port 67 (xid=0x6091a5ea)
    Jun 29 20:49:43 localhost.localdomain dhclient[1338]: DHCPACK from 192.168.42.254 (xid=0x6091a5ea)
    Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info>    address 192.168.42.130
    Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info>    plen 24 (255.255.255.0)
    Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info>    server identifier 192.168.42.254
    Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info>    lease time 1800
    Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info>    nameserver '192.168.42.1'
    Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info>    domain name 'localdomain'
    

    CentOS7主机名

    • CentOS7里面有一个专门来控制主机名的名字叫hostnamectl ,原来的hostname 还在,只不过比他多了些功能和,显示更详细的信息
    [root@localhost ~]# hostnamectl
       Static hostname: localhost.localdomain      
             Icon name: computer-vm
               Chassis: vm
            Machine ID: 5ec44303424e44a3a31f7b97358af5de
               Boot ID: a6a9666d1d5644618b7127c02b53f786
        Virtualization: vmware
      Operating System: CentOS Linux 7 (Core)
           CPE OS Name: cpe:/o:centos:centos:7
                Kernel: Linux 3.10.0-327.el7.x86_64
          Architecture: x86-64
    
    • 这个命令就是比以前的CentOS6多了点功能,以前我们在CentOS6里面运行了hostname主机名只是临时生效,我们还要去/etc/sysconfig/network里面去修改
    • 但是在CentOS7里面运行这个命令就可以直接改掉主机名了
    • 我们运行 hostnamectl set-hostname Centos8 这个命令
    [root@localhost ~]# hostnamectl  set-hostname Centos8
    
    [root@centos8 ~]# 
    
    • 有一个要注意的是 在CentOS7里面主机名已经不是在/etc/sysconfig/network里面了
    • 在CentOS7里面主机名存放在/etc/hostname里面
    • 如果 /etc/hostname文件删了他就会使用CentOS7,默认的主机名localhost.localdomain
    • 当然了还有一个很重要的地方,那就是主机改了还有一个地方最好还是改下,以免系统以后出现特殊故障
    • 那就是/etc/hosts下加上你的主机名,你可以不改但是以后用应用软件会出现一些特殊问题
    [root@centos8 ~]# vi /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 centos8 <<这里加上主机名
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    • 在CentOS7里面运行nm-connection-editor命令可以打开图形化工具来配置网卡,图形化这就不多说了
     [root@localhost ~]# nm-connection-editor
    
    • 还可以用字符界面的工具 nmtui这个命令也不过多解释
    [root@localhost ~]# nmtui
    

    相关文章

      网友评论

        本文标题:linux网络篇第二章CentOS7网络属性配置

        本文链接:https://www.haomeiwen.com/subject/auomcxtx.html