LVS系列—LVS-NAT 模式安装
来源:互联网 发布:数据挖掘是算法吗 编辑:程序博客网 时间:2024/04/30 13:41
一、准备工作——LVS Server
LVS Server:LSV Server有两张网卡,作用如下:
- eth0:192.168.3.10:这张网卡对应一个封闭的内网,不能访问外网资源,外网也不能直接通过这个IP访问这台主机;
- eth1:192.168.2.100:这张网卡设置的IP可以访问外网,也可以被外网访问。eth1的网关:192.168.2.1。
1、以下是设置的eth0 ip信息
[root@localhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO="static"HWADDR="00:0c:29:24:26:a6"ONBOOT="yes"TYPE="Ethernet"IPADDR="192.168.3.10"NETMASK="255.255.255.0"NAME="eth0"
2、以下是设置的eth1 ip信息
[root@localhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE="eth1"BOOTPROTO="static"HWADDR="00:0c:29:24:26:b0"ONBOOT="yes"TYPE="Ethernet"IPADDR="192.168.2.100"NETMASK="255.255.255.0"NAME="eth1"GATEWAY="192.168.2.1"
3、设置完成后,要重启network服务
[root@localhost ~]# service network restartRestarting network (via systemctl): [ 确定 ]
4、ping ping更健康(说明到外网的网关工作是正常的)
C:\Users\1234>ping 192.168.2.100正在 Ping 192.168.2.100 具有 32 字节的数据:来自 192.168.2.100 的回复: 字节=32 时间<1ms TTL=64来自 192.168.2.100 的回复: 字节=32 时间<1ms TTL=64来自 192.168.2.100 的回复: 字节=32 时间<1ms TTL=64来自 192.168.2.100 的回复: 字节=32 时间<1ms TTL=64192.168.2.100 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms
另外还可以通过route命令检查:
[root@localhost ~]# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Ifacedefault 192.168.2.1 0.0.0.0 UG 101 0 0 eth1192.168.2.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1192.168.3.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
二、准备工作——Real Server
Real Server:Real Server有一张网卡,在一个封闭的内网环境中。
- eth0:192.168.3.11:这样LVS Server和Real Server就组成了一个相对封闭的局域网络。注意按照我们介绍的NAT原理,Real Server的eth0的默认网关要设置成Lvs Server:192.168.3.10;
- 在Real Server上运行了一个Nginx程序,在80端口上。这样以便在后续的过程中,测试LVS-NAT的工作是否正常。
1、以下是设置的Real Server eth0 的IP信息
[root@localhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO="static"HWADDR="00:0c:29:16:8a:87"ONBOOT="yes"TYPE="Ethernet"IPADDR=192.168.3.11NETMASK=255.255.255.0GATEWAY="192.168.3.10"
一定注意Real Server的网关要设置到LVS的IP:192.168.3.10。
2、ping ping更健康(说明Real Server和LVS Server是互通的)
[root@localhost /]# ping 192.168.3.10PING 192.168.3.10 (192.168.3.10) 56(84) bytes of data.64 bytes from 192.168.3.10: icmp_seq=1 ttl=64 time=0.318 ms64 bytes from 192.168.3.10: icmp_seq=2 ttl=64 time=0.272 ms64 bytes from 192.168.3.10: icmp_seq=3 ttl=64 time=0.506 ms64 bytes from 192.168.3.10: icmp_seq=4 ttl=64 time=0.351 ms64 bytes from 192.168.3.10: icmp_seq=5 ttl=64 time=0.456 ms^C--- 192.168.3.10 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4004msrtt min/avg/max/mdev = 0.272/0.380/0.506/0.089 ms
另外一个检查方式,也可以通过route命令:
[root@localhost /]# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Ifacedefault localhost 0.0.0.0 UG 101 0 0 eth0192.168.3.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
注意,默认的路由指向192.168.3.10。
3、看看Nginx是不是工作正常的
[root@localhost ~]# curl 192.168.3.11192.168.3.11
Nginx的安装配置请参考Nginx系列—服务器安装与配置
Nginx虚拟机的配置请参考
- Nginx系列—虚拟主机配置的三种方式(一)
- Nginx系列—虚拟主机配置的三种方式(二)
- Nginx系列—虚拟主机配置的三种方式(三)
按照同样的步骤多陪几台服务器,便于测试。
完成准备工作后,我们可以开始安装和配置LVS了。
三、开始安装和配置LVS-NAT模式
ipvsadm是一个LVS的管理程序。我们队LVS的配置都是通过这个管理程序进行实现的。若没有安装请参考LVS系列—LVS安装使用详解(ipvsadm命令)
然后开始配置。首先我们要设置LVS机器支持IP转发功能。注意默认IP转发功能是关闭的,重启机器后,又会关闭:
[root@localhost ~]# echo 1 >> /proc/sys/net/ipv4/ip_forward
然后我们查看一下,是否改写成功:
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward1
注意,如果您使用vim或者vi命令,改写文件,是不会成功的。因为这个文件存在于内存。不在硬盘上。所以只能通过echo这样的命令改写。
打开LVS机器支持IP转发功能,永久生效
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
接下来执行如下的命令:
[root@localhost ~]# ipvsadm -At 192.168.2.100:80 -s rr[root@localhost ~]# ipvsadm -at 192.168.2.100:80 -r 192.168.3.11 -m[root@localhost ~]# ipvsadm -at 192.168.2.100:80 -r 192.168.3.12 -m
我们来解释一下其中的参数:
-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务。-s --scheduler scheduler 使用的调度算法,可选项包括:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq(关于调度算法我们在上篇文章中已经详细介绍了)-r --real-server server-address 真实的服务器[Real-Server:port]。-m --masquerading 指定LVS 的工作模式为NAT 模式。
最后我们测试一下:
浏览器一:
浏览器二:
我们在相对于Real Server的外网,通过192.168.2.100的LVS Server IP访问到了Real Server上的Nginx服务。安装和配置成功。
在测试时发现,轮训调度的算发并没有真正的平均进行调度,不知道什么原因。
四、关于iptables和重启服务的说明
在配置LVA-NAT过程中,建议关闭LVS和Real Server的防火墙服务。这样可以避免不必要的错误发生,增加一次配置成功的几率。但是正常生产环境中,LVS的防火墙根据实际情况最好还是要打开。
请注意,刚才使用ipvsadm配置的信息,在LVS服务器重启后,就会失效。包括ip_forward的配置。所以,最好制作一个脚本文件,并加入到/etc/profile中:
[root@localhost ~]# vim /usr/lvsshell.sh#!/bin/bashecho 1 > /proc/sys/net/ipv4/ip_forward ipvsadm -Cipvsadm -At 192.168.2.100:80 -s rripvsadm -at 192.168.2.100:80 -r 192.168.3.11 -mipvsadm -at 192.168.2.100:80 -r 192.168.3.12 -m
附、配置过程中的问题
1、最后在浏览器进行测试时,发现访问不到后端Nginx的服务
决解方法:将服务器上多余的默认路由删掉,只留下一条默认的路由。
- LVS系列—LVS-NAT 模式安装
- LVS系列—LVS-DR 模式安装
- LVS NAT模式简介
- LVS-NAT模式实现
- LVS ---nat模式
- LVS NAT 模式
- LVS NAT模式
- lvs-nat 模式
- LVS-NAT配置安装
- LVS + Keepalived之nat模式
- LVS 的NAT模式配置
- lvs DR NAT模式练习
- LVS之NAT模式配置
- lvs集群nat模式搭建
- LVS系列—LVS安装使用详解(ipvsadm命令)
- LVS系列—负载均衡之工作原理说明(NAT模式)
- lvs nat
- LVS-NAT
- cxf-Springmvc-maven实现webservice教程
- shell命令--history
- Android Studio Gradle构建报错,Error:Execution failed for task ':app:mergeDebugResources'.
- C++中一个class类对象占用多少内字节
- uva 11181 dfs深搜
- LVS系列—LVS-NAT 模式安装
- Android四大组件之Service
- vtkIntersectionPolydataFilter 使用心得
- 金蝶K3常用表信息
- NOIP2015 斗地主(回溯)
- Fragment初识(四)
- 1162: 循环移动(指针专题)
- 进程管理--之一
- spring cloud初识