ITPub博客

首页 > 数据库 > 数据库开发技术 > openEuler 22.03-LTS 管理网络

openEuler 22.03-LTS 管理网络

原创 数据库开发技术 作者:shuchaoyang 时间:2022-12-24 20:55:26 0 删除 编辑

1 配置 IP1.1 使用nmcli命令1.1.1 nmcli介绍1.1.2 设备管理1.1.2.1 连接到设备1.1.2.2 断开设备连接1.1.3 设置网络连接1.1.3.1 配置动态IP连接1.1.3.1.1 配置IP1.1.3.1.2 激活连接并检查状态1.1.3.2 配置静态IP连接1.1.3.2.1 配置IP1.1.3.2.2 激活连接并检查状态1.1.3.3 添加 Wi-Fi 连接1.1.3.4 更改属性1.1.4 配置静态路由1.2 使用ip命令1.2.1 配置IP地址1.2.1.1 配置静态地址1.2.1.2 配置多个地址1.2.2 配置静态路由1.3 通过ifcfg文件配置网络1.3.1 配置静态网络1.3.2 配置动态网络1.3.3 配置默认网关2 配置主机名2.1 简介2.2 使用hostnamectl配置主机名2.2.1 查看所有主机名2.2.2 设定所有主机名2.2.3 设定特定主机名2.2.4 清除特定主机名2.2.5 远程更改主机名2.3 使用nmcli配置主机名3 配置网络绑定3.1 使用nmcli3.2 使用命令行3.2.1 检查是否已安装Bonding内核模块3.2.2 创建频道绑定接口3.2.3 创建从属接口3.2.4 激活频道绑定3.3.5 创建多个绑定

1 配置 IP

1.1 使用nmcli命令

说明:使用nmcli命令配置的网络配置可以立即生效且系统重启后配置也不会丢失。

1.1.1 nmcli介绍

nmcli是NetworkManager的一个命令行工具,它提供了使用命令行配置由NetworkManager管理网络连接的方法。nmcli命令的基本格式为:

 nmcli [OPTIONS] OBJECT { COMMAND | help }

其中,OBJECT选项可以是general、networking、radio、connection或device等。在日常使用中,最常使用的是-t, --terse(用于脚本)、-p, --pretty选项(用于用户)及-h, --help选项,用户可以使用“ nmcli help”获取更多参数及使用信息。

# nmcli help

常用命令使用举例如下:

  • 显示NetworkManager状态:

    # nmcli general status

    例如示例命令如下:

    [root@superman-21 ~]# nmcli general status
    STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
    已连接 完全 已启用 已启用 已启用 已启用
    [root@superman-21 ~]#
  • 显示所有连接:

    # nmcli connection show

    例如示例命令如下:

    [root@superman-21 ~]# nmcli connection show
    NAME UUID TYPE DEVICE
    ens33 4bc92b9f-a640-4e34-9c2d-06250344adfe ethernet ens33
    virbr0 2b23e76a-1338-4082-8444-1f2787503ad1 bridge virbr0
    [root@superman-21 ~]#
  • 只显示当前活动连接,如下所示添加 -a, --active:

    # nmcli connection show -a
    # nmcli connection show --active

    例如示例命令如下:

    [root@superman-21 ~]# nmcli connection show -a
    NAME UUID TYPE DEVICE
    ens33 4bc92b9f-a640-4e34-9c2d-06250344adfe ethernet ens33
    virbr0 2b23e76a-1338-4082-8444-1f2787503ad1 bridge virbr0
    [root@superman-21 ~]#
    [root@superman-21 ~]# nmcli connection show --active
    NAME UUID TYPE DEVICE
    ens33 4bc92b9f-a640-4e34-9c2d-06250344adfe ethernet ens33
    virbr0 2b23e76a-1338-4082-8444-1f2787503ad1 bridge virbr0
    [root@superman-21 ~]#
  • 显示由NetworkManager识别到设备及其状态:

    # nmcli device status

    例如示例命令如下:

    [root@superman-21 ~]# nmcli device status
    DEVICE TYPE STATE CONNECTION
    ens33 ethernet 已连接 ens33
    virbr0 bridge 连接(外部) virbr0
    lo loopback 未托管 --
    virbr0-nic tun 未托管 --
    [root@superman-21 ~]#
  • 使用nmcli工具启动和停止网络接口,在root权限下执行如下命令:

    # nmcli connection up id ens33
    # nmcli device disconnect ens33

    例如示例命令如下:

    [root@superman-21 ~]# nmcli connection up id ens33 
    Commection successfully activated (D-Bus active path: /org/freedesktopNetwprkfanager/ictiveComection/4)
    [root@superman-21 ~]#
    [root@superman-21 ~]# nmcli device disconnect ens33
    device 'ens33' successfully disconnected.
    [root@superman-21 ~]#

1.1.2 设备管理

1.1.2.1 连接到设备

使用如下命令,NetworkManager将连接到对应网络设备,尝试找到合适的连接配置,并激活配置。

# nmcli device connect "$IFNAME"  

如果不存在相应的配置连接,NetworkManager将创建并激活具有默认设置的新配置文件。

1.1.2.2 断开设备连接

使用如下命令,NetworkManager将断开设备连接,并防止设备自动激活。

