ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LVS-NAT模式的实现

2021-07-09 11:33:20  阅读:156  来源: 互联网

标签:10.0 lvs LVS ipvsadm 192.168 模式 NAT 80 root


一、架构如下:

 二、安装过程

1、配置“互联网”服务器

1.1、修改服务器ip为192.168.10.101/24

[root@internet ~]# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:a8:6f:21 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.101/24 brd 192.168.10.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea8:6f21/64 scope link 
       valid_lft forever preferred_lft forever

1.2、修改服务器的主机名为“internet”(可选)

[root@internet ~]# hostnamectl set-hostname internet

2、配置LVS服务器

2.1、安装ipvsadm管理工具

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

2.2、配置eth1网卡(模拟连接外网)

2.2.1、添加一块网卡,选择“仅主机模式”

 2.2.2、配置eth1网卡地址

[root@lvs /]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 
DEVICE=eth1
NAME=eth1
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.10.100
PREFIX=24

2.2.3、启用ip_forward功能

[root@lvs /]# echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
#使其生效
[root@lvs /]# sysctl -p

3、配置RS服务器

3.1、安装apache、mysql、mod_ssl服务(验证功能作用)

[root@rs1 ~]# yum -y install httpd mysql-server mod_ssl

3.2、修改eth0网卡的网关配置,指向LVS服务器的DIP(两台RS服务器都需要修改配置)

[root@rs1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.0.0.67
PREFIX=24
GATEWAY=10.0.0.57

3.3、启动httpd服务(两台RS服务器都需要安装)

[root@rs1 ~]# systemctl enable --now httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

3.4、配置一下显示页面(特意配置不同,生产中应是相同的)

[root@rs1 ~]# cat /var/www/html/index.html
rs1 10.0.0.67 

RS2服务类似配置

效果如下:

[root@lvs ~]# curl 10.0.0.67
rs1 10.0.0.67 
[root@lvs ~]# curl 10.0.0.77
rs2 10.0.0.77

4、(重点)配置LVS服务器

4.1、创建集群,使用轮询的调度算法

[root@lvs ~]# ipvsadm -A -t 192.168.10.100:80 -s rr
#查看当前集群
[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.10.100:80 rr

4.2、添加RS服务到集群中

[root@lvs ~]# ipvsadm -a -t 192.168.10.100:80 -r 10.0.0.67:80 -m
[root@lvs ~]# ipvsadm -a -t 192.168.10.100:80 -r 10.0.0.77:80 -m
#查看当前集群
[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.10.100:80 rr
  -> 10.0.0.67:80                 Masq    1      0          0         
  -> 10.0.0.77:80                 Masq    1      0          0 

4.3、验证功能

[root@internet ~]# curl 192.168.10.100
rs2 10.0.0.77 
[root@internet ~]# curl 192.168.10.100
rs1 10.0.0.67 
[root@internet ~]# curl 192.168.10.100
rs2 10.0.0.77 
[root@internet ~]# curl 192.168.10.100
rs1 10.0.0.67

访问成功,并且实现了访问轮询的效果。

三、思考

1、当“互联网”服务器去访问后端服务时,后端服务器看到的请求来自于哪个IP?

 答:LVS-NAT模型采用的是DNAT,只对目标IP做地址转换,不对源IP做任何处理,因此后端服务器可以正常看到实际的“互联网”服务器的IP。

2、通讯过程中,“互联网”机器是直接与LVS服务器建立TCP连接,还是和后端服务器建立TCP连接?

2.1、在RS创建一个大文件

[root@rs1 ~]# dd if=/dev/zero of=/var/www/html/f.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.41985 s, 250 MB/s

2.2、“互联网”机器模拟去下载RS端的文件

[root@internet ~]# wget --limit-rate=100k http://192.168.10.100/f.img

2.3、查看LVS端口开启情况

  [root@lvs ~]# ss -nt
  State Recv-Q Send-Q Local Address:Port Peer Address:Port
  ESTAB 0 36 10.0.0.57:22 10.0.0.1:49851

2.4、查看RS服务器端口开启情况

[root@rs1 ~]# ss -nt
State       Recv-Q Send-Q                                                     Local Address:Port                                                                    Peer Address:Port              
ESTAB       0      36                                                             10.0.0.67:22                                                                          10.0.0.1:61068              
ESTAB       0      0                                                              10.0.0.67:22                                                                          10.0.0.1:65352              
ESTAB       0      386824                                                  ::ffff:10.0.0.67:80                                                             ::ffff:192.168.10.101:10659 

2.5、查看“互联网”服务器

[root@internet ~]# ss -nt
State       Recv-Q Send-Q                                                                   Local Address:Port                                                                                  Peer Address:Port              
ESTAB       0      0                                                                       192.168.10.101:22                                                                                    192.168.10.1:56282              
ESTAB       0      0                                                                       192.168.10.101:22                                                                                    192.168.10.1:49944              
ESTAB       240888 0                                                                       192.168.10.101:10659                                                                               192.168.10.100:80 

上述实验,可见LVS在“互联网”机器与后端服务器通讯过程中,并不参与握手过程。

因此本题答案为:

通讯过程中,“互联网”服务器和后端服务器建立TCP连接。

3、通讯过程中,LVS是否监听80端口?

答:不会。在本实验中,LVS相当于路由器角色,并不会监听到服务的80端口。真正监听80服务端口的,是RS服务器。

四、拓展

1、ipvsadm规则保存

[root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
[root@lvs ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.10.100:80 -s rr
-a -t 192.168.10.100:80 -r 10.0.0.67:80 -m -w 1
-a -t 192.168.10.100:80 -r 10.0.0.77:80 -m -w 1

2、ipvsadm规则清空

[root@lvs ~]# ipvsadm -C
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

3、ipvsadm规则导入

[root@lvs ~]# ipvsadm-restore -n < /etc/sysconfig/ipvsadm
[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.10.100:80 rr
  -> 10.0.0.67:80                 Masq    1      0          0         
  -> 10.0.0.77:80                 Masq    1      0          0 

 

标签:10.0,lvs,LVS,ipvsadm,192.168,模式,NAT,80,root
来源: https://www.cnblogs.com/lybj/p/14989801.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有