当前位置: 首页 > article >正文

使用LVS的 NAT 模式实现 3 台RS的轮询访问

节点规划

1、配置RS

RS的网络配置为NAT模式,三台RS的网关配置为192.168.10.8

1.1配置RS1

1.1.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname rs1
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.7/24 ipv4.gateway 192.168.10.8 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

1.1.2安装nginx,修改默认访问页,测试

[root@rs1 ~]# dnf install nginx -y
[root@rs1 ~]# echo $(hostname -I) > /usr/share/nginx/html/index.html
[root@rs1 ~]# systemctl start nginx
[root@rs1 ~]# curl localhost
192.168.10.7

1.2配置RS2 

1.2.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname rs2
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.17/24 ipv4.gateway 192.168.10.8 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

1.2.2 安装nginx,修改默认访问页,测试

[root@rs2 ~]# dnf install nginx -y
[root@rs2 ~]# echo $(hostname -I) > /usr/share/nginx/html/index.html
[root@rs2 ~]# systemctl start nginx
[root@rs2 ~]# curl localhost
192.168.10.17

1.3配置RS3 

1.3.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname rs3
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.27/24 ipv4.gateway 192.168.10.8 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

  1.3.2安装nginx,修改默认访问页,测试

[root@rs3 ~]# dnf install nginx -y
[root@rs3 ~]# echo $(hostname -I) > /usr/share/nginx/html/index.html
[root@rs3 ~]# systemctl start nginx
[root@rs3 ~]# curl localhost
192.168.10.27

2、配置LVS 

2.1修改虚拟网络

lvs服务器有两块网卡,第一块网卡采用仅主机模式,IP 地址为 192.168.20.200,第二块网卡采用 NAT 模式,IP 地址为192.168.10.8

2.1.1修改网络设备连接名称

查看网络设备连接设备

[root@localhost ~]# nmcli connection show 
NAME                UUID                                  TYPE      DEVICE 
ens160              7b6ddf1c-4c7b-3bfd-b415-ca96de17cc9f  ethernet  ens160 
Wired connection 1  267b4a09-717b-3c98-b9cd-f144a31f474e  ethernet  ens224 
lo                  5d77457a-166c-4646-b4ba-501cf54a8ef7  loopback  lo    

修改Wired connection 1 改为 ens224

[root@localhost ~]# nmcli c modify 'Wired connection 1' connection.id ens224
[root@localhost ~]# nmcli connection show 
NAME    UUID                                  TYPE      DEVICE 
ens160  7b6ddf1c-4c7b-3bfd-b415-ca96de17cc9f  ethernet  ens160 
ens224  267b4a09-717b-3c98-b9cd-f144a31f474e  ethernet  ens224 
lo      5d77457a-166c-4646-b4ba-501cf54a8ef7  loopback  lo     

2.1.2修改主机名并配置仅主机模式网卡 

[root@localhost ~]# hostnamectl hostname lvs
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.20.200/24 ipv4.gateway 192.168.20.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

2.1.3安装ipvsadm软件

[root@lvs ~]# dnf install ipvsadm -y

2.1.4配置NET模式网卡

[root@lvs ~]# nmcli c modify ens224 ipv4.method manual ipv4.addresses 192.168.10.8/24 ipv4.gateway 192.168.10.2 connection.autoconnect yes
[root@lvs ~]# nmcli c up ens224

2.1.5查看配置完的网络设备 

[root@lvs ~]# 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 mq state UP group default qlen 1000
    link/ether 00:0c:29:44:fb:7f brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.20.200/24 brd 192.168.20.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe44:fb7f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:44:fb:89 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 192.168.10.8/24 brd 192.168.10.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::4c3e:c674:776a:8407/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

3、配置客户端 

客户端网络采用仅主机模式

3.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname client
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.20.100/24 ipv4.gateway 192.168.20.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

4、功能测试 

4.1启动ipvsadm服务

[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl start ipvsadm

4.2做LVS规则匹配

4.2.1配置一条规则

[root@lvs ~]# ipvsadm -A -t 192.168.20.200:80 -s rr

4.2.2为规则增加RS 

[root@lvs ~]# ipvsadm -a -t 192.168.20.200:80 -r 192.168.10.7:80 -m -w 2
[root@lvs ~]# ipvsadm -a -t 192.168.20.200:80 -r 192.168.10.17:80 -m -w 2
[root@lvs ~]# ipvsadm -a -t 192.168.20.200:80 -r 192.168.10.27:80 -m -w 2

4.2.3列出当前LPVS表

[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.20.200:80 rr
  -> 192.168.10.7:80              Masq    2      0          0         
  -> 192.168.10.17:80             Masq    2      0          0         
  -> 192.168.10.27:80             Masq    2      0          0        

 4.2.4重启服务

[root@lvs ~]# systemctl restart ipvsadm

4.2.5配置内核转发参数

[root@lvs ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1

5、客户端测试 

[root@client ~]# curl 192.168.20.200
192.168.10.27
[root@client ~]# curl 192.168.20.200
192.168.10.17
[root@client ~]# curl 192.168.20.200
192.168.10.7
[root@client ~]# curl 192.168.20.200
192.168.10.27
[root@client ~]# curl 192.168.20.200
192.168.10.17
[root@client ~]# curl 192.168.20.200
192.168.10.7
[root@client ~]# curl 192.168.20.200
192.168.10.27
[root@client ~]# curl 192.168.20.200
192.168.10.17
[root@client ~]# curl 192.168.20.200
192.168.10.7


http://www.kler.cn/a/598608.html

相关文章:

  • AI重构SEO关键词优化路径
  • Win32桌面编程:ACLUI.DLL,EditSecurity(IntPtr hwndOwner, ISecurityInformation psi)
  • UNIX网络编程笔记:客户/服务器程序示例
  • Mybatis——04
  • 计算机网络高频(二)TCP/IP基础
  • 深度学习框架PyTorch——从入门到精通(6.2)自动微分机制
  • git 基础操作
  • 机器学习结合盘古模型与RAMS实现多尺度气象分析与降尺度的程序结构与流程
  • 母婴电商企业案例:日事清驱动项目管理执行与OKR目标管理的流程自动化实践
  • 串口自动化断电测试
  • 神聖的綫性代數速成例題19. 最小二乘法在線性代數中的應用、線性空間的直和分解及相關性質、矩陣的特徵值分解的拓展應用
  • nginx配置https域名后,代理后端服务器流式接口变慢
  • Sqoop 常用命令
  • LeetCode(27):移除元素
  • mybatis操作数据库报错Cause: Cannot find class: ${com.mysql.cj.jdbc.Driver}
  • sgpt 终端使用指南
  • python每日十题(6)
  • 贪心算法(9)(java)最优除法
  • 深入解析 Redis 实现分布式锁的最佳实践
  • 基于Spring Boot的二手物品交易管理系统的设计与实现(LW+源码+讲解)