Linux基础:管理网络(20210719笔记)
管理网络
描述网络概念
网络模型
消息怎样在不同设备之间传输
应用层(用户端):每一应用程序具有用于通信的规范,以便客户端和服务器可以跨平台通信,例如 SSH、HTTPS 等。
传输层:/etc/services 中可以找到常用和已注册的端口列表。
网络层:用于确定网络地址。
链路层:提供与物理介质的连接。每个物理设备都具有一个硬 件地址(MAC),用于标识局域网络端中的数据包的目 的地。
点分十进制
ipv4:32位
CIDR表示法:255.255.255.0/24(表示前24位用于网络部分)
ipv6:128位
IP地址的组成
网络路由与DNS
转换IP地址:源IP、源MAC、目标IP、目标MAC
网关:一个网络通向其它网络地IP地址(统计访问流量/安全性验证)
一台设备可以同时充当多种服务器(人设定该服务器的功能)
(企业服务器可以自己设置IP或自动分配,一般设定一个不变的IP)
验证网络配置
查看网络接口
服务器通过网络接口连接到网络中,因此查看和管理网络接口对于掌握服务器的网络配置非常具有意义,例如主机通过哪个网络接口连接到哪个网络中。
ip link [show <接口>] 列出所有的网络接口(可以查看 MAC 地址),使用 show 选项可以查看特定接口
ip link show enp1s0
网络接口名称
在较旧版本中,网络接口按照操作系统检测的顺序,以 eth0/1/2 这样的方式命名。随着设备增加和删除,接口的网卡名称的对应关系就会混乱,而且启动的时候也不能保证设备名称的顺序。
在红帽企业 Linux7 以后,默认命名行为就是根据固件、设备拓扑和设备类型分配固定的名称。通过这样的方式就容易判断端口和名称之间的对应关系,代价是用户无法定义端 口为 eth0。
命名规则:类型+位置+编号
lo:连接到服务器本身的环回设备
示例:eno1:板载网卡1;ens3:PCI 插槽上的3号插槽的网卡;wlp4s0:插槽0中总线 4上的 WLAN 网卡。
注:如果网卡是多功能的网卡(多端口或多功能),会通过 fX ,来表示: enp3s1f0:代表在1号插槽上总线3以太网网卡的功能/端口0
查看网络情况
ip -s link [show <接口> ] #使用 -s 选项查看网络性能
查看网络计数器统计的相关接口的网络情况,包括RX(接收)、TX (传出)、错误数、丢弃的和数据包数等,根据这些数据可以确定由拥堵、内存不足、超限等导致的网络问题。
查看IP地址
ip addr [show <接口> ] #查看所有/某个网络接口的 IP 地址等配置
ifconfig #查看所有网络接口的 IP 地址等配置
从命令行配置网络
配置网络
在红帽企业 Linux 中监控和管理网络设置的守护进程是NetworkManger。
命令行和图形界面工具与 Networkmanager 通信,并将配置文件保存在 /etc/sysconfig/network-scripts 目录的 ifcfg-XXX 文件中。 (XXX 是连接的名称,虚拟环境和定制环境可能稍有不同。)
连接和设备
设备指的是网络接口;而连接是设备使用的配置。
同一设备可能会有多个连接(不同设备不同配置),但一次只有一个保持活动状态。默认情况下,系统会为设备创 建一个连接。也可以自行创建,创建后会保存在上述配置文件。
【例】某个客户端,一般情况下通过 DHCP 服务获取 IP 地址,因此我们要做 DHCP 相应的配置。在某些时候可能需要对外提供服务,或者接入某个没有 DHCP 服务器的网络时,就需要配置静态IP。
以上两种配置可以以两个连接的形式共存,当用 A连接(DHCP) 时,A连接就是活动的, 用 B 连接(静态 IP) 时,B 连接就是活动的。
方法一
使用 nmcli 命令
nmcli实用程序可以通过命令行创建和编辑 /etc/sysconfig/network-scripts 目录下连接的配置文件
【查看接口和连接】
nmcli dev status #查看所有设备的网络接口状态,包括接口类型、状态及连接
nmcli con show [connection] #查看所有/某个连接的信息
注意:使用 nmcli con show connection 查看某个连接的详细属性时,【小写】的属性是静态配置的内容,【大写】的属性是DHCP 获取的动态配置的内容。
nmcli con show --active 仅查看活动的连接信息
【新建连接】
nmcli con add con-name <连接> type ethernet ifname <接口>
创建网络连接,默认设置为通过 DHCP 获取 IP 地址。设置后不会直接变成活动连接。
nmcli con add con-name static type ethernet ifname enp1s0 ipv4.address 192.168.1.1/24 ipv4.gateway 192.168.1.254
为设备 enp1s0 创建一个名为 static 的连接,并配置 IP 地址为 192.168.1.1/24, 默认网关为 192.168.1.254/24。
定义接口以及接口类型,再设置 IP、前缀、网关等信息
【控制连接】
nmcli con up <连接> #启动某个连接
仅在创建连接时需要指定网络接口,启动连接及其他连接的配置将无需指定网络接口。 nmcli con down <连接> #关闭某个连接
多数情况下,网络接口只要是开启状态,即使关闭了连接,NetworkManager 服务也将重新启用连接。因此一直会直接关闭网络接口。
nmcli dev disconnect <接口> #关闭某个网络接口
可缩写为 nmcli dev dis <接口>
nmcli con mod <连接> <选项> #修改连接的属性
仅在创建连接时需要指定网络接口,启动连接及其他连接的配置将无需指定网络接口。
【例】修改 static 连接的 IP 地址为 192.168.1.100,网关为 192.168.1.1。
nmcli con mod static ipv4.address 192.168.1.100/24 ipv4.gateway 192.168.1.1
【例】修改 test 连接动态获取为静态配置,地址为 192.168.1.200,网关 192.168.1.1。
nmcli con mod test ipv4.method manual ipv4.address 192.168.1.200/24 ipv4.gateway 192.168.1.1
【例】为 static 连接添加一个辅助 IP 地址为 192.168.1.200。
nmcli con mod static +ipv4.address 192.168.1.200/24
【很多设置可能有多个值。通过向设置名称的开头添加+或-符号可以在列表中添加或删除特定值】
【例】修改连接lab,使其也使用地址10.0.1.1/24
方法1:
nmcli con mod "lab"(或者lab) +ipv4.addresses 10.0.1.1/24
方法2:
echo "IPADDR1=10.0.1.1" >> /etc/sysconfig/network-scripts/ifcfg-lab
echo "PREFIX1=24" >> /etc/sysconfig/network-scripts/ifcfg-lab
nmcli con mod <连接> connection.autoconnect yes/no
设置连接为自动启动或者关闭自动启动。设置自动启动时,需关闭原有的自启动连接。
nmcli con del <连接> #删除连接
【网络配置的修改权限】
本地登录:所有用户具有修改网络配置的权限。
普通用户本地登录,说明该系统可能是个工作站或者个人电脑,普通用户需要使用网络, 因此需要配置网络的权限;如果是数据中心的服务器的话,一般只有管理员才可以本地登 录,所以也可以拥有配置权限。
远程登录(ssh):只有root才能够修改网络配置。
nmcli gen permissions #可以查看自己的网络配置权限
方法二
修改网络配置文件 /etc/sysconfig/network-scriprts/ifcfg-<name>
name是指配置文件控制的设备或连接的名称
出于向后兼容性的考虑,该文件中的配置内容,与 nmcli 命令所使用的名称和语法有所不同。(修改完成后,需要重启:nmcli con reload)
用于静态或动态IPv4配置的文件中的标准变量
ping命令
测试网络连通性
ping对方的IP地址,发送测试数据包
配置主机名和名称解析
查看和修改主机名
hostname #查看主机名
hostname <主机名> #临时修改主机名
配置文件:/etc/hostname
hostnamectl #hostnamectl 用于修改配置文件
【例】修改 workstations 的主机名为 test
hostname test #当前生效,重启后不生效
hostnamectl set-hostname test #当前不生效,重启后生效
域名系统
DNS:全称Domain Name System,域名系统,存储着域名和IP地址的映射关系,可以帮助 用户更方便的访问互联网。
域名空间:域名系统是单根树状的层次结构,如下图所示,这个树状结构就称为 DNS 域名空间。
DNS区域:DNS区域是域名空间树状结构的一部分,通过划分DNS区域可以将域名空间分割为 便于管理的小区域。
域名解析过程
-
查看 /etc/hosts 文件
/etc/hosts 文件中可以预设置主机名(域名)与 IP 地址的对应关系。当主机需要执行 名称解析时,首先查看该文件,尝试解析。
-
请求 DNS 服务器
/etc/resolv.conf 中配置了 DNS 服务器的指向。当主机无法通过 hosts 文件解析域名 的时候,将向 DNS 发起域名解析的请求
该文件中 domain 和 search 是短域名的配置。
Domain 设置的值将作为search的默认的值,可以理解为设置主机所在的域。
Search 是当主机解析一个名称的时候,如果无法解析,将从 search 的多个值中依次匹配。
如果同时设置 domain 和 search,那只会匹配最后一项配置。
配置域名解析
配置/etc/hosts文件:直接配置域名和 IP 地址的映射关 系,更改麻烦
配置DNS指向:配置 DNS 服务器的指向,以完成 域名解析
配置 /etc/resolv.conf 文件(仅允许配置三个)或连接的配置文件
① 使用文本编辑器直接修改配置文件
② 使用 nmcli 命令,通过 NetworkManager 服务修改连接的配置文件
nmcli con <connection> ipv4.dns <IP> #配置 DNS 指向
nmcli con <connection> +ipv4.dns <IP> #添加 DNS 指向
教材总结
练习题