0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

持久化ipvsadm配置规则

马哥Linux运维 来源:cnblogs 2024-04-25 12:43 次阅读

1、NAT架构规划图

7a15eaaa-0233-11ef-a297-92fbcf53809c.jpg

2、环境准备

2.1、主机规划


主机名  IP地址
route   LAN:192.168.87.132  WAN:192.168.10.12  
lvs     LAN:192.168.87.131
rs-01   LAN:  192.168.87.129
rs-02   LAN:  192.168.87.130
client  WAN 192.168.10.4

2.2、Linux route服务器配置

使用linux服务器充当route的功能

2.2.1、配置WAN的IP地址

]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
...
BOOTPROTO=static
IPADDR=192.168.10.12
PREFIX=24
GATEWAY=192.168.10.2 # 出口的网关
DNS1=192.168.10.2

2.2.2、配置LAN的IP地址【rs同网段】

]# cat /etc/sysconfig/network-scripts/ifcfg-ens36
...
BOOTPROTO=static
IPADDR=192.168.87.132
PREFIX=24
GATEWAY=192.168.87.2

2.2.3、启用 FORWARD转发功能

echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p

2.3、Linux LVS服务器配置

2.3.1、配置LAN的IP地址

]# cat /etc/sysconfig/network-scripts/ifcfg-ens36 
...
BOOTPROTO=static
IPADDR=192.168.87.131
PREFIX=24
GATEWAY=192.168.87.132 # 网关是路由器的IP地址

2.3.2、增加vip【ens36:1】

cp /etc/sysconfig/network-scripts/ifcfg-ens36 /etc/sysconfig/network-scripts/ifcfg-ens36:1
]# vi /etc/sysconfig/network-scripts/ifcfg-ens36:1...
BOOTPROTO=static
NAME=ens36:1
DEVICE=ens36:1
ONBOOT=yes
IPADDR=192.168.87.200
PREFIX=24

2.3.3、启用 FORWARD转发功能

echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p

2.4、rs-01服务器IP地址配置

2.4.1、IP地址配置

]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
...
BOOTPROTO=static
IPADDR=192.168.87.129
NETMASK=255.255.255.0
GATEWAY=192.168.87.131 # 这个IP地址指向LVS的LAN IP地址

2.4.2、增加主机路由【生产环境此步骤不存在,因为网段是不一样的】

route add -host 192.168.87.132 gw 192.168.87.200


# 因为我们是使用同一网段做NAT,如果没有配置会导致出站的时候,找不到路由,从而访问不到
# 192.168.87.132  路由器的IP地址
# 192.168.87.200  VIP
route add -host client_ip gw route_ip

2.5、rs-02服务器IP地址配置

2.5.1、IP地址配置

]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
...
BOOTPROTO=static
IPADDR=192.168.87.130
PREFIX=24
GATEWAY=192.168.87.131 # 这个IP地址指向LVS的LAN IP地址

2.5.2、增加主机路由【生产环境此步骤不存在,因为网段是不一样的】

route add -host 192.168.87.132 gw 192.168.87.200

# 因为我们是使用同一网段做NAT,如果没有配置会导致出站的时候,找不到路由,从而访问不到
# 192.168.87.132  路由器的IP地址
# 192.168.87.200  VIP
route add -host client_ip gw route_ip

2.6、rs-01、rs-02都安装上httpd服务

2.6.1、安装httpd

yum install httpd -y

2.6.2、写入访问的首页

rs-01 ~]# echo "rs-01" >/var/www/html/index.html
rs-02 ~]# echo "rs-02" >/var/www/html/index.html

2.6.3、启动httpd服务

systemctl start httpd

2.6.4、测试访问

]# curl 192.168.87.129
rs-01


]# curl 192.168.87.130
rs-02

3、配置LVS NAT

3.1、创建LVS集群

ipvsadm -A -t 192.168.87.200:80 -s rr

3.2、往LVS集群节点增加rs

ipvsadm -a -t 192.168.87.200:80 -r 192.168.87.129:80 -m
ipvsadm -a -t 192.168.87.200:80 -r 192.168.87.130:80 -m

3.3、查询集群状态

]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.87.200:80 rr
  -> 192.168.87.129:80            Masq    1      0          0         
  -> 192.168.87.130:80            Masq    1      0          0

4、Client测试访问【配置网关地址的方式】

4.1、修改网关IP为路由器IP地址

]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
..
IPADDR=192.168.10.4
PREFIX=24
GATEWAY=192.168.10.12
DNS1=192.168.10.2


systemctl restart network
4.2、访问vip地址
~]# curl 192.168.87.200:80
rs-02


~]# curl 192.168.87.200:80
rs-01

5、Client测试访问【直接访问路由IP地址方式】

5.1、Client网关删除掉

5.1.1、删除GATEWAY

]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
BOOTPROTO=static
IPADDR=192.168.10.4
PREFIX=24
DNS1=192.168.10.2


# 已经没有GATEWAY字段

5.1.2、重启网口访问测试

systemctl restart network


]# curl 192.168.87.200:80
curl: (7) Failed to connect to 192.168.87.200: Network is unreachable

