当前位置:   article > 正文

Linux 网口配置文件及网络服务

网口配置文件

本篇记录Linux 的网卡配置以及网络服务的相关配置,期望在了解的网卡的配置内容的基础上,对网络问题能进行配置文件的排查。网络问题是非常复杂的,本篇不涉及抓包和网络的其他问题排查。

一、网络配置文件

网络配置文件有很多,常见的有网口配置文件,DNS 配置,网关配置,主机地址解析配置等。

主机名配置文件

先从简单的开始入手,最简单就是我们最常见但是容易忽略的主机名了,默认都是localhost

  1. /etc/hostname
  2. localhost
  3. [root@localhost ~]#
  4. root 用户 登录的 localhost 主机名的机器,当前工作目录在root 用户家目录
  5. [user@localhost ~]$
  6. 普通用户 user 登录的 localhost 主机名的机器,当前工作目录在 user 用户家目录

主机名写入 /etc/hostname 文件中,可以只写一段,也可以用 '.' 分割,一般不会在上面花太多功夫。主要是用来区分服务器的一个名字。如果有更新主机名,记得顺带更新一下/etc/hosts

  1. # 更新主机名,更新HOSTNAME 以及hostname 返回值,但不会修改/etc/hostname
  2. hostname your_hostname
  3. # 更新主机名,更新HOSTNAME 以及hostname 返回值,会修改/etc/hostname 推荐方式
  4. hostnamectl set-hostname your_hostname

DNS配置文件

  1. man /etc/resolv.conf
  2. nameserver Name server IP address
  3. search Search list for host-name lookup.
  4. The domain directive is an obsolete name for the search directive that handles one search list entry only.
  5. 案例:
  6. nameserver 8.8.8.8
  1. /etc/hosts 解析优先级比DNS高
  2. 案例: 加上解析后,ping baidu.com 会解析成ping localhost
  3. localhost baidu.com

网络配置文件

主机名、网关也可能在这里配置,这里的网关配置优先级比网口配置的低,影响默认路由;这个文件可以为空,但是不能删除。

  1. /etc/sysconfig/network
  2. GATEWAY=10.0.0.1

网络限制文件

如下两个文件可以通过IP 限制访问,貌似8版本上面没有了

  1. man 5 hosts_access
  2. /etc/hosts.allow
  3. /etc/hosts.deny

网络端口和服务信息

一些 IANA 记录的服务名称和传输协议端口号注册表,可以看看端口一般对应的是什么服务,或者服务的默认端口是什么

/etc/services

网口配置文件

网口配置文件很大程度上决定了服务器网络是否正常,值得仔细了解一下;网口配置文件都在/etc/sysconfig/network-scripts 目录下,网口的命名规范可以看看如下博客

Linux 网卡命名规范笔记-CSDN博客

基础网口配置

/etc/sysconfig/network-scritps 目录下,所有ifcfg-开头的文件都会被识别成网口文件,备份网口文件请注意文件名前缀要修改。另外 # 号注释 。配置文件可以自己建,但是具体到网口的设备名,写错了无法生效的。ip a 可以看到所有的网口。

  1. 常见配置解释:
  2. DEVICE=eth0 网卡的名字
  3. HWADDR=00:00:00:00:12:d9 HWADDR HardWare Address 硬件地址 MAC地址
  4. TYPE=Ethernet 网络类型 以太网
  5. UUID=ae779ae6-044d-43d5-a33b-48c89e8de10e UUID 做到系统中独一无二
  6. ONBOOT=yes BOOT ON ? 在开机或重启网卡的时候是否启动网卡
  7. NM_CONTROLLED=yes 是否受network程序管理
  8. BOOTPROTO=none 网卡是如何获取到ip地址 网卡获取ip地址的方式
  9. a. dhcp 自动获取ip地址
  10. b. none 固定的ip地址
  11. c. static 固定的ip地址
  12. IPADDR=10.0.0.100 IPADDR ip地址
  13. NETMASK=255.255.255.0 子网掩码
  14. GATEWAY=10.0.0.2 网关
  15. DEFROUTE=yes 使用默认路由
  16. VLAN=yes trunk 模式的网络,需要启用VLAN
  1. 极简配置(如下配置网络服务就能跑起来,但是建议加上MAC和BOOTPROTO):
  2. DEVICE=ens3
  3. ONBOOT=yes
  4. IPADDR=10.0.0.100
  5. NETMASK=255.255.255.0
  6. GATEWAY=10.0.0.1

有时候需要在网卡上绑定多个IP(不太建议使用),有两种办法:

  1. 方式一:
  2. 在网口配置文件上加一行,IPADDR=XXX.XXX.XXX.XXX 适合同网段IP
  3. 方式二:
  4. 复制一份网口文件,命名ifcfg-xxx:0 区分,修改DEVICE 和 相关的网络配置重启网络服务即可
  5. 注意:
  6. 1、如果要配置其他网段的IP,需要主机交换机端口是否支持,虚拟机得注意是否有支持对应网段
  7. 2、配置其他网段,还需要注意路由配置,很容易因为路由错误导致访问不通

