keepalived + LVS NAT模式

本次实验在之前实验拓扑基础上进行改造

keepalived + LVS DR_172.16.1.21:8000-CSDN博客

一、实验拓扑

二、IP地址规划

|-----------------|------|------------------|--------------|--------------------------------------------|
| | 接口 | IP地址 | 网关 | 虚拟IP |
| Client | - | 192.168.10.20/24 | 192.168.10.1 | |
| Virtual Server1 | 外网 | 123.1.1.101/24 | 123.1.1.1 | VIP1: 123.1.1.100/32 VIP2: 172.16.1.100/32 |
| Virtual Server1 | DIP | 172.16.1.101/24 | - | VIP1: 123.1.1.100/32 VIP2: 172.16.1.100/32 |
| Virtual Server2 | 外网 | 123.1.1.102/24 | 123.1.1.1 | VIP1: 123.1.1.100/32 VIP2: 172.16.1.100/32 |
| Virtual Server2 | DIP | 172.16.1.102/24 | - | VIP1: 123.1.1.100/32 VIP2: 172.16.1.100/32 |
| Real Server1 | RIP1 | 172.16.1.201/24 | 172.16.1.100 | |
| Real Server2 | RIP2 | 172.16.1.202/24 | 172.16.1.100 | |
| Real Server3 | RIP3 | 172.16.1.203/24 | 172.16.1.100 | |

三、关键点

virtual server上要配置两个虚拟IP,一个VIP1用户客户端的业务访问,另一个VIP2用于做real server的虚拟网关。

要做两个网卡间的联动,否则单个网卡故障后,此网卡绑定的虚拟IP切换到另一台机器上,但另一个网卡绑定的虚拟地址仍留在原来的机器上,导致通讯故障。

3.1 virtual server1和virtual server2

开启路转发

root@localhost \~# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

root@localhost \~# sysctl -p

3.1.1 keepalived配置文件

virtual server1

root@localhost \~# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_Master

vrrp_skip_check_adv_addr
! vrrp_strict

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {

state MASTER
interface ens160
interface ens192
virtual_router_id 111
priority 150

advert_int 1

authentication {

auth_type PASS

auth_pass 3690

}
virtual_ipaddress {
123.1.1.100 dev ens160
172.16.1.100 dev ens192
}
track_interface {
ens160
ens192
}

}

virtual_server 123.1.1.100 80 {

delay_loop 6

lb_algo rr

lb_kind NAT

persistence_timeout 0

protocol TCP

real_server 172.16.1.201 80 {

weight 1

HTTP_GET {

url {

path /index.html

status_code 200

}

connect_timeout 1

retry 3

delay_before_retry 1

}

}

real_server 172.16.1.202 80 {

weight 1

HTTP_GET {

url {

path /index.html

status_code 200

}

connect_timeout 1

retry 3

delay_before_retry 1

}

}

real_server 172.16.1.203 80 {

weight 1

HTTP_GET {

url {

path /index.html

status_code 200

}

connect_timeout 1

retry 3

delay_before_retry 1

}

}

}

virtual server2

root@localhost \~# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_Backup

vrrp_skip_check_adv_addr
! vrrp_strict

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {
state BACKUP
interface ens160
interface ens192
virtual_router_id 111
priority 100

advert_int 1

authentication {

auth_type PASS
auth_pass 3690

}
virtual_ipaddress {
123.1.1.100 dev ens160
172.16.1.100 dev ens192
}
track_interface {
ens160
ens192

}

}

virtual_server 123.1.1.100 80 {

delay_loop 6

lb_algo rr

lb_kind NAT

persistence_timeout 0

protocol TCP

real_server 172.16.1.201 80 {

weight 1

HTTP_GET {

url {

path /index.html

status_code 200

}

connect_timeout 1

retry 3

delay_before_retry 1

}

}

real_server 172.16.1.202 80 {

weight 1

HTTP_GET {

url {

path /index.html

status_code 200

}

connect_timeout 1

retry 3

delay_before_retry 1

}

}

real_server 172.16.1.203 80 {

weight 1

HTTP_GET {

url {

path /index.html

status_code 200

}

connect_timeout 1

retry 3

delay_before_retry 1

}

}

}

3.2其余配置略

如启动keepalived服务、nginx页面准备等。

四、效果验证

正常情况下访问自动轮询

断开master上的任意关联网卡,两个虚拟IP均转至服务器2上,服务仍正常

恢复master上的网卡,两个虚拟IP均转至服务器1上,服务仍正常

另外,配置了健康检查,real server故障后,超时后会自动踢除故障服务器继续提供服务

相关推荐
睡不醒男孩03082313 分钟前
CLup 6.x 版本中针对StarRocks 存算一体集群的完整操作手册
java·服务器·网络·clup
dog25016 分钟前
网络长尾延时的重尾本质
开发语言·网络·php
Tokai_Teio_122 分钟前
第四届黄河流域 misc
运维·服务器
戴西软件29 分钟前
戴西 DLM 许可授权管理系统:破解无网络环境下工业软件授权难题,助力制造企业降本增效
网络·人工智能·python·深度学习·程序人生·算法·制造
6v6-博客34 分钟前
u盘出现图片、文件,文件夹全部隐藏怎么办
网络
hj2862511 小时前
Linux 网络服务综合笔记(概念 + 命令 + 实操案例)2
linux·运维·网络
what_20181 小时前
Linux 磁盘 (查看、划分、inode)
linux·运维·服务器
A_humble_scholar2 小时前
Linux(七)调度器:从硬件矛盾到进程切换的底层逻辑
linux·服务器·网络
❀抽抽3 小时前
证件照制作API接入指南:700+规格一键生成
大数据·网络·人工智能
Promise微笑3 小时前
绝缘油介损(油介损)测试仪的深层机理、技术演进与精准诊断策略
大数据·网络·人工智能