Linux网络管理

本文详细介绍了Linux网络管理,涵盖网卡名字、基本网络配置、路由管理、arp和arping命令以及ip命令的使用。讨论了数据包转发、路由决策、网络故障排查等关键概念,提供了配置和管理路由的实例,是Linux网络管理员的重要参考资料。
摘要由CSDN通过智能技术生成

Linux网络管理

一 网卡名字

网卡名称规则

#1、传统命名
CentOS6之前采用的都是传统的命名方式,如以太网:eth1,eth0....

#2、可预知的命名方案
Centos7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名是全自动的、可预知的,缺点是比eth0更难读。比如ens33

可预知的命名方案例如:
①如果Fireware或BIOS为主板上集成的设备提供索引信息可用,则根据此索引进行命名,如:eno1, eno2, ...
②如果Fireware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ...
③如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, ...
④如果用户显示定义,也可根据MAC地址命名,例如:enx122161ab212
#上述均不可用时,则仍使用传统方式命名;

可预知的命名方案,如本机网卡名为ens33,命名格式的组成如下:
en:ethernet
wl:wlan     #无线局域网
ww:wwan     #无线广域网

名称类型:
o<index>         #集成设备的设备索引号;
s<slot>          #扩展槽对的索引号;
x<MAC>           #基于MAC地址的命名;
p<bus>s<slot>    #基于总线及槽的拓扑结构进行命名;

了解网卡命名的策略:

规则1:如果Firmware或者BIOS提供的设备索引信息可用就用此命名。比如eno1。否则使用规则2

规则2:如果Firmware或Bios的PCI-E扩展插槽可用就用此命名。比如ens1,否则使用规则3

规则3:如果硬件接口的位置信息可用就用此命名。比如enp2s0

规则4:根据MAC地址命名,比如enx7d3e9f。默认不开启。

规则5:上述均不可用时回归传统命名方式

上面的所有命名规则需要依赖于一个安装包:biosdevname

biosdevname和net.ifnames属于两种不同的命名规范

CentOS-7中默认biosdevname的值为0,net.ifnames的值为1

配置回归传统命名方式

#修改网卡配置文件名称
[root@egon ~]# cd /etc/sysconfig/network-scripts/
[root@egon ~]# mv ifcfg-ens33 ifcfg-eth0

#修改网卡配置文件设备名称
[root@egon ~]# sed -i "s#ens33#eth0#g" ifcfg-eth0

##GRUB添加kernel参数
[root@egon ~]# vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="rhgb quiet 'net.ifnames=0 biosdevname=0'"

