管理网络
一.描述网络概念
TCP/IP 网络模型
TCP/IP 网络模型包含4层(应用、传输、Internet、链路),描述不同协议如何进行互操作,以便计算机通过互联网将流量从一台计算机发送到另 一台计算机
应用 Application 层:应用程序,常见应用包括 SSH、HTTPS、 NFS 或 CIFS、SMTP 等
传输 Transport 层:TCP 和 UDP + 端口,/etc/services 文件中可以找到 常用和已注册的端口列表。数据包在网络上通过socket(IP+端口)进行 传输,每个数据包具有一个源 socket 和目标 socket。此信息可以在监控 和过滤时使用
Internet 层: Internet 或 network 层将数据从源到目的传输, IPv4 和 IPv6 是 Internet 层协议,路由器在其间连接网络
链路 Link 层:提供物理连接,常口的网络类型有线以太网(802.3)和无线局域网(802.11)。每一物理设备具有一个硬件地址 (MAC),用于标识局域网络段中数据包的目的地
描述网络接口名称
旧版红帽企业 Linux 将 eth0、eth1 和 eth2 等名称用于各个网络接口
当设备添加和移除,命名的机制可能会导致命名变化。而且 PCIe 标准无法保证在启动时检测 PCIe 设备的顺序
RHEL 7 起开始采用新的命名体系,基于固件信息、PCI 总线拓扑和网络设备类型,而且不会更改
开头为接口类型:以太网接口 en,WLAN 接口 wl,紧接为固件信息或 PCI 设备位置信息:
- oN 为板载设备,例如 eno1为板载以太网设备 1
- sN 为 PCI 热插拔设备,例如 ens3 表示 PCI 热插拔插槽 3 中的以太网卡
- pMsN 为位于插槽 N 中总线 M 上的 PCI 设备,例如 wlp4s0 表示插槽 0 中 PCI 总线 4 上的 WLAN 卡
IPv4 地址
IPv4 地址是32位数字,4段,分为网络位和主机位,同一子网的主机可以 直接通信,否则需要路由器
管理员需要懂得子网划分,让子网拥有足够的 IP 地址,子网掩码用以确认子网划分
特殊地址 127.0.0.1 指向 localhost ,网络 127.0.0.0/8 属于本地系统
不管使用 IPv4 还是 IPv6,网络流量都需要以主机到主机和网络到网络的形式进行传输。每一主机具有一个路由表,该表告诉主机如何路由特定网络的通信
IPv4 地址和路由配置
不管使用 IPv4 还是 IPv6,网络流量都需要以主机到主机和网络到网络的形式进行传输。每一主机具有一个路由表,该表告诉主机如何路由特定网络的通信
服务器可以在引导时从 DHCP 服务器自动配置其 IPv4 网络设置,并在租期到期前一直使用此地址
可以将服务器配置为使用静态网络配置
IPv6 地址
IPv6 地址是一个128 位数字,表示为八组以分号分隔的四个十六进制半字节
为了便于编写 IPv6 地址,不需要写出组中的前导零。但每个冒号分隔组中必须至少写入一个数字
一组或多组连续零可通过 :: 块来合并
如果地址包含两个连续且长度相同的零组,则最好将每个组最左边的零组缩短为 :: ,最右边的组缩短为 :0:
IPv6 子网划分
IPv6 单播地址分为两部分:网络前缀和接口 ID。网络前缀标识子网,同 一子网上的任何两个子网接口都不能具有相同接口 ID,接 口 ID 可标识子 网上的特定接口
IPv6 几乎所有普通地址均使用 /64 子网掩码,几乎可以容纳任意数量v
网络提供商通常提供 /48位前缀,保留16位用于本地子网,64 位用于接口 ID
IPv6 地址配置
IPv6 地址支持 DHCPv6、手动配置、无状态地址自动配置(SLAAC)
RHEL8 中的 dhcp 软件包和 radvd 软件包分别提供 DHCPv6 和 SLAAC 支持
主机名和 IP 地址
Linux 有多种机制可以将主机名映射到 IP 地址,统称为名称解析静态设置: /etc/hosts 中手动更新
DNS 动态获取:由 dhcp 或 /etc/resolve.conf 中配置的 dns 服务器来获取
二.验证网络配置
查看网络接口
ip link 命令列出系统上所有可用网络接口的名称和 MAC 地址
显示 IP 地址
ip address show 命令查看 IP 地址
显示性能统计信息
ip -s link show 命令可以查看网络性能统计信息,包括收到 (RX) 和传出 (TX) 的数据包数、数据包错误数,以及丢弃的数据包数
检查主机之间的连接
ping 和 ping6 命令可用于测试连接,该命令将持续运行,直到按下 Ctrl+c 组合键为止
显示路由表
ip route 命令显示路由信息
追踪路由
可使用 traceroute 或 tracepath 追踪网络流量通过多个路由器到达远程主机而采用的路径
追踪默认使用 udp 协议,-T 选项可转换为 TCP 选项
端口和服务故障排除
使用 ss 或 netstat 显示网络连接信息,ss 用以替换 netstat(不一定安装 net-tools 软件包)
三.使用命令行配置网络
描述 NETWORKMANAGER 概念
RHEL8 中使用 NetworkManager 监控和管理网络,nmcli 命令配置网络, 配置保存在 /etc/sysconfig/network-scripts/ 目录中
root 用户才能修改网络配置
device 指网络接口;connection 是针对 device 的配置集合
针对任一 device,同一时间只有一个 connection 处于活动状态
每个 connection 具有一个名称或 ID
查看联网信息
nmcli dev status 命令可显示所有网络设备的状态
nmcli con show 命令可显示所有连接的列表
添加网络连接
nmcli con add 命令用于添加新的网络连接
控制网络连接
nmcli con up name 命令激活连接
nmcli dev disconnect device 命令断开与网络接口 device 的连接并将其关闭
注:nmcli con down name 命令并非是停用网络接口的最佳方法,因为它会关闭连接。但在默认情况下,大部分有线系统连接是在启用了 autoconnect 的情况下配置的,这将在其网络接口可用后立即激活连接
修改网络连接设置
nmcli con mod name 命令可用于更改连接的设置,并同步更新 /etc/sysconfig/network-scripts/ifcfg-name 文件
如果某个连接之前通过 DHCPv4 服务器获取配置,设置 ipv4.method 从 auto 变为 manual 静态设置
删除网络连接
nmcli con del name 删除连接,同时删除 /etc/sysconfig/networkscripts/ifcfg-name 文件
四.编辑网络配置文件
描述连接配置文件
默认情况下,通过 nmcli con mod name 进行的更改会自动保存到 /etc/sysconfig/network-scripts/ifcfg-name 中,也可以手动编辑此文件, 然后运行 nmcli con reload 以便 NetworkManager 读取并应用配置更改
修改完配置后,使用 nmcli con reload 读取配置更改,同时还需要将接 口重启启动
五.配置主机名和域名解析
更改系统主机名
hostname 命令显示系统主机名,或临时修改
编辑 /etc/hostname 或使用 hostnamectl 命令可以永久修改主机名
配置名称解析
/etc/nsswitch.conf 文件定义域名查找位置和顺序,默认先检查 /etc/hosts 文件内容
其次会查找 /etc/resolv.conf 文件中 dns 服务器,最多可以配置 3 台 dns 服务器
/etc/sysconfig/network-scripts/ifcfg-name 中设置的 dns 会更新到 /etc/resolv.conf
注意:dhcp 会在接口启动时更新 /etc/resolv.conf,除非设置了 PEERDNS=no
测试 DNS 名称解析
使用 host HOSTNAME 命令进行测试