Redhat与ubuntu网络管理异同

作为最常见的两个Linux发行版,redhat与ubuntu在网络管理上都有各自的特点。本笔记重点以Redhat8和ubuntu20.10桌面版来进行对比说明。

一、网络管理方式

redhat8默认通过NetworkManager工具来管理
ubuntu20.10网络管理方式为netplan+networkNetworkManager两种

二、网络配置路径/文件

1.redhat8网络管理工具NetworkManager默认的网络配置路径为/etc/sysconfig/network-scripts/,该目录下每一个配置文件都对应一个网络连接

2.ubuntu20.10网络配置文件分为netplan网络配置文件和NetworkManager网络配置文件

netplan+network网络管理方式的网络配置文件为/etc/netplan/*.yaml

而NetworkManager网络配置文件路径为:/etc/NetworkManager/system-connections ,该目录下每个配置文件都对应一个网络连接。

ps:在ubuntu17.10版本之前网络配置路径为/etc/network/interfaces,而之后的版本因为加入netplan而放弃这个路径了。

三、网络配置文件解析

一)redhat8

早期的redhat发行版是通过network来管理网络的,再后来通过network和NetworkManager共同管理网络,如RHEL7会默认安装network和NetworkManager,但到RHEL8则已经默认不安装network,也就是默认只通过NetworkManager来管理网络。

不过,RHEL8为了兼容传统的网络配置思路,并不改变网络配置文件的路径,它通过NetworkManager进行网络配置时,会自动将connection同步到/etc/sysconfig/network-scripts/目录的网络连接配置文件中,而且,如果手动新建或修改网络连接配置文件后,还可以通过 nmcli connection load /etc/sysconfig/network-scripts/ifcfg-* 或者 nmcli connection reload ifcfg-* 的方式将其读取到connection中。

1.创建网络连接的3种方法:

1)手工配置网络连接文件ifcfg-*

[root@hollowman ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE="Ethernet"   #连接类型为有线网络
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"   #none表示手动配置IP地址,dhcp表示自动获取IP地址
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens160"   #网络连接名,建议与配置文件名相同
UUID="2bab02fd-a7b8-4958-a737-1e527a5ad0c1"  #网络设备标识,唯一
DEVICE="ens160"   #网络设备也就是网卡名称
ONBOOT="yes"  #系统启动时是否自动激活此设备
IPADDR="192.168.100.100"  #ip4地址
PREFIX="24"   # 子网掩码,24表示255.255.255.0
GATEWAY="192.168.100.2"  #网关
DNS1="192.168.100.2"   #DNS
IPV6_PRIVACY="no"

2)通过nmcli命令创建:

nmcli connection add con-name ens160-2 type ethernet ifname ens160 ipv4.method manual ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.1 ipv4.dns 192.168.100.1

这里的有关选项的含义是:

con-name:连接名;
ifname:网络接口名;
type:表示连接类型为ethernet;
ipv4.method:BOOTPROTO类别,默认auto表示自动获取ip地址manual表示手动获取ip地址;
ipv4.gateway:网关;
ipv4.dns:域名;
ipv4.addresses:指定网卡ipv4的地址/掩码;
ipv4.gateway:指定网卡的ipv4网关。

3)通过图形化界面配置,如nmtuinm-connection-editor

[root@hollowman ~]# nmtui
[root@hollowman ~]# nm-connection-editor 
2.将配置文件写入到NetworkManager的connection中。

手工新建的配置文件,激活前需要先将其读取到NetworkManager的connection中。如新建1个ifcfg-ens160-1之后,需作如下操作:

[root@hollowman ~]#  nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ens160-1

如不执行此操作,nmcli connection show命令将看不到ifcfg-ens160-1连接,也就无从激活关闭这个连接了。

对已有的配置文件修改,激活前需将其重新读取到connection中,否则配置文件不能生效:

[root@hollowman ~]#  nmcli connection reload ifcfg-ens160-1
3.激活(关闭)网络连接的几种方法
ifup/ifdown 网络连接名
nmcli connection up/down 网络连接名
nmcli device connect/disconnect  网络设备名 

激活连接使连接生效,关闭连接使连接失效

二)ubuntu20.10网络配置

1.netplan网络配置文件解析
root@hollowman-F117:~# vim /etc/netplan/01-network-manager-all.yaml 

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

这是优麒麟/ubuntu20.10系统netplan网络配置文件的初始信息。它默认将网络配置完全交由NetworkManager来管理了,而NetworkManager则可以在开机启动时自动检测网络设备,并自动以DHCP方式来配置该设备。

2.修改netplan配置文件(未测试,理论学习来着)

要想自己配置网络连接,我们可以将管理后端交给network(不交给network继续使用NetworkManager也可以,不过ubuntu中,NetworkManager的能量就是自动配置,而network还需依靠手动配置)。配置文件修改类似如下:

root@hollowman-F117:~# vim /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: networkd
  ethernets:
#以太网配置信息
 wifis:
   #无线网络配置信息

具体配置教程可参考官方文档:https://netplan.io/examples/
也可参考这篇官方文档翻译文档:http://oldtang.com/2314.html

如果systemd-networkd没有开启,还要开启服务才可:

systemctl restart systemd-networkd

修改完配置文件,以下为生效配置的有关语句。

netplan try #测试配置文件是否有语法错误
netplan generate #将配置信息写入到管理工具中生成对应的配置信息
netplan apply #使配置生效

四、NetworkManager介绍

NetworkManager是2004年Red Hat启动的项目,旨在让Linux用户能更便捷地处理现代网络需求。它可以自动检测发现有线、无线网卡等网络设备,并能自动配置ip地址,从而自动连接网络。

1.NetworkManager可以管理的网络

物理网卡、虚拟网卡
有线网卡、无线网卡
动态ip、静态ip
以太网、非以太网

2.NetworkManager常见的配置工具

nmcli:命令行配置工具,最常用
nmtui:启文本图形界面。
nm-connection-editor:图形配置工具

3.几个容易混淆的概念

1)网络设备(device)、网络连接(connection)

网络设备(device) ,指的是网卡、路由器等用于网络连接的硬件设备

网络连接(connection),指的是对网络设备进行参数配置后形成的配置文件,配置文件名就是网络连接名。每一个网络连接都对应一个网络设备,而每一个网络设备可以对应多个网络连接。

网络配置文件的命名一般遵循一定规则。如RHEL发行版的网络配置文件一般以 ifcfg-* 来命名,ifcif- 是前缀,当网络设备与网络连接一一对应时,* 一般就用设备名替代,如ens160,网络连接名也用ens160;当网络设备对应多个网络连接时,此时的*一般用网络连接名来替代,如ens160-1,ens160-2,网络连接名也可同此理。当然你也可以自定义符合你个性的命名规范。

2)网络连接的两种状态

任意一台网络设备的网络连接都有两种状态:

活跃(带颜色字体):表示当前该网络连接是正在使用的。
非活跃(正常颜色字体):表示当前该网络连接没有连接。

当任意一台网络设备有多个网络连接时,只能允许其中1个网络连接为活跃状态,例如你的ens160网络设备有两个不同的网络连接netlink1和netlink2,这两个网络连接配置信息一般是不相同的(或许具有不同的ip,或许具有不同的dns等,否则也不必要设置2个网络连接),这两个连接状态只允许其中1个为活跃状态。

这很有用,如果你使用笔记本电脑在单位和家庭之间来回跑,两个地点的网络连接肯定是不相同的,这样你可以创建两个网络连接,并通过激活其中一个正确的网络连接来连上网络,从而省去了重新配置网络的麻烦

可以通过nmcli connecttion show 来查看网络连接状态

root@hollowman-F117:~# nmcli connection show 

可以通过 nmcli connetion down/up <网络连接名> 来切换网络连接。

root@hollowman-F117:~# nmcli connection up netlink1
3)网络设备在NetworkManager中的4种状态:
connected:已被NetworkManager托管,并且当前有活跃的connection 
disconnected:已被NetworkManager托管,但是当前没有活跃的connection 
unmanaged:未被NetworkManager托管,就是不让NM动这个设备相关的任何操作
unavailable:不可用,NetworkManager无法托管,通常出现于网卡link为down的时候(比如ip link set ethX down)

可以通过nmcli device来查看网络设备的状态

root@hollowman-F117:~# nmcli device 
DEVICE          TYPE      STATE   CONNECTION 
wlp3s0          wifi      已连接  HYxm       
p2p-dev-wlp3s0  wifi-p2p  已断开  --         
enp2s0          ethernet  不可用  --         
lo              loopback  未托管  --    

4.nmcli的有关命令

建议先看看:https://blog.csdn.net/ymz641/article/details/111465599

1)关于NetworkManager的命令:
nmcli   #查看网络设备及对应的网络连接详细信息
nmcli networking     # 查看NetworkManager托管状态,networking可以简写为n
nmcli networking off   # 关闭NetworkManager托管
nmcli networking on   # 开启NetworkManager托管
nm-online  #查看NetworkManager是否在线
2)关于connection的命令(注意:这里的connection都可以简写为c)
nmcli connection show #显示网络连接
nmcli connection add  #添加网络连接
nmcli connection modify  #修改网络连接
nmcli connection up <网络连接名>  #将该网络连接设置为激活状态(类似于ifup)
nmcli connection down <网络连接名>  #将该网络连接设置为非激活状态(类似于ifdown)
nmcli connection reload  # 重载所有网络连接(在手动修改配置文件时使用,不会立即生效)
3)关于device的命令(注意:这里的device都可以简写为d)
nmcli device   # 显示网络设备的列表信息
nmcli device show  #显示网络设备的详细信息
nmcli device show  <网络设备名>  #显示指定的网络设备的详细信息
nmcli device connect <网络连接名>  #激活该网络设备,注意connection激活命令用到的选项是up
nmcli device disconnect <网络连接名>  #关闭该网络设备

猜你喜欢

转载自blog.csdn.net/ymz641/article/details/113923798