目标:负载均衡服务器在前端处理转发着所有的请求,宕机损害难以承受,现再做台备机实现高可用。
环境准备
本次实验使用KeepAlived
软件实现高可用主备转换,先在已有的负载服务器上准备好环境,再进行克隆:
[root@lb01 ~]# dnf install keepalived
Repository AppStream is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository PowerTools is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Last metadata expiration check: 0:19:02 ago on Thu 10 Sep 2020 09:03:36 AM CST.
Dependencies resolved.
=============================================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================================
Installing:
keepalived x86_64 2.0.10-10.el8 AppStream 466 k
Installing dependencies:
lm_sensors-libs x86_64 3.4.0-21.20180522git70f7e08.el8 base 59 k
mariadb-connector-c x86_64 3.0.7-1.el8 AppStream 148 k
mariadb-connector-c-config noarch 3.0.7-1.el8 AppStream 13 k
net-snmp-agent-libs x86_64 1:5.8-14.el8_2.1 AppStream 747 k
net-snmp-libs x86_64 1:5.8-14.el8_2.1 base 821 k
perl-Carp noarch 1.42-396.el8 base 30 k
perl-Exporter noarch 5.72-396.el8 base 34 k
perl-libs x86_64 4:5.26.3-416.el8 base 1.6 M
Transaction Summary
=============================================================================================================================================================================
Install 9 Packages
Total download size: 3.8 M
Installed size: 13 M
Is this ok [y/N]:
编写配置文件:
[root@lb01 ~]# cd /etc/keepalived/
[root@lb01 keepalived]# ls
keepalived.conf
[root@lb01 keepalived]# cp keepalived.conf{,.bak}
[root@lb01 keepalived]# vi keepalived.conf
[root@lb01 keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24
}
}
[root@lb01 keepalived]#
克隆主机
负载服务器02初始化工作:
[root@lb01 ~]# vi skel_refine.sh
[root@lb01 ~]# cat skel_refine.sh
#!/bin/bash
hostname=lb02
ens160Ipv4="10.0.0.6/24"
ens192Ipv4="192.168.1.6/24"
hostnamectl set-hostname $hostname
nmcli c modify ens160 ipv4.addresses $ens160Ipv4
nmcli c modify ens192 ipv4.addresses $ens192Ipv4
# Generate new UUIDs for interfaces
sed -i "s/^UUID.*/UUID=`uuidgen ens160`/g" /etc/sysconfig/network-scripts/ifcfg-ens160
sed -i "s/^UUID.*/UUID=`uuidgen ens192`/g" /etc/sysconfig/network-scripts/ifcfg-ens192
nmcli c reload
nmcli c up ens160
nmcli c up ens192
[root@lb01 ~]# ./skel_refine.sh
修改KeepAlived配置文件:
[root@lb02 ~]# vi /etc/keepalived/keepalived.conf
[root@lb02 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lb02
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 51
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24
}
}
[root@lb02 ~]#
服务测试
配置防火墙:
[root@lb01 ~]# firewall-cmd --zone=public --permanent \
> --add-rich-rule='rule protocol value="vrrp" accept'
success
[root@lb01 ~]# firewall-cmd --reload
success
[root@lb01 ~]#
[root@lb02 ~]# firewall-cmd --zone=public --permanent \
> --add-rich-rule='rule protocol value="vrrp" accept'
success
[root@lb02 ~]# firewall-cmd --reload
success
[root@lb02 ~]#
启动两台主机的服务:
[root@lb01 ~]# systemctl start keepalived.service
[root@lb01 ~]# systemctl enable keepalived.service
Created symlink /etc/systemd/system/multi-user.target.wants/keepalived.service → /usr/lib/systemd/system/keepalived.service.
[root@lb01 ~]# ip a
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:d4 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 10.0.0.3/24 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 fe80::ec8c:7764:202b:76cf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:de brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::8d69:c332:6cc6:118f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@lb01 ~]#
可以看到标识为MASTER的负载服务器作为主服务器已产生高可用IP地址10.0.0.3而备服务器没有:
[root@lb02 ~]# systemctl start keepalived.service
[root@lb02 ~]# systemctl enable keepalived.service
Created symlink /etc/systemd/system/multi-user.target.wants/keepalived.service → /usr/lib/systemd/system/keepalived.service.
[root@lb02 ~]# ip a
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:8a:a6:08 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.6/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::92fe:bd3f:f1ba:bb3b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:8a:a6:12 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.6/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::e69:d622:4deb:e5eb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@lb02 ~]#
将网站的解析地址由原来的绑定主机IP修改为现在的10.0.0.3飘逸IP做测试:
C:\Windows\System32\drivers\etc\hosts
10.0.0.3 cloudbarn.com www.cloudbarn.com
10.0.0.3 poplarleaf.com www.poplarleaf.com
10.0.0.3 cloth.poplarleaf.com www.cloth_poplarleaf.com
访问网站成功:
现停掉主负载服务器上的服务:
[root@lb01 ~]# systemctl stop keepalived.service
[root@lb01 ~]# ip a
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:d4 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::ec8c:7764:202b:76cf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:de brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::8d69:c332:6cc6:118f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@lb01 ~]#
主负载服务器的漂移IP地址消失,备负载服务器承担请求转发工作:
[root@lb02 ~]# ip a
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:8a:a6:08 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.6/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 10.0.0.3/24 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 fe80::92fe:bd3f:f1ba:bb3b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:8a:a6:12 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.6/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::e69:d622:4deb:e5eb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@lb02 ~]#
再次测试,页面仍旧访问成功:
脚本检测
上述实验我们手动停掉KeepAlived服务,造成主负载服务器不可用的假象。而我们真正的需求是:当Nginx请求转发服务不可用时,主负载服务器主动禅让其职位。
编写检测脚本:
[root@lb01 ~]# vi chk_web_srv.sh
[root@lb01 ~]# cat chk_web_srv.sh
#!/bin/bash
num=`ps -ef | grep -c nginx`
if [ $num -gt 2 ]
then
exit 0
else
exit 1
fi
[root@lb01 ~]# chmod a+x chk_web_srv.sh
[root@lb01 ~]# ll chk_web_srv.sh
-rwxr-xr-x. 1 root root 91 Sep 10 10:06 chk_web_srv.sh
[root@lb01 ~]# mkdir /server/scripts/ -p
[root@lb01 ~]# mv chk_web_srv.sh /server/scripts/
[root@lb01 ~]#
修改配置文件:
[root@lb01 ~]# cd /etc/keepalived/
[root@lb01 keepalived]# vi keepalived.conf
[root@lb01 keepalived]# cat keepalived.conf
! Configuration File for keepalived
vrrp_script chk_web_srv {
script "/server/scripts/chk_web_srv.sh"
interval 10
weight -50
}
global_defs {
router_id lb01
}
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24
}
track_script {
chk_web_srv
}
}
[root@lb01 keepalived]# systemctl restart keepalived.service
[root@lb01 keepalived]#
KeepAlived服务追踪脚本的原理为:
- 如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加;
- 如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少;
- 其它情况优先级不发生变化。
重启发现并不生效,主负载服务器仍未禅让:
[root@lb01 ~]# systemctl restart keepalived.service
[root@lb01 ~]# systemctl stop nginx
[root@lb01 ~]# ip a
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:d4 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 10.0.0.3/24 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 fe80::ec8c:7764:202b:76cf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:de brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::8d69:c332:6cc6:118f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@lb01 ~]#
检查日志:
[root@lb01 scripts]# journalctl -xe
Sep 10 11:29:39 lb01 platform-python[5075]: SELinux is preventing keepalived from execute access on the file chk_web_srv.sh.
***** Plugin catchall_labels (83.8 confidence) suggests *******************
If you want to allow keepalived to have execute access on the chk_web_srv.sh file
Then you need to change the label on chk_web_srv.sh
Do
# semanage fcontext -a -t FILE_TYPE 'chk_web_srv.sh'
where FILE_TYPE is one of the following: abrt_helper_exec_t, bin_t, boot_t, etc_runtime_t, etc_t, iptables_exec_t, keepalived_exec_t, keepalived_unc
Then execute:
restorecon -v 'chk_web_srv.sh'
在/server/scripts
目录下默认创建的文件类型为unconfined_u:object_r:default_t:s0
:
[root@lb01 ~]# ll -Z /server/scripts/chk_web_srv.sh
-rwxr-xr-x. 1 root root unconfined_u:object_r:default_t:s0 91 Sep 10 12:11 /server/scripts/chk_web_srv.sh
[root@lb01 ~]#
而SELinux允许KeepAlived访问的文件类型为system_u:object_r:etc_t:s0
:
[root@lb01 ~]# ll -Z /etc/keepalived/
total 8
-rw-r--r--. 1 root root system_u:object_r:etc_t:s0 457 Sep 10 12:11 keepalived.conf
-rw-r--r--. 1 root root unconfined_u:object_r:etc_t:s0 3550 Sep 10 09:24 keepalived.conf.bak
[root@lb01 ~]#
更改脚本文件的文件类型:
[root@lb01 ~]# chcon --reference /etc/keepalived/keepalived.conf /server/scripts/chk_web_srv.sh
[root@lb01 ~]# ll -Z /server/scripts/chk_web_srv.sh
-rwxr-xr-x. 1 root root system_u:object_r:etc_t:s0 91 Sep 10 12:11 /server/scripts/chk_web_srv.sh
[root@lb01 ~]# systemctl restart keepalived.service
[root@lb01 ~]#
检查日志文件(VRRP_Script(chk_web_srv) succeeded
):
[root@lb01 ~]# journalctl -xe
Sep 10 12:19:57 lb01 Keepalived[16583]: Starting Keepalived v2.0.10 (11/12,2018)
Sep 10 12:19:57 lb01 Keepalived[16583]: Running on Linux 4.18.0-193.14.2.el8_2.x86_64 #1 SMP Sun Jul 26 03:54:29 UTC 2020 (built for Linux 4.18.0)
Sep 10 12:19:57 lb01 Keepalived[16583]: Command line: '/usr/sbin/keepalived' '-D'
Sep 10 12:19:57 lb01 Keepalived[16583]: Opening file '/etc/keepalived/keepalived.conf'.
Sep 10 12:19:57 lb01 systemd[1]: keepalived.service: Can't open PID file /var/run/keepalived.pid (yet?) after start: No such file or directory
Sep 10 12:19:57 lb01 Keepalived[16585]: Starting VRRP child process, pid=16586
Sep 10 12:19:57 lb01 systemd[1]: Started LVS and VRRP High Availability Monitor.
-- Subject: Unit keepalived.service has finished start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit keepalived.service has finished starting up.
--
-- The start-up result is done.
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: Registering Kernel netlink reflector
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: Registering Kernel netlink command channel
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: Opening file '/etc/keepalived/keepalived.conf'.
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: WARNING - default user 'keepalived_script' for script execution does not exist - please create.
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: SECURITY VIOLATION - scripts are being executed but script_security not enabled.
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: Assigned address 10.0.0.5 for interface ens160
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: Assigned address fe80::ec8c:7764:202b:76cf for interface ens160
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: Registering gratuitous ARP shared channel
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: (VI_1) removing VIPs.
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: (VI_1) Entering BACKUP STATE (init)
Sep 10 12:19:57 lb01 Keepalived_vrrp[16586]: VRRP sockpool: [ifindex(2), family(IPv4), proto(112), unicast(0), fd(10,13)]
Sep 10 12:19:58 lb01 Keepalived_vrrp[16586]: VRRP_Script(chk_web_srv) succeeded
这时,当停止Nginx服务时,主负载服务器KeepAlived脚本运行失败降低优先级禅让:
- Sep 10 12:26:18 lb01 Keepalived_vrrp[18075]: VRRP_Script(chk_web_srv) failed (exited with status 1)
- Sep 10 12:26:18 lb01 Keepalived_vrrp[18075]: (VI_1) Changing effective priority from 100 to 50
- Sep 10 12:26:21 lb01 Keepalived_vrrp[18075]: (VI_1) Master received advert from 10.0.0.6 with higher priority 80, ours 50
- Sep 10 12:26:21 lb01 Keepalived_vrrp[18075]: (VI_1) Entering BACKUP STATE
- Sep 10 12:26:21 lb01 Keepalived_vrrp[18075]: (VI_1) removing VIPs.
[root@lb01 ~]# ip a
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:d4 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 10.0.0.3/24 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 fe80::ec8c:7764:202b:76cf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:de brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::8d69:c332:6cc6:118f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@lb01 ~]# systemctl stop nginx
[root@lb01 ~]# systemctl status keepalived.service
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-09-10 12:25:52 CST; 46s ago
Process: 18072 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 18074 (keepalived)
Tasks: 2 (limit: 4852)
Memory: 2.4M
CGroup: /system.slice/keepalived.service
├─18074 /usr/sbin/keepalived -D
└─18075 /usr/sbin/keepalived -D
Sep 10 12:26:00 lb01 Keepalived_vrrp[18075]: Sending gratuitous ARP on ens160 for 10.0.0.3
Sep 10 12:26:00 lb01 Keepalived_vrrp[18075]: Sending gratuitous ARP on ens160 for 10.0.0.3
Sep 10 12:26:00 lb01 Keepalived_vrrp[18075]: Sending gratuitous ARP on ens160 for 10.0.0.3
Sep 10 12:26:00 lb01 Keepalived_vrrp[18075]: Sending gratuitous ARP on ens160 for 10.0.0.3
Sep 10 12:26:18 lb01 Keepalived_vrrp[18075]: Script `chk_web_srv` now returning 1
Sep 10 12:26:18 lb01 Keepalived_vrrp[18075]: VRRP_Script(chk_web_srv) failed (exited with status 1)
Sep 10 12:26:18 lb01 Keepalived_vrrp[18075]: (VI_1) Changing effective priority from 100 to 50
Sep 10 12:26:21 lb01 Keepalived_vrrp[18075]: (VI_1) Master received advert from 10.0.0.6 with higher priority 80, ours 50
Sep 10 12:26:21 lb01 Keepalived_vrrp[18075]: (VI_1) Entering BACKUP STATE
Sep 10 12:26:21 lb01 Keepalived_vrrp[18075]: (VI_1) removing VIPs.
[root@lb01 ~]# ip a
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:d4 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::ec8c:7764:202b:76cf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:2e:d6:de brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::8d69:c332:6cc6:118f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@lb01 ~]#