LVS-NAT模式部署详细过程

tech2022-09-22  74

文章目录

前言一:LVS负载均衡原理二:实验详情2.1:实验环境2.2:实验拓扑图2.3:实验目的2.4:实验过程2.4.1:配置NFS服务器2.4.2:配置两台Apache服务器2.4.3:加载ip_vs模块,安装ipvsadm工具并设置LVS网卡2.4.4:修改win10IP地址2.4.5:保存规则并测试 2.5:实验验证

前言

一:LVS负载均衡原理

详见我的上篇博客:https://blog.csdn.net/weixin_47219818/article/details/108369427

二:实验详情

2.1:实验环境

VMware软件一台centos7作为LVS网关,双网卡两台centos7作为Apache服务器一台centos7作为NFS存储一台win10作为客户端

2.2:实验拓扑图

2.3:实验目的

win10客户机访问12.0.0.1的网址,通过nat地址转换,轮询的访问到Apache1和Apache2主机搭建出nfs网络文件存储服务

2.4:实验过程

2.4.1:配置NFS服务器

添加两块硬盘,作为erbao和sanbao的挂载点 格式化磁盘,创建挂载点 [root@nfs ~]# fdisk -l '//重启后,查看两块硬盘是否被加载出来' [root@nfs ~]# fdisk /dev/sdb 命令(输入 m 获取帮助):n'//选择创建磁盘' Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): '//直接回车,选择默认' Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048):'//直接回车,选择默认' 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039)'//直接回车,选择默认' 将使用默认值 41943039 分区 1 已设置为 Linux 类型,大小设为 20 GiB 命令(输入 m 获取帮助):w'//保存退出' The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 '//同样方法新建磁盘/dev/sdc' [root@nfs ~]# fdisk /dev/sdb '//省略内容' [root@nfs ~]# mkdir /opt/erbao /opt/sanbao '//创建挂载目录' [root@nfs ~]# vim /etc/fstab '//...省略内容,添加一下两段自动挂载的设置' /dev/sdb1 /opt/erbao xfs defaults 0 0 /dev/sdc1 /opt/sanbao xfs defaults 0 0 [root@nfs ~]# mount -a '//全部挂载' [root@nfs ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 ...省里内容 /dev/sdb1 20G 33M 20G 1% /opt/erbao /dev/sdc1 20G 33M 20G 1% /opt/sanbao 关闭防火墙,安装NFS相关软件 [root@nfs ~]# systemctl stop firewalld.service [root@nfs ~]# setenforce 0 [root@nfs ~]# rpm -q nfs-utils nfs-utils-1.3.0-0.48.el7.x86_64 '//已经安装nfs-utils(nfs组件)' [root@nfs ~]# rpm -q rpcbind rpcbind-0.2.0-42.el7.x86_64 //已经安装rpcbind(远端过程调用组件)' [root@nfs ~]# vim /etc/exports '//编辑共享配置文件' /opt/erbao 192.168.79.0/24(rw,sync,no_root_squash) /opt/sanbao 192.168.79.0/24(rw,sync,no_root_squash) '//添加上述两个配置' 开启服务并测试 [root@nfs ~]# systemctl start nfs [root@nfs ~]# systemctl start rpcbind [root@nfs ~]# netstat -ntap |grep rpc tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 25719/rpc.mountd tcp 0 0 0.0.0.0:42599 0.0.0.0:* LISTEN 25705/rpc.statd tcp6 0 0 :::20048 :::* LISTEN 25719/rpc.mountd tcp6 0 0 :::53299 :::* LISTEN 25705/rpc.statd [root@nfs ~]# showmount -e Export list for nfs: /opt/sanbao 192.168.79.0/24 /opt/erbao 192.168.79.0/24 选择仅主机模式,修改IP地址 修改IP地址 [root@nfs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 '//...省略内容,修改为static' BOOTPROTO=static '//...省略内容,尾行添加内容' IPADDR=192.168.79.136 NETMASK=255.255.255.0 GATEWAY=192.168.79.1 [root@nfs ~]# systemctl restart network [root@nfs ~]# ifconfig '//修改成功' ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.79.136 netmask 255.255.255.0 broadcast 192.168.79.255

2.4.2:配置两台Apache服务器