#加载到引导分区
[root@egon ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

#重启系统生效
[root@egon ~]# reboot

二 基本网络配置

查看网卡信息

# 查看当前系统所连接的所有网卡
[root@egon ~]# lspci |grep -i eth

# 确认网线已经连接好,以eth0 为例
[root@egon ~]# mii-tool eth0
eth0:negotiated 1000baseT-FD flow-control,link ok # link ok网卡能够被识别,并且接了有效的网线

[root@egon ~]# mii-tool eth1
SIOCGMIIPHY on 'eth1' failed: Invalid argument
网卡虽然能够被识别(网卡已经被驱动了,但不能用:网卡配置错误,网线没接等)

ifconfig命令

1、ifconfig -a 查看所有网卡信息(包括未激活的网卡)
2、ifconfig eth0 查看单个网卡信息
3、ifconfig eth0 192.168.1.122 netmask 255.255.255.0 临时设定IP和掩码(重启服务或者系统都失效)
4、ifconfig eth0 192.168.1.122/24 

5、ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 配置子接口
# 删除:下述两种方式都可以
ifconfig eth0:0 down
ifconfig eth0:1 del 192.168.0.2  # 删除,不必加掩码

6、开启与关闭
ifconfig eth0 down|up  # 不加载网卡配置文件
ifdown eth0 |ifup eth0  # 加载网卡配置文件

7、设置网卡最大传输单元
ifconfig eth0 mtu 1500

8、开启关闭模式(了解)
ifconfig eth0 promisc  # 开启繁杂模式
ifconfig eth0 -promisc  # 关闭繁杂模式

ifconfig ens33 multicast  # 开启多播
ifconfig ens33 -multicast  # 关闭多播

ifconfig eth0 allmulti  # 开启
ifconfig eth0 -allmulti  # 关闭

9、添加、删除ipv6地址
ifconfig eth0 add 3ffe:3240:800:1005::2/64
ifconfig eth0 del 3ffe:3240:800:1005::2/64

ifconf命令查看到的结果解释

[root@egon ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    	 # 从flags可知该接口已启用,支持广播、组播,MTU:1500(最大传输单元):1500字节
         # 其他了解知识:
         // UP:表示“接口已启用”。
         // BROADCAST :表示“主机支持广播”。
         // RUNNING:表示“接口在工作中”。
         // MULTICAST:表示“主机支持多播”。
         // 可以了解一下繁杂模式:https://www.cnblogs.com/linhaifeng/articles/13949611.html
    
        inet 192.168.12.42  netmask 255.255.255.0  broadcast 192.168.12.255
        # IPv4地址           子网掩码               广播地址
        
        inet6 fe80::499e:c2c1:f5ed:3900  prefixlen 64  scopeid 0x20<link>
        # IPv6地址                        掩码长度       作用域,link表示仅该接口有效
        
        ether 00:0c:29:86:f8:59  txqueuelen 1000  (Ethernet)
        #网卡接口的MAC地址         传输队列长度       接口类型为Ethernet
        
        RX packets 5708  bytes 1061424 (1.0 MiB)
        # 表示开机后此接口累积接收的报文个数,总字节数
        
        RX errors 0  dropped 833  overruns 0  frame 0
        # 表示开机后此接口累积接收报文错误数,丢弃数,溢出数(由于速度过快而丢失的数据包数),冲突的帧数
        
        TX packets 102  bytes 16768 (16.3 KiB)
        # 表示开机后此接口累积发送的报文个数,总字节数
        
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        # 表示开机后此接口累积发送报文错误数,丢弃数,溢出数(由于速度过快而丢失的数据包数),
        # carrier 载荷数(发生carrier错误而丢失的数据包数)
        # collisions 冲突数

ethtool解决网卡丢包严重问题

储备知识

# 1、储备知识1:全双工与半双工,目前网卡一般都应该采用全双工模式
全双工传输英文写法是:Full-Duplex Transmissions
是指交换机在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的交换机都支持全双工。

全双工的好处在于迟延小、冲突少、速度快。
与之对应的是【半双工】这个概念:就是指一个时间段内只有一个动作发生,举个简单例子,一天窄窄的马路,同时只能有一辆车通过,当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理。早期的对讲机、以及早期集线器等设备都是实行半双工的产品。随着技术的不断进步,半双工会逐渐退出历史舞台。
// 了解更多全双工与半双工:https://www.cnblogs.com/linhaifeng/articles/13949762.html
    
# 2、储备知识2:CRC   
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性
// 了解更多:https://www.cnblogs.com/linhaifeng/articles/13949806.html
    
# 3、储备知识3:网卡工作原理
网卡发包:
	1、ip包+14个字节的mac头变成数据帧frame
    2、frame拷贝到网卡芯片内部的缓冲区,由网卡处理
    3、网卡芯片为frame添加头部同步信息和CRC校验,此时才是真正可以发送的packet,然后发送该packet
网卡收包:
	1、网络包packet到达网卡,网卡先检查包packet的CRC校验,保证其完整性和正确性,然后去掉它的头得到frame
    2、网卡将frame拷贝到网卡内部的FIFO缓冲区
    3、网卡驱动程序产生硬件中断,把frame从网卡拷贝到内存中,接下来就交给内核处理
    
网卡丢包!!!
	内核通常需要快速的拷贝网络数据包到系统内存!!!
    因为网卡上接收网络数据包的缓存大小固定,而且相比系统内存也要小得多。
    所以上述拷贝动作一旦被延迟,必然造成网卡FIFO缓存溢出 - 进入的数据包占满了网卡的缓存,后续的包只能被丢弃,这也应该就是ifconfig里的overrun的来源。

// https://www.cnblogs.com/linhaifeng/articles/13949943.html

丢包问题解决

# 丢包排查
网卡工作在数据链路层,数据量链路层,会做一些校验,封装成帧。我们可以查看校验是否出错,确定传输是否存在问题。然后从软件层面,是否因为缓冲区太小丢包。

# 1 先查看硬件情况
一台机器经常收到丢包的报警,先看看最底层的有没有问题:
# 1.1 查看工作模式是否正常
[root@egon ~]# ethtool ens33 | egrep 'Speed|Duplex'
	Speed: 1000Mb/s
	Duplex: Full
        
# 1.2 查看CRC校验是否正常     
[root@egon ~]# ethtool -S ens33 | grep crc # crc错误值大通常是因为服务器外部的网络环境有问题导致的
     rx_crc_errors: 0
        
-----------Speed,Duplex,CRC 之类的都没问题,基本可以排除物理层面的干扰----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值