如果控制台不方便访问,修改网口配置请注意留定时任务来恢复到可以访问的状态,修改网络配置是很容易断网,导致访问不了服务器的情况。

网口绑定

为了保障服务器的高可用,一般物理机会接入多条网线来减少网络中断的概率。此时需要做网口的汇聚或者主备,目前工作中见到的主要分两类,6版本系统上面在运行的bond 绑定以及7及7以上的team 绑定。都支持多种模式,这里主要用到主备模式。

bond 绑定

目前6版本上貌似不支持team的配置,所以还是用的bond 绑定。主要分两类配置,一个是bond 的配置文件,另外就是绑定网口配置的配置文件

在6版本上面配置bond 有很多奇奇怪怪的问题,尽量保证控制台可以访问到再操作吧

bond 配置

1、创建网卡配置文件

  1. vi /etc/sysconfig/network-scripts/ifcfg-bond0
  2. DEVICE=bond0
  3. NAME=bond0
  4. TYPE=Bond
  5. BONDING_MASTER=yes
  6. IPADDR=#IP地址
  7. NETMASK=#子网掩码
  8. GATEWAY=#网关IP
  9. ONBOOT=yes
  10. BOOTPROTO=static
  11. #下面的mode=1是表示主备模式,primary=em1中的em1是主网卡名称(根据自己网卡名称变动)
  12. BONDING_OPTS="mode=1 miimon=100 updelay=600000 primary=em1"
slave配置

2、配置slave 节点

从网卡一: 注意MATSTER 别用bond0的UUID,踩过坑,可能对不上,直接用bond的设备名就行

  1. vi /etc/sysconfig/network-scripts/ifcfg-em1
  2. DEVICE=em1
  3. NAME=em1
  4. TYPE=Ethernet
  5. BOOTPROTO=none
  6. ONBOOT=yes
  7. MASTER=bond0
  8. SLAVE=yes

从网卡二 就是设备名不一样,其他内容都一样

  1. vi /etc/sysconfig/network-scripts/ifcfg-em2
  2. DEVICE=em2
  3. NAME=em2
  4. TYPE=Ethernet
  5. BOOTPROTO=none
  6. ONBOOT=yes
  7. MASTER=bond0
  8. SLAVE=yes

3、生效和检查

  1. service network restart # 重启网络服务 有的是NetworkManager
  2. ip a # 查看IP 是否在bond0
  3. cat /proc/net/bonding/bond0|grep -A3 "Interface" # 查看bond0 状态
team0 绑定

team 绑定会更常见,大致流程都是一样的。不过team 有管理命令,维护更便捷

  1. whereis teamdctl
  2. teamdctl: /usr/bin/teamdctl /usr/share/man/man8/teamdctl.8.gz
  3. rpm -qf /usr/bin/teamdctl
  4. teamd-1.31-4.el8.x86_64
  5. # 查看模板文件 (版本不同可能存在不同的位置,如果没有,请检查是否有安装teamd软件)
  6. ls -l /usr/share/doc/teamd*/example_ifcfgs/
  7. 1 目录下是 roundrobin 模板
  8. 2 目录下是 lacp 模板
  9. 3 目录下是 activebackup 模板

roundrobin模式是一种简单的轮询方式,适用于负载均衡,但不够灵活

当某个物理网卡出现故障时,流量不会立即切换到其他网卡

lacp模式支持动态负载均衡,具有更好的性能和可靠性,但需要团队成员都支持LACP协议

成员之间动态地分配流量,并在链路出现故障时立即将流量切换到其他可用链路

active-backup模式在性能和可靠性方面表现出色,适用于高可用性场景,主备模式

活动连接和备份连接之间实时监控,当活动连接出现故障时,备份连接立即接管流量

team 配置

1、编辑网卡配置文件 (这里记录主备模式)

  1. vi /etc/sysconfig/network-scripts/ifcfg-team0
  2. DEVICE="team0"
  3. DEVICETYPE="Team"
  4. ONBOOT="yes"
  5. BOOTPROTO=static
  6. NETMASK=255.255.255.0
  7. IPADDR=10.0.0.100
  8. GATEWAY=10.0.0.1
  9. TEAM_CONFIG='{"runner":{"name":"activebackup"},"link_watch":{"name":"ethtool"}}'
slave配置

2、编辑从网卡配置文件

  1. DEVICE="em1"
  2. DEVICETYPE="TeamPort"
  3. ONBOOT="yes"
  4. TEAM_MASTER="team0"
  1. DEVICE="em2"
  2. DEVICETYPE="TeamPort"
  3. ONBOOT="yes"
  4. TEAM_MASTER="team0"

3、生效和查看状态

  1. systemctl restart NetworkManager # 如果有关闭NetworkManager的会用network
  2. teamdctl team0 state
  3. setup:
  4. runner: activebackup
  5. ports:
  6. em1
  7. link watches:
  8. link summary: up
  9. instance[link_watch_0]:
  10. name: ethtool
  11. link: up
  12. down count: 0
  13. em2
  14. link watches:
  15. link summary: up
  16. instance[link_watch_0]:
  17. name: ethtool
  18. link: up
  19. down count: 0
  20. runner:
  21. active port: em1