5.2、路由器服务上配置SNAT、DNAT

5.2.1、配置DNAT【入站】
# 访问路由器地址192.168.10.12 转发给VIP 192.168.87.200
iptables -t nat -A PREROUTING -d 192.168.10.12 -j DNAT --to 192.168.87.200


# 路由器地址端口80 转发给 VIP的端口80
iptables -t nat -A PREROUTING -d 192.168.10.12 -ptcp --dport 80 -j DNAT --to 192.168.87.200:80

5.2.2、配置SNAT【出站】

# 出站,将网段为192.168.10.0 转发给 路由器192.168.10.12 出去
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to 192.168.10.12

5.3、访问路由器IP地址测试

~]# curl 192.168.10.12
rs-01


~]# curl 192.168.10.12
rs-02

6、持久化ipvsadm配置规则

6.1、保存配置规则

ipvsadm-save > /etc/sysconfig/ipvsadm

6.2、systemctl加载或删除规则

systemctl start ipvsadm
systemctl stop ipvsadm

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8656

    浏览量

    84400
  • 路由器
    +关注

    关注

    22

    文章

    3638

    浏览量

    112684
  • HTTP
    +关注

    关注

    0

    文章

    477

    浏览量

    30712
  • ip地址
    +关注

    关注

    0

    文章

    277

    浏览量

    16902

原文标题:6、持久化ipvsadm配置规则

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    EJB3持久规范

    EJB3持久规范1 实体
    发表于 07-07 15:37

    Redis坚持持久方式概述

    Redis 持久
    发表于 09-25 17:04

    Spark RDD的两个持久方法

    Spark_RDD的持久
    发表于 10-28 12:08

    Docker持久数据存储方案

    Docker持久存储与数据共享
    发表于 03-23 11:17

    OpenHarmony持久存储UI状态:PersistentStorage

    需要用到PersistentStorage。 PersistentStorage是应用程序中的可选单例对象。此对象的作用是持久存储选定的AppStorage属性,以确保这些属性在应用程序重新启动时的值与应用程序关闭时的值相同。 概述
    发表于 10-19 14:34

    HarmonyOS数据管理与应用数据持久(一)

    ):提供了轻量级配置数据的持久能力,并支持订阅数据变化的通知能力。不支持分布式同步,常用于保存应用配置信息、用户偏好设置等。 ● 键值型数据管理(KV-Store):提供了键值型数据
    发表于 11-01 16:27

    防火墙的配置--过滤规则示例

    防火墙的配置--过滤规则示例
    发表于 12-07 14:16 9196次阅读
    防火墙的<b class='flag-5'>配置</b>--过滤<b class='flag-5'>规则</b>示例

    Redis持久机制的实现原理和使用技巧

    Redis将数据存储在内存中,宕机或重启都会使内存数据全部丢失, Redis的持久机制用来保证数据不会因为故障而丢失。
    的头像 发表于 09-13 16:42 929次阅读

    如何开启RDB持久方式

      RDB快照(Redis DataBase) RDB是一种快照存储持久方式,具体就是将Redis某一时刻的内存数据保存到硬盘的文件当中,默认保存的文件名为dump.rdb,而在Redis服务器
    的头像 发表于 06-25 11:52 765次阅读
    如何开启RDB<b class='flag-5'>持久</b><b class='flag-5'>化</b>方式

    Redis持久RDB方式介绍

    时Redis会自动将内存中的数据进行快照并持久到硬盘。 触发快照的时机 符合自定义配置的快照规则 redis.conf 执行 save 或者 bgsave 命令 执行 flushal
    的头像 发表于 10-09 14:56 415次阅读
    Redis<b class='flag-5'>持久</b><b class='flag-5'>化</b>RDB方式介绍

    redis持久方式有几种及配置

    Redis是一种内存数据库,为了避免数据丢失,需要将数据持久到磁盘上。Redis提供了两种持久方式:RDB快照和AOF日志。下面将详细介绍这两种方式及其
    的头像 发表于 12-04 11:09 501次阅读

    redis两种持久方式的区别

    Redis是一款高性能、开源的键值存储数据库,它支持多种数据结构,并且具有高效的内存读写以及持久功能。Redis的持久机制可以确保数据的持久
    的头像 发表于 12-04 11:12 409次阅读

    redis持久机制和如何实现持久

    Redis是一款高性能的非关系型数据库,其持久机制是保证数据在重启后仍能够保存的关键。Redis提供了两种方式来实现持久:RDB(Redis DataBase)和AOF(Appen
    的头像 发表于 12-05 10:02 376次阅读

    redis持久机制优缺点

    Redis是一个基于内存的高性能键值存储系统,它提供了多种持久机制来保证数据的可靠性。本文将详细介绍Redis的持久机制,并分析其优缺点。 一、Redis的
    的头像 发表于 12-05 10:03 500次阅读

    云容器redis持久配置

    丢失。 Redis提供了不同的持久机制,可以根据需要进行配置。本文将详细介绍云容器中Redis的持久
    的头像 发表于 12-05 10:07 409次阅读