# nmcli device disconnect "$IFNAME"  

1.1.3 设置网络连接

列出目前可用的网络连接:

[root@superman-21 ~]# nmcli con show
NAME UUID TYPE DEVICE
ens33 4bc92b9f-a640-4e34-9c2d-06250344adfe ethernet ens33
virbr0 2b23e76a-1338-4082-8444-1f2787503ad1 bridge virbr0
[root@superman-21 ~]#

说明:输出结果中的NAME字段代表连接ID(名称)。

添加一个网络连接会生成相应的配置文件,并与相应的设备关联。检查可用的设备,方法如下:

[root@superman-21 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
virbr0 bridge 连接(外部) virbr0
lo loopback 未托管 --
virbr0-nic tun 未托管 --
[root@superman-21 ~]#
1.1.3.1 配置动态IP连接
1.1.3.1.1 配置IP

要使用 DHCP 分配网络时,可以使用动态IP配置添加网络配置文件,命令格式如下:

# nmcli connection add type ethernet con-name connection-name ifname interface-name

例如创建名为net-test的动态连接配置文件,在root权限下使用以下命令:

[root@superman-21 ~]# nmcli connection add type ethernet con-name ens33 ifname ens33
连接 "ens33" (05729c25-f385-4572-bf29-322cc1cfce36) 已成功添加。
[root@superman-21 ~]#

NetworkManager 会将参数 connection.autoconnect 设定为 yes,并将设置保存到 “/etc/sysconfig/network-scripts/ifcfg-net-test”文件中,在该文件中会将BOOTPROTO设置为dhcp、ONBOOT 设置为 yes。

1.1.3.1.2 激活连接并检查状态

在root权限下使用以下命令激活网络连接:

[root@superman-21 ~]# nmcli con up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@superman-21 ~]#

检查这些设备及连接的状态,使用以下命令:

[root@superman-21 ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
virbr0 bridge 连接(外部) virbr0
lo loopback 未托管 --
virbr0-nic tun 未托管 --
[root@superman-21 ~]#
1.1.3.2 配置静态IP连接
1.1.3.2.1 配置IP

添加静态 IPv4 配置的网络连接,可使用以下命令:

# nmcli connection add type ethernet con-name connection-name ifname interface-name ip4 address gw4 address

说明:如果要添加 IPv6 地址和网关信息,使用 ip6 和 gw6 选项。

例如创建名为 net-static的静态连接配置文件,在root权限下使用以下命令:

[root@superman-21 ~]# nmcli con add type ethernet con-name ens33 ifname ens33 ip4 192.168.0.21/24 gw4 192.168.0.1
连接 "ens33" (05b7a99b-2d5f-4bf5-9a78-3a459e338d85) 已成功添加。
[root@superman-21 ~]#

还可为该设备同时指定 IPv6 地址和网关,示例如下:

[root@superman-21 ~]# nmcli con add type ethernet con-name ens33 ifname ens33 ip4 192.168.0.21/24 gw4 192.168.0.1 ip6 2001:470:18:ac4::2/64 gw6 2001:470:19:ac4::/64
连接 "ens33" (c4516c31-9f66-4611-99c6-60197324693d) 已成功添加。
[root@superman-21 ~]#

NetworkManager 会将其内部参数 ipv4.method 设定为 manual,将 connection.autoconnect 设定为yes,并将设置写入 /etc/sysconfig/network-scripts/ifcfg-my-office 文件,其中会将对应 BOOTPROTO 设定为 none,将 ONBOOT 设定为 yes。

设定两个 IPv4 DNS 服务器地址,在root权限下使用以下命令:

[root@superman-21 ~]# nmcli con mod ens33 ipv4.dns "202.102.224.68 114.114.114.114"
[root@superman-21 ~]#

设置两个 IPv6 DNS 服务器地址,在root权限下使用以下命令:

[root@superman-21 ~]# nmcli con mod ens33 ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
[root@superman-21 ~]#
1.1.3.2.2 激活连接并检查状态

激活新的网络连接,在root权限下使用以下命令:

[root@superman-21 ~]# nmcli con up ens33 ifname ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
[root@superman-21 ~]#

检查这些设备及连接的状态,使用以下命令:

[root@superman-21 ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
virbr0 bridge 连接(外部) virbr0
lo loopback 未托管 --
virbr0-nic tun 未托管 --
[root@superman-21 ~]#

查看配置的连接详情,使用以下命令(使用 -p, --pretty 选项在输出结果中添加标题和分段):

[root@superman-21 ~]# nmcli -p con show ens33
===============================================================================
连接配置集详情 (ens33)
===============================================================================
connection.id: ens33
connection.uuid: 4bc92b9f-a640-4e34-9c2d-06250344adfe
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens33
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0(default)
connection.auth-retries: -1
connection.timestamp: 1671872503
connection.read-only: 否
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1(default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: 未知
connection.lldp: default
connection.mdns: -1(default)
connection.llmnr: -1(default)
connection.wait-device-timeout: -1
-------------------------------------------------------------------------------
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: 否
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
802-3-ethernet.mtu: 自动
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
802-3-ethernet.accept-all-mac-addresses:-1(default)
-------------------------------------------------------------------------------
ipv4.method: manual
ipv4.dns: 202.102.224.68,114.114.114.114
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.0.21/24
ipv4.gateway: 192.168.0.1
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.ignore-auto-routes: 否
ipv4.ignore-auto-dns: 否
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: 是
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0(none)
ipv4.never-default: 否
ipv4.may-fail: 是
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.dhcp-reject-servers: --
-------------------------------------------------------------------------------
ipv6.method: auto
ipv6.dns: 2001:4860:4860::8888,2001:4860:4860::8844
ipv6.dns-search: --
ipv6.dns-options: --
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (unspec)
ipv6.routing-rules: --
ipv6.ignore-auto-routes: 否
ipv6.ignore-auto-dns: 否
ipv6.never-default: 否
ipv6.may-fail: 是
ipv6.required-timeout: -1 (default)
ipv6.ip6-privacy: -1(unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.ra-timeout: 0 (default)
ipv6.dhcp-duid: --
ipv6.dhcp-iaid: --
ipv6.dhcp-timeout: 0 (default)
ipv6.dhcp-send-hostname: 是
ipv6.dhcp-hostname: --
ipv6.dhcp-hostname-flags: 0x0(none)
ipv6.token: --
-------------------------------------------------------------------------------
proxy.method: none
proxy.browser-only: 否
proxy.pac-url: --
proxy.pac-script: --
-------------------------------------------------------------------------------
===============================================================================
激活连接详情 (4bc92b9f-a640-4e34-9c2d-06250344adfe)
===============================================================================
GENERAL.NAME: ens33
GENERAL.UUID: 4bc92b9f-a640-4e34-9c2d-06250344adfe
GENERAL.DEVICES: ens33
GENERAL.IP-IFACE: ens33
GENERAL.STATE: 已激活
GENERAL.DEFAULT: 是
GENERAL.DEFAULT6: 否
GENERAL.SPEC-OBJECT: --
GENERAL.VPN: 否
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/5
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
-------------------------------------------------------------------------------
IP4.ADDRESS[1]: 192.168.0.21/24
IP4.GATEWAY: 192.168.0.1
IP4.ROUTE[1]: dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.0.1, mt = 100
IP4.DNS[1]: 202.102.224.68
IP4.DNS[2]: 114.114.114.114
-------------------------------------------------------------------------------
IP6.ADDRESS[1]: fe80::9393:f6ae:ced9:7759/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.DNS[1]: 2001:4860:4860::8888
IP6.DNS[2]: 2001:4860:4860::8844
-------------------------------------------------------------------------------

===============================================================================
连接配置集详情 (ens33)
===============================================================================
connection.id: ens33
connection.uuid: 8bb45a92-91b7-475b-a265-e5ce906af465
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens33
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0(default)
connection.auth-retries: -1
connection.timestamp: 0
connection.read-only: 否
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1(default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: 未知
connection.lldp: default
connection.mdns: -1(default)
connection.llmnr: -1(default)
connection.wait-device-timeout: -1
-------------------------------------------------------------------------------
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: 否
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
802-3-ethernet.mtu: 自动
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
802-3-ethernet.accept-all-mac-addresses:-1(default)
-------------------------------------------------------------------------------
ipv4.method: auto
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.ignore-auto-routes: 否
ipv4.ignore-auto-dns: 否
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: 是
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0(none)
ipv4.never-default: 否
ipv4.may-fail: 是
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.dhcp-reject-servers: --
-------------------------------------------------------------------------------
ipv6.method: auto
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: --
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (unspec)
ipv6.routing-rules: --
ipv6.ignore-auto-routes: 否
ipv6.ignore-auto-dns: 否
ipv6.never-default: 否
ipv6.may-fail: 是
ipv6.required-timeout: -1 (default)
ipv6.ip6-privacy: -1(unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.ra-timeout: 0 (default)
ipv6.dhcp-duid: --
ipv6.dhcp-iaid: --
ipv6.dhcp-timeout: 0 (default)
ipv6.dhcp-send-hostname: 是
ipv6.dhcp-hostname: --
ipv6.dhcp-hostname-flags: 0x0(none)
ipv6.token: --
-------------------------------------------------------------------------------
proxy.method: none
proxy.browser-only: 否
proxy.pac-url: --
proxy.pac-script: --
-------------------------------------------------------------------------------

===============================================================================
连接配置集详情 (ens33)
===============================================================================
connection.id: ens33
connection.uuid: c4516c31-9f66-4611-99c6-60197324693d
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens33
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0(default)
connection.auth-retries: -1
connection.timestamp: 0
connection.read-only: 否
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1(default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: 未知
connection.lldp: default
connection.mdns: -1(default)
connection.llmnr: -1(default)
connection.wait-device-timeout: -1
-------------------------------------------------------------------------------
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: 否
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
802-3-ethernet.mtu: 自动
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
802-3-ethernet.accept-all-mac-addresses:-1(default)
-------------------------------------------------------------------------------
ipv4.method: manual
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.0.21/24
ipv4.gateway: 192.168.0.1
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.ignore-auto-routes: 否
ipv4.ignore-auto-dns: 否
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: 是
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0(none)
ipv4.never-default: 否
ipv4.may-fail: 是
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.dhcp-reject-servers: --
-------------------------------------------------------------------------------
ipv6.method: manual
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: --
ipv6.dns-priority: 0
ipv6.addresses: 2001:470:18:ac4::2/64
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (unspec)
ipv6.routing-rules: --
ipv6.ignore-auto-routes: 否
ipv6.ignore-auto-dns: 否
ipv6.never-default: 否
ipv6.may-fail: 是
ipv6.required-timeout: -1 (default)
ipv6.ip6-privacy: -1(unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.ra-timeout: 0 (default)
ipv6.dhcp-duid: --
ipv6.dhcp-iaid: --
ipv6.dhcp-timeout: 0 (default)
ipv6.dhcp-send-hostname: 是
ipv6.dhcp-hostname: --
ipv6.dhcp-hostname-flags: 0x0(none)
ipv6.token: --
-------------------------------------------------------------------------------
proxy.method: none
proxy.browser-only: 否
proxy.pac-url: --
proxy.pac-script: --
-------------------------------------------------------------------------------
[root@superman-21 ~]#
1.1.3.3 添加 Wi-Fi 连接

有两种方式添加Wi-Fi 连接。

方法1,通过网络接口连接wifi

连接到由SSID或BSSID指定的wifi网络。命令如下,该命令找到匹配的连接或创建一个连接,然后在设备上激活它。

# nmcli device wifi connect "$SSID" password "$PASSWORD" ifname "$IFNAME"  
# nmcli --ask device wifi connect "$SSID"

方法2,通过配置文件连接Wi-Fi

  1. 使用以下命令查看可用 Wi-Fi 访问点:

# nmcli dev wifi list
  1. 使用以下命令生成使用的静态 IP 配置,但允许自动 DNS 地址分配的 Wi-Fi 连接:

# nmcli con add con-name Wifi ifname wlan0 type wifi ssid MyWifi ip4 192.168.100.101/24 gw4 192.168.100.1
  1. 请使用以下命令设定 WPA2 密码,例如 “answer”:

# nmcli con modify Wifi wifi-sec.key-mgmt wpa-psk
# nmcli con modify Wifi wifi-sec.psk answer
  1. 使用以下命令更改 Wi-Fi 状态:

# nmcli radio wifi [ on | off ]
1.1.3.4 更改属性

请使用以下命令检查具体属性,比如 mtu:

# nmcli connection show id 'Wifi' | grep mtu
802-11-wireless.mtu: auto

使用如下命令更改设置的属性:

# nmcli connection modify id 'Wifi' 802-11-wireless.mtu 1350

使用如下命令确认更改:

# nmcli connection show id 'Wifi' | grep mtu
802-11-wireless.mtu: 1350

1.1.4 配置静态路由

  • 使用nmcli命令为网络连接配置静态路由,使用命令如下:

    [root@superman-21 ~]# nmcli connection modify ens33 +ipv4.routes "192.168.122.0/24 10.10.0.1"  
    [root@superman-21 ~]#
  • 使用编辑器配置静态路由,使用如下命令:

    [root@superman-21 ~]# nmcli con edit type ethernet con-name ens33

    ===| nmcli 交互式连接编辑器 |===

    正在添加新的 "802-3-ethernet" 连接

    输入 "help" 或 "?" 查看可用的命令。
    输入 "print" 来显示所有的连接属性。
    输入 "describe [<设置>.<属性>]" 来获得详细的属性描述。

    您可编辑下列设置:connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, hostname, tc, proxy
    nmcli> set ipv4.routes 192.168.122.0/24 10.10.10.1
    nmcli> save persistent
    使用 "autoconnect=yes" 保存该连接。这样会立即激活该连接。
    您仍要保存吗? (yes/no) [yes] yes
    连接 "ens33" (24868b8f-fe3e-491f-a776-4a3cd85422f6) 已成功保存。
    nmcli> quit
    [root@superman-21 ~]#

1.2 使用ip命令

说明:使用ip命令配置的网络配置可以立即生效但系统重启后配置会丢失。

1.2.1 配置IP地址

使用ip命令为接口配置地址,命令格式如下,其中 interface-name 为网卡名称。

# ip addr [ add | del ] address dev interface-name
1.2.1.1 配置静态地址

在root权限下,配置设置IP地址,使用示例如下:

[root@superman-21 ~]# ip address add 192.168.0.21/24 dev ens33
[root@superman-21 ~]#

查看配置结果,在root权限使用如下命令:

[root@superman-21 ~]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:96:c9:d7 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.0.21/24 brd 192.168.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::9393:f6ae:ced9:7759/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@superman-21 ~]#
1.2.1.2 配置多个地址

ip 命令支持为同一接口分配多个地址,可在root权限下重复多次使用 ip 命令实现分配多个地址。使用示例如下:

[root@superman-21 ~]# ip address add 192.168.2.22/24 dev ens33
[root@superman-21 ~]# ip address add 192.168.4.23/24 dev ens33
[root@superman-21 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:96:c9:d7 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.0.21/24 brd 192.168.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.2.22/24 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.4.23/24 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::9393:f6ae:ced9:7759/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
[root@superman-21 ~]#

1.2.2 配置静态路由

如果需要静态路由,可使用 ip route add 命令在路由表中添加,使用 ip route del 命令删除。最常使用的 ip route 命令格式如下:

# ip route [ add | del | change | append | replace ] destination-address

在root权限下使用 ip route 命令显示当前的 IP 路由表。示例如下:

[root@superman-21 ~]# ip route
default via 192.168.0.1 dev ens33 proto static metric 100
192.168.0.0/24 dev ens33 proto kernel scope link src 192.168.0.21 metric 100
192.168.2.0/24 dev ens33 proto kernel scope link src 192.168.2.22
192.168.4.0/24 dev ens33 proto kernel scope link src 192.168.4.23
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
[root@superman-21 ~]#

在主机地址中添加一个静态路由,在 root 权限下,使用以下命令格式:

# ip route add 192.168.2.1 via 10.0.0.1 [dev interface-name]

其中 192.168.2.1 是用点分隔的十进制符号中的 IP 地址,10.0.0.1 是下一个跃点,interface-name 是进入下一个跃点的退出接口。

要在网络中添加一个静态路由,即代表 IP 地址范围的 IP 地址,请在root权限下运行以下命令格式:

# ip route add 192.168.6.0/24 via 10.0.0.1 [dev interface-name]

其中 192.168.2.1 是目标网络的 IP 地址,10.0.0.1 是网络前缀,interface-name 为网卡名称。

1.3 通过ifcfg文件配置网络

说明:通过ifcfg文件配置的网络配置不会立即生效,需要在root权限下执行systemctl reload NetworkManager命令以重启网络服务后才生效。

1.3.1 配置静态网络

以ens33网络接口进行静态网络设置为例,通过在root权限下修改ifcfg文件实现,在/etc/sysconfig/network-scripts/目录中生成名为ifcfg-ens33的文件中,修改参数配置,示例如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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=ens33
UUID=4bc92b9f-a640-4e34-9c2d-06250344adfe
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.0.21
PREFIX=24
GATEWAY=192.168.0.1
DNS1=202.102.224.68
DNS2=114.114.114.114

1.3.2 配置动态网络

要通过ifcfg文件为em1接口配置动态网络,请按照如下操作在/etc/sysconfig/network-scripts/目录中生成名为 ifcfg-em1 的文件,示例如下:

DEVICE=ens33
BOOTPROTO=dhcp
ONBOOT=yes

要配置一个向DHCP服务器发送不同的主机名的接口,请在ifcfg文件中新增一行内容,如下所示:

DHCP_HOSTNAME=hostname

要配置忽略由DHCP服务器发送的路由,防止网络服务使用从DHCP服务器接收的DNS服务器更新/etc/resolv.conf。请在ifcfg文件中新增一行内容,如下所示:

PEERDNS=no

要配置一个接口使用具体DNS服务器,请将参数PEERDNS=no,并在ifcfg文件中添加以下行:

DNS1=ip-address
DNS2=ip-address

其中ip-address是DNS服务器的地址。这样就会让网络服务使用指定的DNS服务器更新/etc/resolv.conf。

1.3.3 配置默认网关

在确定默认网关时,首先解析 /etc/sysconfig/network 文件,然后解析 ifcfg 文件 ,将最后读取的 GATEWAY 的取值作为路由表中的默认路由。

在动态网络环境中,使用 NetworkManager 管理主机时,建议设置为由 DHCP 来分配。


2 配置主机名

2.1 简介

hostname有三种类型:static、transient和pretty。

  • static:静态主机名,可由用户自行设置,并保存在/etc/hostname 文件中。

  • transient:动态主机名,由内核维护,初始是 static 主机名,默认值为“localhost”。可由DHCP或mDNS在运行时更改。

  • pretty:灵活主机名,允许使用自由形式(包括特殊/空白字符)进行设置。静态/动态主机名遵从域名的通用限制。

说明:static和transient主机名只能包含a-z、A-Z、0-9、“-”、“_”和“.”,不能在开头或结尾处使用句点,不允许使用两个相连的句点,大小限制为 64 个字符。

2.2 使用hostnamectl配置主机名

2.2.1 查看所有主机名

查看当前的主机名,使用如下命令:

$ hostnamectl status

说明:如果命令未指定任何选项,则默认使用status选项。

例如示例命令如下:

[superman@superman-21 ~]$ hostnamectl status
Static hostname: superman-21
Icon name: computer-vm
Chassis: vm
Machine ID: 759fea68a4e24eca941fe49deb33625f
Boot ID: e1c64b8866c44ee1b454be48444874ee
Virtualization: vmware
Operating System: openEuler 22.03 LTS
Kernel: Linux 5.10.0-60.18.0.50.oe2203.x86_64
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
[superman@superman-21 ~]$

2.2.2 设定所有主机名

在root权限下,设定系统中的所有主机名,使用如下命令:

# hostnamectl set-hostname name

例如示例命令如下:

[root@superman-21 ~]# hostnamectl set-hostname superman-22
[root@superman-21 ~]#
[root@superman-21 ~]# hostnamectl status
Static hostname: superman-22
Icon name: computer-vm
Chassis: vm
Machine ID: 759fea68a4e24eca941fe49deb33625f
Boot ID: e1c64b8866c44ee1b454be48444874ee
Virtualization: vmware
Operating System: openEuler 22.03 LTS
Kernel: Linux 5.10.0-60.18.0.50.oe2203.x86_64
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
[root@superman-21 ~]#

2.2.3 设定特定主机名

在root权限下,通过不同的参数来设定特定主机名,使用如下命令:

# hostnamectl set-hostname name [option...]

其中option可以是--pretty、--static、--transient中的一个或多个选项。

如果--static或--transient与--pretty选项一同使用时,则会将static和transient主机名简化为pretty主机名格式,使用“-”替换空格,并删除特殊字符。

当设定pretty主机名时,如果主机名中包含空格或单引号,需要使用引号。命令示例如下:

[root@superman-21 ~]# hostnamectl set-hostname "Superman's compute" --pretty
[root@superman-21 ~]#
[root@superman-21 ~]# hostnamectl status
Static hostname: superman-22
Pretty hostname: Superman's compute
Icon name: computer-vm
Chassis: vm
Machine ID: 759fea68a4e24eca941fe49deb33625f
Boot ID: e1c64b8866c44ee1b454be48444874ee
Virtualization: vmware
Operating System: openEuler 22.03 LTS
Kernel: Linux 5.10.0-60.18.0.50.oe2203.x86_64
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
[root@superman-21 ~]#

2.2.4 清除特定主机名

要清除特定主机名,并将其还原为默认形式,在root权限下,使用如下命令:

# hostnamectl set-hostname  [option...]

其中  是空白字符串,option是--pretty、--static和--transient中的一个或多个选项。

例如示例命令如下:

[root@superman-21 ~]# hostnamectl set-hostname ''
[root@superman-21 ~]#
[root@superman-21 ~]# hostnamectl status
Static hostname: n/a
Transient hostname: localhost
Icon name: computer-vm
Chassis: vm
Machine ID: 759fea68a4e24eca941fe49deb33625f
Boot ID: e1c64b8866c44ee1b454be48444874ee
Virtualization: vmware
Operating System: openEuler 22.03 LTS
Kernel: Linux 5.10.0-60.18.0.50.oe2203.x86_64
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
[root@superman-21 ~]#

2.2.5 远程更改主机名

在远程系统中运行hostnamectl命令时,要使用-H,--host 选项,在root权限下使用如下命令:

# hostnamectl set-hostname -H [username]@hostname new_hostname

其中hostname是要配置的远程主机,username为自选项,new_hostname为新主机名。hostnamectl会通过SSH连接到远程系统。

例如示例命令如下:

[root@superman-21 ~]# hostnamectl set-hostname -H root@192.168.0.22 superman-22
The authenticity of host '192.168.0.22 (192.168.0.22)' can't be established.
ED25519 key fingerprint is SHA256:1g4JR7igfNIp0ZoCsl/Cv6zuO6gkMEBn2CWT7IQQPj4.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.22' (ED25519) to the list of known hosts.

Authorized users only. All activities may be monitored and reported.
root@192.168.0.22's password:
[root@superman-21 ~]#

2.3 使用nmcli配置主机名

查询static主机名,使用如下命令:

$ nmcli general hostname

在root权限下,将static主机名设定为superman-vm01,使用如下命令:

[root@superman-21 ~]# nmcli general hostname superman-vm01
[root@superman-21 ~]#
[root@superman-21 ~]# hostnamectl status
Static hostname: superman-vm01
Icon name: computer-vm
Chassis: vm
Machine ID: 759fea68a4e24eca941fe49deb33625f
Boot ID: e1c64b8866c44ee1b454be48444874ee
Virtualization: vmware
Operating System: openEuler 22.03 LTS
Kernel: Linux 5.10.0-60.18.0.50.oe2203.x86_64
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
[root@superman-21 ~]#

要让系统hostnamectl感知到static主机名的更改,在root权限下,重启hostnamed服务,使用如下命令:

[root@superman-21 ~]# systemctl restart systemd-hostnamed
[root@superman-21 ~]#


3 配置网络绑定

3.1 使用nmcli

  • 创建名为bond0的绑定,使用示例如下:

    [root@superman-21 ~]# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
    连接 "bond0" (180f0202-eb66-4530-a0d0-17a4860abfe6) 已成功添加。
    [root@superman-21 ~]#
  • 添加从属接口,使用示例如下:

    [root@superman-21 ~]# nmcli con add type bond-slave ifname ens33 master bond0
    连接 "bond-slave-ens33" (530e5a4d-9bf5-4151-97a7-5fc34790f610) 已成功添加。
    [root@superman-21 ~]#

    要添加其他从属接口,重复上一个命令,并在命令中使用新的接口,使用示例如下:

    [root@superman-21 ~]# nmcli con add type bond-slave ifname ens36 master bond0
    连接 "bond-slave-ens36" (006f3c08-ffd7-45ab-8f8b-2b79dbb640da) 已成功添加。
    [root@superman-21 ~]#
  • 要启动绑定,则必须首先启动从属接口,使用示例如下:

    [root@superman-21 ~]# nmcli con up bond-slave-ens33
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
    [root@superman-21 ~]#
    [root@superman-21 ~]# nmcli con up bond-slave-ens36
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
    [root@superman-21 ~]#

    现在可以启动绑定,使用示例如下:

    [root@superman-21 ~]# nmcli con up bond0
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
    [root@superman-21 ~]#
  • bond0状态示例如下:

    [root@superman-21 ~]# cat /proc/net/bonding/bond0 
    Ethernet Channel Bonding Driver: v5.10.0-60.18.0.50.oe2203.x86_64

    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: ens36
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    Peer Notification Delay (ms): 0

    Slave Interface: ens36
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:96:c9:e1
    Slave queue ID: 0

    Slave Interface: ens33
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:96:c9:d7
    Slave queue ID: 0
    [root@superman-21 ~]#

3.2 使用命令行

3.2.1 检查是否已安装Bonding内核模块

在系统中默认已加载相应模块。要载入绑定模块,可在root权限下使用如下命令:

[root@compute ~]# modprobe --first-time bonding
[root@compute ~]#

显示该模块的信息,可在root权限下使用如下命令:

[root@superman-21 ~]# modinfo bonding
filename: /lib/modules/5.10.0-60.18.0.50.oe2203.x86_64/kernel/drivers/net/bonding/bonding.ko
author: Thomas Davis, tadavis@lbl.gov and many others
description: Ethernet Channel Bonding Driver
license: GPL
alias: rtnl-link-bond
srcversion: 567375FF5BBB59184962A66
depends:
retpoline: Y
intree: Y
name: bonding
vermagic: 5.10.0-60.18.0.50.oe2203.x86_64 SMP mod_unload modversions
sig_id: PKCS#7
signer: openEuler kernel signing key
sig_key: 62:1D:B6:4C:CD:82:A9:3E:3B:55:8A:80:AE:2F:A5:A0:40:94:0E:F5
sig_hashalgo: sha256
signature: 18:23:5D:42:90:11:E1:9D:E1:69:5E:C4:BB:71:33:2D:74:FF:FD:42:
46:8C:26:6C:02:A5:06:92:58:F4:B1:02:AB:45:01:80:2F:3B:E7:77:
A1:AD:DF:C5:5D:12:0A:8F:D5:03:10:DE:45:FB:E8:8A:1F:87:86:13:
16:5F:1D:51:A5:E3:85:B7:9F:6C:94:A1:35:00:13:CB:D5:3A:FF:AA:
89:E2:03:92:1D:45:00:27:2C:B3:5A:BC:E2:F2:12:12:4E:64:8C:6A:
A8:D9:C2:93:28:CB:F7:E4:05:4C:43:31:5E:9D:53:C6:D7:B0:78:E1:
F2:75:86:C6:18:40:21:1A:E3:0F:14:D3:EF:5B:E6:08:49:C0:32:40:
FF:B4:30:EE:D1:7B:8A:86:F4:C4:EF:65:A9:6B:45:48:75:2A:E5:E9:
1E:E9:AB:88:96:ED:0B:87:0E:F4:78:5A:BD:A9:90:4D:24:C5:DA:12:
C0:34:0F:13:43:BD:1F:46:DF:38:AC:0E:5A:CB:40:AD:48:55:4F:40:
27:F3:8C:D5:6D:3D:66:27:5F:2D:3D:0F:DB:4B:34:08:0E:8E:DF:7D:
1E:46:C7:35:AB:12:9A:33:BC:61:35:64:29:EB:22:12:F9:BD:D8:FA:
F0:E8:33:6D:98:E5:52:4A:64:82:57:02:90:5F:B7:3D:87:67:A7:E5:
9D:8C:F2:36:04:AB:80:CC:D6:72:AE:F9:69:F3:79:D5:50:7C:90:76:
BC:DA:B3:51:21:B6:30:9D:46:B7:C0:D9:6C:B8:BF:CF:39:3F:8A:36:
0B:7F:E5:4C:F2:87:FC:8F:0D:D9:11:2B:B7:1C:EE:44:03:67:C1:81:
81:A5:5A:7C:10:09:C7:37:F2:2D:11:EE:0D:63:4D:AC:55:25:F3:39:
3E:B5:37:51:AF:9B:EA:FB:0B:66:2D:25:5C:8F:1F:6F:F6:18:E5:D5:
C1:44:E7:EE:2E:23:CA:D4:F5:B2:FC:A6:94:2D:8F:BA:0F:F6:AD:0A:
BA:44:AB:DC:28:A1:58:B9:0B:81:CE:59:C5:78:36:8F:DB:2D:07:2A:
82:24:DA:F1:E1:E7:4C:E1:FD:D8:8D:5F:BE:A9:64:1B:B0:38:86:59:
09:AD:D6:EC:FF:74:FF:A1:B6:B9:18:84:BA:F8:CD:E5:E5:BD:F1:A6:
5D:E6:80:2C:64:56:21:52:A0:5A:CC:48:D2:8B:10:08:ED:E2:FF:1F:
FA:9E:26:60:63:B0:92:19:02:5B:51:A7:38:0D:35:BC:02:60:E6:8F:
CD:B9:D6:BF:5F:B4:BA:96:34:DC:24:DA:BC:B8:A4:C8:4A:81:58:4C:
42:89:E7:4C:64:F4:87:D4:A0:C2:0E:59
parm: max_bonds:Max number of bonded devices (int)
parm: tx_queues:Max number of transmit queues (default = 16) (int)
parm: num_grat_arp:Number of peer notifications to send on failover event (alias of num_unsol_na) (int)
parm: num_unsol_na:Number of peer notifications to send on failover event (alias of num_grat_arp) (int)
parm: miimon:Link check interval in milliseconds (int)
parm: updelay:Delay before considering link up, in milliseconds (int)
parm: downdelay:Delay before considering link down, in milliseconds (int)
parm: use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0 for off, 1 for on (default) (int)
parm: mode:Mode of operation; 0 for balance-rr, 1 for active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)
parm: primary:Primary network device to use (charp)
parm: primary_reselect:Reselect primary slave once it comes up; 0 for always (default), 1 for only if speed of primary is better, 2 for only on active slave failure (charp)
parm: lacp_rate:LACPDU tx rate to request from 802.3ad partner; 0 for slow, 1 for fast (charp)
parm: ad_select:802.3ad aggregation selection logic; 0 for stable (default), 1 for bandwidth, 2 for count (charp)
parm: min_links:Minimum number of available links before turning on carrier (int)
parm: xmit_hash_policy:balance-alb, balance-tlb, balance-xor, 802.3ad hashing method; 0 for layer 2 (default), 1 for layer 3+4, 2 for layer 2+3, 3 for encap layer 2+3, 4 for encap layer 3+4 (charp)
parm: arp_interval:arp interval in milliseconds (int)
parm: arp_ip_target:arp targets in n.n.n.n form (array of charp)
parm: arp_validate:validate src/dst of ARP probes; 0 for none (default), 1 for active, 2 for backup, 3 for all (charp)
parm: arp_all_targets:fail on any/all arp targets timeout; 0 for any (default), 1 for all (charp)
parm: fail_over_mac:For active-backup, do not set all slaves to the same MAC; 0 for none (default), 1 for active, 2 for follow (charp)
parm: all_slaves_active:Keep all frames received on an interface by setting active flag for all slaves; 0 for never (default), 1 for always. (int)
parm: resend_igmp:Number of IGMP membership reports to send on link failure (int)
parm: packets_per_slave:Packets to send per slave in balance-rr mode; 0 for a random slave, 1 packet per slave (default), >1 packets per slave. (int)
parm: lp_interval:The number of seconds between instances where the bonding driver sends learning packets to each slaves peer switch. The default is 1. (uint)
[root@superman-21 ~]#

更多命令请在root权限下使用modprobe --help查看。

3.2.2 创建频道绑定接口

要创建绑定接口,可在root权限下通过在 /etc/sysconfig/network-scripts/ 目录中创建名为 ifcfg-bondN 的文件(使用接口号码替换 N,比如 0)。

根据要绑定接口类型的配置文件来编写相应的内容,比如网络接口。接口配置文件示例如下:

[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.0.21
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="=mode=active-backup"
[root@superman-21 ~]#

3.2.3 创建从属接口

创建频道绑定接口后,必须在从属接口的配置文件中添加 MASTER 和 SLAVE 指令。

例如将两个网络接口enp3s0 和 enp4s0 以频道方式绑定,其配置文件示例分别如下:

[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens33 
TYPE=Ethernet
NAME=bond-slave-ens33
UUID=530e5a4d-9bf5-4151-97a7-5fc34790f610
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@superman-21 ~]#
[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens36
TYPE=Ethernet
NAME=bond-slave-ens36
UUID=006f3c08-ffd7-45ab-8f8b-2b79dbb640da
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@superman-21 ~]#

3.2.4 激活频道绑定

要激活绑定,则需要启动所有从属接口。请在root权限下,运行以下命令:

[root@superman-21 ~]# ifup ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@superman-21 ~]#
[root@superman-21 ~]# ifup ens36
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@superman-21 ~]#

说明:对于已经处于“up”状态的接口,请首先使用“ifdown ens33 ”命令修改状态为down,其中 ens36 为实际网卡名称。

完成后,启动所有从属接口以便启动绑定(不将其设定为 “down”)。

要让 NetworkManager 感知到系统所做的修改,在每次修改后,请在root权限下,运行以下命令:

[root@superman-21 ~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-device
[root@superman-21 ~]#

查看绑定接口的状态,请在root权限下运行以下命令:

[root@superman-21 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ff permaddr 00:0c:29:96:c9:d7
altname enp2s1
3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ff
altname enp2s4
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
[root@superman-21 ~]#

3.3.5 创建多个绑定

系统会为每个绑定创建一个频道绑定接口,包括 BONDING_OPTS 指令。使用这个配置方法可让多个绑定设备使用不同的配置。请按照以下操作创建多个频道绑定接口:

  • 创建多个 ifcfg-bondN 文件,文件中包含 BONDING_OPTS 指令,让网络脚本根据需要创建绑定接口。

  • 创建或编辑要绑定的现有接口配置文件,添加 SLAVE 指令。

  • 使用 MASTER 指令工具在频道绑定接口中分配要绑定的接口,即从属接口。

以下是频道绑定接口配置文件示例:

DEVICE=bondN
NAME=bondN
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.0.21
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"

在这个示例中,使用绑定接口的号码替换 N。例如要创建两个接口,则需要使用正确的 IP 地址创建两个配置文件 ifcfg-bond0 和 ifcfg-bond1。


有什么吐槽或反馈意见,直接告诉我!

温馨提示:如出现二维码失效也可直接添加微信号:ysc13803862469。

原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303470