两台Apache服务器安装httpd并关闭防火墙 [root@apache1 ~]# yum install httpd -y [root@apache1 ~]# systemctl stop firewalld.service [root@apache1 ~]# setenforce 0 [root@apache2 ~]# yum install httpd -y [root@apache2 ~]# systemctl stop firewalld.service [root@apache2 ~]# setenforce 0 选择仅主机模式 修改两台Apache服务器的IP地址 [root@apache1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 '//...省略内容,修改为static' BOOTPROTO=static '//...省略内容,尾行添加内容' IPADDR=192.168.79.134 NETMASK=255.255.255.0 GATEWAY=192.168.79.1 [root@apache1 ~]# systemctl restart network [root@apache1 ~]# ifconfig [root@apache1 ~]# showmount -e 192.168.79.136 '//验证nfs服务没有问题' Export list for 192.168.79.136: /opt/sanbao 192.168.79.0/24 /opt/erbao 192.168.79.0/24 '//相同方法修改Apache2' 自动挂载nfs共享目录 [root@apache1 ~]# vim /etc/fstab '//尾行添加挂载配置' 192.168.79.136:/opt/erbao /var/www/html nfs defaults,_netdev 0 0 [root@apache1 ~]# mount -a [root@apache1 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 ...省略内容 192.168.79.136:/opt/erbao 20G 32M 20G 1% /var/www/html '//相同方法配置Apache2服务器' 编辑首页文件 [root@apache1 ~]# vim /var/www/html/index.html <h1>this is erbao web</h1> [root@apache1 ~]# systemctl start httpd.service [root@apache1 ~]# netstat -ntap |grep 80 tcp6 0 0 :::80 :::* LISTEN 62305/httpd '//相同方法配置Apache2服务器'

2.4.3:加载ip_vs模块,安装ipvsadm工具并设置LVS网卡

加载ip_vs模块

[root@lvs~]# modprobe ip_vs [root@lvs~]# cat /proc/net/ip_vs IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn 安装ipvsadm工具 [root@lvs ~]# yum install ipvsadm -y 设置双网卡 [root@lvs ~]# cd /etc/sysconfig/network-scripts [root@lvs network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 [root@lvs network-scripts]# vim ifcfg-ens33 '//...省略内容,修改为static' BOOTPROTO=static '//...省略内容,尾行添加内容' IPADDR=12.0.0.1 NETMASK=255.255.255.0 [root@lvs network-scripts]# vim ifcfg-ens36 '//...省略内容,修改为static' BOOTPROTO=static '//..省略内容,原本的33改为36' NAME=ens36 UUID=6ba4ac2f-cb59-454f-9274-b48a6ecadeda '//删除此行 UUID' DEVICE=ens36 '//原本的33改为36' ONBOOT=yes IPADDR=192.168.79.1 NETMASK=255.255.255.0 开启路由转发功能 [root@lvs network-scripts]# vim /etc/sysctl.conf net.ipv4.ip_forward=1 '//尾行插入,注意不要有#号' [root@lvs network-scripts]# sysctl -p '//重载路由转发功能' net.ipv4.ip_forward = 1 清空防火墙表规则,并这种NAT地址转换 [root@lvs network-scripts]# iptables -F '//情况转发表' [root@lvs network-scripts]# iptables -t nat -F '//情况nat地址转换表' oot@lvs network-scripts]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.79.0/24 -j SNAT --to-source 12.0.0.1

2.4.4:修改win10IP地址

设置为仅主机模式

2.4.5:保存规则并测试

[root@lvs network-scripts]# ipvsadm --save > /etc/sysconfig/ipvsadm [root@lvs network-scripts]# systemctl start ipvsadm.service [root@lvs network-scripts]# cd /opt [root@lvs opt]# vim nat.sh #!/bin/bash ipvsadm -C '//情况内核虚拟服务器表中的所有记录' ipvsadm -A -t 12.0.0.1:80 -s rr ipvsadm -a -t 12.0.0.1:80 -r 192.168.79.134:80 -m ipvsadm -a -t 12.0.0.1:80 -r 192.168.79.135:80 -m ipvsadm [root@lvs opt]# chmod +x nat.sh [root@lvs opt]# ./nat.sh IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP lvs:http rr -> 192.168.79.134:http Masq 1 0 0 -> 192.168.79.135:http Masq 1 0 0

2.5:实验验证

打开win10主机,访问12.0.0.1

已经成功,采用了轮询算法访问两个网站

若不成功,则需要情况缓存再次尝试

最新回复(0)