zoukankan      html  css  js  c++  java
  • 🍖网络管理之网卡配置

    一.网卡名字修改

    1.网卡命名规则

    • CentOS6之前基于传统的命名方式如: eth1, eth0....
    • Centos7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配
    • 这样做的优点是命名是全自动的、可预知的,缺点是比eth0更难读, 比如ens33

    2.网卡命名策略(了解)

    3.配置网卡命名的方式

    • 修改网卡配置文件名称
    ⛅为了方便先进到目录,改成你想要的名字
    [root@shawn ~]#cd /etc/sysconfig/network-scripts/
    [root@shawn network-scripts]#mv ifcfg-ens32 ifcfg-eth100
    
    • 修改网卡配置文件
    ⛅直接使用"sed"查找后替换掉
    [root@shawn network-scripts]#sed -i "s/ens32/eth100/g" ifcfg-eth100
    
    ⛅或者进配置文件进行修改
    [root@shawn network-scripts]#vim ifcfg-eth100
    
    • GRUB添加 kernel 参数
    ⛅进入内核参数文件
    [root@shawn network-scripts]#vim /etc/sysconfig/grub
    ⛅修改这一行,"100"
    GRUB_CMDLINE_LINUX="rhgb quiet 'net.ifnames=100 biosdevname=100'"
    
    ⛅加载到引导分区,生成菜单
    [root@shawn network-scripts]#grub2-mkconfig -o /boot/grub2/grub.cfg
    
    ⛅重启系统生效,再查看是否成功
    [root@shawn network-scripts]#reboot
    [root@shawn ~]#ifconfig
    eth100: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500   #发现已经改变了
    

    二.基本网络配置

    1.查看网卡连接状态

    ⛅查看当前系统所连接的所有网卡 (我这里只有一个网卡,所以显示一个)
    [root@shawn ~]#lspci | grep -i eth
    02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
    
    ⛅确认网卡是否连接(link ok 表示网卡能被识别,并且接了有效的网线)
    [root@shawn ~]#mii-tool eth100
    eth100: negotiated 1000baseT-FD flow-control, link ok
    
    ⛅如果显示"failed: .....",则代表网线没连接等等
    

    2.ifconfig 命令

    ⛅查看
    ifconfig -a       #查看所有网卡信息
    ifconfif eth100   #查看指定网卡信息
    
    ⛅配置,添加子接口
    ifconfig eth100 192.168.12.188/24    #临时设置IP和掩码(重启服务或系统都失效)
    ifconfig eth100 192.168.12.188 netmask 255.255.255.0    #同上一样
    ifconfig eth100:1 192.168.12.199/24  #配置子接口
        
    ⛅删除子接口
    ifconfig eth100:1 down               #删除这个子接口
    ifconfig eth100:1 del 192.168.12.199 #删除这个子接口
        
    ⛅开启与关闭网卡配置
    ifconfig eth100 down/up              #不加载/加载这个网卡的配置文件
    ifdown eth100 / ifup eth100          #不加载/加载这个网卡的配置文件
    
    ⛅设置网卡最大传输单元
    ifconfig eth0 mtu 1500
    
    ⛅开启和关闭模式(了解)
    ifconfig eth0 promisc              #开启繁杂模式
    ifconfig eth0 -promisc             #关闭繁杂模式
    
    ifconfig eth0 multicast            #开启多播
    ifconfig eth0 -multicast           #关闭多播
    
    ifconfig eth0 allmulti             #开启
    ifconfig eth0 -allmulti            #关闭
    
    ⛅添加删除"ipv6"地址
    ifconfig eth0 add 3ffe:3240:800:1005: :2/64
    ifconfig eth0 del 3ffe:3240:800:1005: :2/64
    

    3.ifconfig 查看结果解释

    [root@shawn ~]#ifconfig
    ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    # [表示接口已启用] [表示主机支持广播] [表示接口在工作中] [表示主机支持多播] [mtu:1500最大传输单元(字节)]
            inet 192.168.12.188  netmask 255.255.255.0  broadcast 192.168.12.255
            #IPV4地址            #子网掩码               #广播地址
            inet6 fe80::20c:29ff:fe93:fdc8  prefixlen 64  scopeid 0x20<link>
            #IPV6地址                       #掩码长度      #作用域, link表示仅该接口有效
            ether 00:0c:29:93:fd:c8  txqueuelen 1000  (Ethernet)
            #网口接口的MAC地址        #传输队列长度     #接口类型
            RX packets 192442  bytes 23005768 (21.9 MiB)
            #表示此接口接收到的报文个数,总字节数
            RX errors 0  dropped 3378  overruns 0  frame 0
            #接收报文错误数,丢弃数,溢出数(由于速度过快而丢失的数据包),冲突的帧数
            TX packets 441431  bytes 34287197 (32.6 MiB)
            #表示此接口发送的报文个数,总字节数
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            #发送报文错误数,丢弃数,溢出数(由于速度过快而丢失的数据包),载荷数(发生carrier错误而丢失的数据包),冲突的帧数
    

    4.ethtool解决网络丢包问题

    • 全双工与半双工(储备知识)
    ⛅全双工传输英文写法是:Full - Duplex Transmissions
    是指交换机在发送数据的同时也能够接收数据,两者同步进行
    这好像我们平时打电话一样,说话的同时也能够听到对方的声音,目前的交换机都支持全双工。
    全双工的好处在于迟延小、冲突少、速度快
    
    ⛅半双工:就是指一个时间段内只有一个动作发生,
    举个简单例子,一条窄窄的马路,同时只能有一辆车通过,当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开
    这个例子就形象的说明了半双工的原理
    早期的对讲机、以及早期集线器等设备都是实行半双工的产品
    随着技术的不断进步,半双工会逐渐退出历史舞台
    
    • CRC校验(储备知识)
    ⛅CRC即循环冗余校验码(Cyclic Redundancy Check) 
    是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定
    循环冗余检查(CRC)是一种数据传输检错功能
    对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传
    输的正确性和完整性
    
    • 网卡工作原理(储备知识)
    ⛅网卡发包
    1、"ip"包 + 14 个字节的"mac"头变成数据帧"frame"
    2、"frame"拷贝到网卡芯片内部的缓冲区,由网卡处理
    3、网卡芯片为"frame"添加头部同步信息和"CRC"校验,此时才是真正可以发送的"packet",然后发送
    该"packet"
    
    ⛅网卡收包
    1、网络包"packet"到达网卡,网卡先检查包"packet"的"CRC"校验,保证其完整性和正确性,然后去掉它的头得到"frame"
    2、网卡将"frame"拷贝到网卡内部的"FIFO"缓冲区
    3、网卡驱动程序产生硬件中断,把"frame"从网卡拷贝到内存中,接下来就交给内核处理
    
    ⛅网卡丢包
    1.内核通常需要快速的拷贝网络数据包到系统内存
    2.因为网卡上接收网络数据包的缓存大小固定,而且相比系统内存也要小得多
    3.所以上述拷贝动作一旦被延迟, 必然造成网卡FIFO缓存溢出-进入的数据包占满了网卡的缓存
    4.后续的包只能被丢弃,这也应该就是"ifconfig"里的"overrun"的来源。
    
    • 丢包问题解决
    ⛅丢包排查
    网卡工作在数据链路层,数据量链路层,会做一些校验,封装成帧
    我们可以查看校验是否出错,确定传输是否存在问题。然后从软件层面,是否因为缓冲区太小丢包
    
    ⛅先查看底层硬件情况
    查看工作模式是否正常
    [root@shawn ~]#ethtool ens32 | egrep 'Speed|Duplex'
    	Speed: 1000Mb/s
    	Duplex: Full
    查看CRC校验是否正常
    [root@shawn ~]#ethtool -S ens32 | grep crc
         rx_crc_errors: 0
    #出现 Speed, Duplex, CRC 之类的都没问题,基本可以排除物理层面的干扰
    
    ⛅通过"ifconfig"可以看到"overruns"是否一直增大,如果查看结果是一直增大
    先查看网卡缓冲区
    [root@shawn ~]#ethtool -g ens32
    Ring parameters for ens32: 
    Pre-set maximums:   #最大可设置的值
    RX:		4096
    RX Mini:	0
    RX Jumbo:	0
    TX:		4096
    Current hardware settings:  #当前设置的值
    RX:		256
    RX Mini:	0
    RX Jumbo:	0
    TX:		256
    进行调大,并再次查看
    [root@shawn ~]#ethtool -G ens32 rx 2048  (增大)
    [root@shawn ~]#ethtool -G ens32 tx 2048  (增大)
    [root@shawn ~]#ethtool -g ens32
    Ring parameters for ens32:
    Pre-set maximums:
    RX:		4096
    RX Mini:	0
    RX Jumbo:	0
    TX:		4096
    Current hardware settings:
    RX:		2048     #可以发现变大了
    RX Mini:	0
    RX Jumbo:	0
    TX:		2048
    

    5.ethtool网卡降速

    [root@shawn ~]#ethtool -s ens32 speed 100 duplex full
    [root@shawn ~]#ethtool -s ens32 speed 100 duplex full autoneg off  #关闭自适应才能设置成功
    [root@shawn ~]#ethtool ens32   #查看
    
    ⛅若想完成永久设置,可以将上述"ethtool"设置写入/"etc/rc.d/rc.local"之中
    然后记住必须要加一个x权限
    [root@shawn ~]# chmod +x /etc/rc.d/rc.local
    

    6.ping 命令

    ⛅测试两台主机网络是否通
    1. ping [目标IP地址]              #Ctrl + c 结束
    2. ping -c [次数] [目标IP地址]    #设置"ping"的次数
    
    ⛅禁止别人"ping"自己
    # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    

    7.关闭NetworkManager服务

    • NetworkManager是检测网络、自动连接网络的程序
    • 网络管理器最初由 Redhat 公司开发,现在由 GNOME 管理
    • 它会干扰网络配置, 比如: DNS经常被刷掉, 所以通常关闭
    [root@shawn ~]#systemctl stop NetworkManager       (关闭)
    [root@shawn ~]#systemctl disable NetworkManager    (开机不重启)
    

    8./etc/sysconfig/network-script/ifcfg-xxx配置文件相关信息

    9.dns 配置文件

    • /etc/resolv.conf DNS解析文件
    ⛅可以设置DNS指向,最多三个
    [root@shawn ~]#cat /etc/resolv.conf
    nameserver 8.8.8.8             #对应的是网卡配置文件中的第一个NDS配置项
    nameserver 223.6.6.6           #对应的是网卡配置文件中的第二个NDS配置项
    
    • /etc/hosts 本地名称解析文件, 优先于DNS
    ⛅DNS检索优先级
    浏览器缓存--->本地系统缓存--->本地计算机HOSTS文件--->ISP远程DNS--->递归or迭代搜索
    

    10.永久设置主机名

    ⛅通过修改文件来永久修改主机名
    [root@localhost ~]# vi /etc/hostname  
    
    ⛅通过命令的方式也是永久修改
    [root@localhost ~]# hostnamectl set-hostname [想要的主机名]
    [root@localhost ~]# exit
    登出
    ⛅重新登入即可
    

    11.查看端口与服务的对应关系

    [root@shawn ~]#grep '^ftp\|^ssh' /etc/services
    

  • 相关阅读:
    嵌套函数
    大括号{ }
    不是俺的错
    hasOwnProperty()
    属性的查找过程
    原型和原型链——汤姆大叔
    JS问题汇总
    phpcms无刷新分页
    phpcms开发过程中遇到的问题总结
    基于物联网的自动氮吹仪
  • 原文地址:https://www.cnblogs.com/songhaixing/p/13986997.html
Copyright © 2011-2022 走看看