网桥配置文件

docker 的网桥模式,kvm 主机的网桥模式,需要将流量转发到虚拟的网桥处理,最后从绑定的实际网口出入。可以用 brctl 或者 ip 命令配置也可以自己编辑配置文件,这里介绍编辑配置文件的方式。

  1. cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-br_10_0_8
  2. TYPE=Bridge
  3. NAME=br_10_0_8
  4. DEVICE=br_10_0_8
  5. ONBOOT=yes
  6. BOOTPROTO=static
  7. EOF

然后在口配置文件上面添加BRIDGE=br_10_0_8 ,来将网桥绑定到网口上。也可以通过命令操作

  1. brctl addif <bridge> <device> add interface to bridge
  2. brctl show [ <bridge> ] show a list of bridges

VLAN 网口配置

交换机端口一般配置access 模式和trunk模式,一般服务器常见的都是access模式。

access 模式属于一个VLAN,可以简单理解为只能在同一个VLAN中通信(不走路由的情况下);

trunk 模式可以携带多个VLAN ,简单理解就是支持多个VLAN 间通信(不走路由的情况下);

一个VLAN 可以简单理解为一个网段;

如果我们需要在网卡或者聚合链路上面支持多个网段,例如在KVM主机上需要支持多个网段的虚拟机网络通信,或者docker 需要支持多个网段的容器实例网络通信时,我们需要在交换机开启trunk 模式,并修改操作系统上的网口配置;注意,如果从access切换到trunk 网口配置未更新,网络是会断开的。

这里用team 聚合的方式演示,直接用网口也是一样的:

team 配置

我们需要一个网口,这里用team0 聚合代替单个网口,配置team 的salve节点这里省略

  1. cat > ifcfg-team0 << EOF
  2. DEVICE=team0
  3. DEVICETYPE=Team
  4. ONBOOT=yes
  5. BOOTPROTO=none
  6. USERCTL=no
  7. TEAM_CONFIG='{"runner":{"name":"activebackup"},"link_watch":{"name":"ethtool"}}'
  8. EOF
管理IP 配置

这个配置的意思是,是启用VLAN模式,设备名写什么不重要,重要的是绑定到team上,后续从这个设备出去的网络包,就会带上VLAN标签。trunk 模式配置主机 IP 也必须如此。

  1. cat > ifcfg-team0.11 << EOF
  2. DEVICE=team0.11
  3. DEVICETYPE=Team
  4. VLAN=yes
  5. ONBOOT=yes
  6. BOOTPROTO=none
  7. IPADDR=10.0.0.100
  8. NETMASK=255.255.255.0
  9. GATEWAY=10.0.0.1
  10. USERCTL=no
  11. EOF
网桥绑定配置(可选)

这个是指将网桥绑定到这个team0.162 网口上,网桥流量给到网口,并启用VLAN模式

  1. cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-team0.10
  2. DEVICE=team0.10
  3. VLAN=yes
  4. DEVICETYPE=Team
  5. ONBOOT=yes
  6. BOOTPROTO=none
  7. BRIDGE=br_10_0_8
  8. EOF

二、网络服务

早些时候,Centos 系列都是用的 network 服务通过脚本来管理和维护网络的,后来有了NetworkManager 服务,这个能做的事情更多。目前8版本 network 剥离出来,不是必须安装的软件了

  1. # 查看文件属于哪个软件包
  2. rpm -qf /etc/sysconfig/network-scripts/

如果你发现网口配置文件没问题,网络服务怎么重启也不生效,而且你正在控制台而不是远程,那么建议试试如下方式:

  1. ll /sys/class/net/ # 查看当前网络设备
  2. ip a flush dev em1 # 清除 em1 网卡信息 慎重操作,会断网
  3. 逐个清除网口配置后,再重启网络,此时一般就能按照配置文件加载网络信息了

三、其他信息

这里简单记录一些有点关系,但不多的东西

光纤卡与网卡的区分

平时服务器上有连接存储的需要或者对网速要求比较高的情况,比如用SAN存储的得用HBA卡,而用NAS存储的得用万兆网卡。然而,放眼望去,都是光口啊,这哪分得清?

光纤网卡多是1G和10G,HBA卡多是4G和8G的16G,这个够明显了吧。一般在网卡上会有写速率

关于交换机上看端口状态

交换机上面能看到链路是否正常,通信是否正常

链路 UP:(无法在交换机上面单独看到交换机端口或者网卡是否UP,)

  • 交换机到服务器物理链路正常,即需要交换机口已开启,服务器网口已开启,网线正常的状态

通信 UP:

  • 网卡已配置IP,可以通过协议进行通信的情况

注意:检查链路是否正常,需要开启网卡后再找交换机查看链路情况,ethtool devicename 可以查看网口的链路状态,如果是物理网口,会有详细信息(链路、速率、网口类型)。


后续,整理整理目前工作中有遇到过的网络问题排查,另外写一篇,可能会很长,写了就把链接加到后面。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/119399
推荐阅读
相关标签
  

闽ICP备14008679号