戏说|运维经理(如果连CentOS网络配置都不会,就收包袱走人吧)

运维经理:如果连CentOS网络配置都不会,就收包袱走人吧

此文章(十七、网络配置)收录在RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
RHCA专栏:RHCA 回忆录
运维小哥某金在广州找到一份12K的工作,怀着对未来的憧憬而入职。谁知入职没几天,让运维经理发现他连系统网络都不会配置,结果,收到了人生第一张飞机票。
试用期有风险,基础虽扎实。
若担忧,可关注金鱼哥的博客,后续各种技术好文助你逆袭,从小哥变成大哥。

文章目录
    • 运维经理:如果连CentOS网络配置都不会,就收包袱走人吧
      • 17.1 基本网络配置
      • 17.2 RHEL6 之前版本网卡名称
      • 17.3 网络配置命令
        • 17.3.1 ip命令
          • 17.3.1.1 配置Linux网络属性
        • 17.3.2 网络配置文件
          • 17.3.2.1 网络基本配置文件
          • 17.3.2.2 本地主机名数据库和IP地址的映射
        • 17.3.3 RHEL 7 以上版网络配置
          • 此章节内容还可参考金鱼哥另外2篇博文,可结合一起学习:
          • 17.3.3.1 网卡命名机制
          • 17.3.3.2 网络配置工具 nmcli
          • 17.3.3.3 网络组 Network Teaming
    • 总结

17.1 基本网络配置
将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
  • 主机名
  • IP/netmask
  • 路由:默认网关
  • DNS服务器
    主DNS服务器
    次DNS服务器
    第三个DNS服务器
17.2 RHEL6 之前版本网卡名称
接口命名方式:RHEL 6
以太网:eth[0,1,2,…]
ppp:ppp[0,1,2,…]
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg |grep –i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
17.3 网络配置命令
17.3.1 ip命令 来自于iproute包
17.3.1.1 配置Linux网络属性
ip [ OPTIONS ] OBJECT { COMMAND | help }

【戏说|运维经理(如果连CentOS网络配置都不会,就收包袱走人吧)】ip命令说明:
OBJECT := { link | addr | route } ip link - network device configuration set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口

ip地址管理
ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}] [broadcast ADDRESS][label LABEL]:添加地址时指明网卡别名 [scope {global|link|host}]:指明作用域,global: 全局可用.link: 仅链接可用,host: 本机可 用[broadcast ADDRESS]:指明广播地址 ip address show ip addr flush

范例:
#禁用网卡 ip link set eth1 down #网卡改名 ip link set eth1 name haonet #启用网卡 ip link set haonet up #网卡别名 ip addr add 172.16.100.100/16 dev eth0 label eth0:0 ip addr del 172.16.100.100/16 dev eth0 label eth0:0 #清除网络地址 ip addr flush dev eth0

17.3.2 网络配置文件 17.3.2.1 网络基本配置文件 IP、MASK、GW、DNS相关的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE

说明参考:
/usr/share/doc/initscripts/sysconfig.txt

常用配置
设置 说明
TYPE 接口类型;常见有的Ethernet, Bridge
NAME 此配置文件应用到的设备
DEVICE 设备名
HWADDR 对应的设备的MAC地址
UUID 设备的惟一标识
BOOTPROTO: 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
IPADDR 指明IP地址
NETMASK 子网掩码,如:255.255.255.0
PREFIX 网络ID的位数, 如:24
GATEWAY 默认网关
DNS1 第一个DNS服务器地址
DNS2 第二个DNS服务器地址
DOMAIN 主机不完整时,自动搜索的域名后缀
ONBOOT 在系统引导时是否激活此设备
USERCTL 普通用户是否可控制此设备
PEERDNS 如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
NM_CONTROLLED NM是NetworkManager的简写,此网卡是否接受NM控制
17.3.2.2 本地主机名数据库和IP地址的映射 优先于使用DNS前检查
getent hosts 查看/etc/hosts 内容
/etc/hosts

