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页面准备等。 ## 四、效果验证 正常情况下访问自动轮询 ![](https://i-blog.csdnimg.cn/direct/085278ec33214b9ba3556a425918eee7.png) 断开master上的任意关联网卡,两个虚拟IP均转至服务器2上,服务仍正常 恢复master上的网卡,两个虚拟IP均转至服务器1上,服务仍正常 另外,配置了健康检查,real server故障后,超时后会自动踢除故障服务器继续提供服务

相关推荐
NiceCloud喜云4 小时前
Claude API PDF 文档问答实战:从原生解析到分页引用的完整方案
java·服务器·前端·网络·数据库·人工智能·pdf
sakiko_4 小时前
Swift学习笔记31-网络请求
网络·笔记·学习·swift
一路往蓝-Anbo4 小时前
第六章:RTOS 任务 —— 任务逻辑与并发的 TDD 路径
网络·stm32·单片机·嵌入式硬件·tdd
傅科摆 _ py4 小时前
企业 / 校园 合法远程访问工具详解
服务器·网络·数据库
晚烛5 小时前
CANN 数据流水线优化:从数据加载到模型输入的端到端加速
开发语言·网络·人工智能·python·深度学习
ylscode5 小时前
npm遭遇大规模供应链投毒:@antv生态被植入Shai-Hulud后门,全球开发者需紧急排查
网络·安全·web安全·安全威胁分析
彦为君5 小时前
JavaSE-11-网络编程(详细版)
java·前端·网络·ai·ai编程
189228048615 小时前
NY386固态MT29F32T08GWLBHD6-T:B
大数据·服务器·人工智能·科技·缓存
IMPYLH5 小时前
Linux 的 whoami 命令
linux·运维·服务器·bash