17.3.3 RHEL 7 以上版网络配置 RHEL 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化,RHEL 7以上版使用基于硬件,设备拓扑和设置类型命名。
RHEL 8 中已弃用network.service,采用NetworkManager(NM)为网卡启用命令。RHEL 8 仍可以安装network.service作为网卡服务,只是默认没有安装,具体方法为: dnf install networkscripts,不过官方已明确在下一个大版本中,将彻底放弃network.service,不建议继续使用network.service管理网络。
此章节内容还可参考金鱼哥另外2篇博文,可结合一起学习: RH358服务管理和自动化–配置网络接口
RH358配置链路聚合–配置网络组Team
RH358配置链路聚合–管理网络组
17.3.3.1 网卡命名机制 systemd对网络设备的命名方式
  1. 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命
    名,如:eno1
  2. 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命
    名,如:ens1
  3. 如果硬件接口的物理位置信息可用,则根据此信息命名,如:enp2s0
  4. 如果用户显式启动,也可根据MAC地址进行命名,如:enx2387a1dc56
  5. 上述均不可用时,则使用传统命名机制
修改网卡命名规则:
vim /etc/sysconfig/grub GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet net.ifnames=0 biosdevname=0"#增加net.ifnames=0 biosdevname=0grub2-mkconfig -o /boot/grub2/grub.confrootvim /etc/sysconfig/network-scripts/ifcfg-xxx NAME=eth0 DEVICE=eth0

基于BIOS支持启用biosdevname软件
内置网卡:em1,em2 pci卡:pYpX Y:slot ,X:port

网卡组成格式
en: Ethernet 有线局域网 wl: wlan 无线局域网 ww: wwan无线广域网 o: 集成设备的设备索引号 s: 扩展槽的索引号 x: 基于MAC地址的命名 ps: enp2s1

17.3.3.2 网络配置工具 nmcli 命令行工具:nmcli
依赖于NetworkManager服务,此服务是管理和监控网络设置的守护进程
nmcli命令
nmcli命令相关术语
  • 设备即网络接口
  • 连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效
格式:
nmcli [ OPTIONS ] OBJECT { COMMAND | help } device - show and manage network interfaces nmcli device help connection - start, stop, and manage network connections nmcli connection help

修改IP地址等属性:
nmcli connection modify IFACE [+|-]setting.property value setting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual | auto

修改配置文件执行生效:
nmcli con reload nmcli con up con-name

nmcli con mod ifcfg**-*** 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses 192.168.2.1/24 IPADDR=192.168.2.1 PREFIX=24
ipv4.gateway 172.16.0.200 GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .
范例:
#查看帮助 nmcli con add help#使用nmcli配置网络 nmcli con show#显示所有活动连接 nmcli con show --active#显示网络连接配置 nmcli con show "System eth0“#显示设备状态 nmcli dev status#显示网络接口属性 nmcli dev show eth0#创建新连接default,IP自动通过dhcp获取 nmcli con add con-name default type Ethernet ifname eth0

17.3.3.3 网络组 Network Teaming 网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现
网络组特点
  • 启动网络组接口不会自动启动网络组中的port接口
  • 启动网络组接口中的port接口总会自动启动网络组接口
  • 禁用网络组接口会自动禁用网络组中的port接口
  • 没有port接口的网络组接口可以启动静态IP连接
  • 启用DHCP连接时,没有port接口的网络组会等待port接口的加入
例子文件:
/usr/share/doc/teamd/example_configs/...

#创建网络组接口 nmcli con add type team con-name CNAME ifname INAME [config JSON] CNAME 连接名 INAME 接口名 JSON 指定runner方式,格式:'{"runner": {"name": "METHOD"}}' METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp#创建port接口 nmcli con add type team-slave con-name CNAME ifname INAME master TEAM CNAME 连接名,连接名若不指定,默认为team-slave-IFACE INAME 网络接口名 TEAM 网络组接口名#断开和启动 nmcli dev dis INAME nmcli con up CNAME INAME 设备名 CNAME 网络组接口名或port接口

网络组示例
nmcli con add type team con-name myteam0 ifname team0 config '{"runner":{"name": "loadbalance"}}' nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0 nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0 nmcli con up myteam0 nmcli con up team0-eth1 nmcli con up team0-eth2 teamdctl team0 state

总结 玩到最后了,心足了吧。好好学,好好找工作,10K+只是起步,找不到10K+都别说是金鱼哥带出来的学生。
戏说|运维经理(如果连CentOS网络配置都不会,就收包袱走人吧)
文章图片

以上就是【金鱼哥】对linux系统网络配置的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注?????? 【金鱼哥】??????,我将会给你带来巨大的【收获与惊喜】!
戏说|运维经理(如果连CentOS网络配置都不会,就收包袱走人吧)
文章图片

    推荐阅读