下文给大家带来NAT模式下负载调度器的一些要点,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用Vecloud在行业内累计的经验来做一个解答。
NAT模式地址转换:简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有云服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
实验原理图
实验环境LVS调度器作为web服务器池的网关,LVS两块网卡,分别连接内外网,使用轮询(rr)调度算法LVS负载调度器 内网33网关:192.168.13.1 外网36:12.0.0.1web1 192.168.13.151web2 192.168.13.170nfs服务器 192.168.13.145client测试机 12.0.0.121,在nfs服务器上添加两块硬盘,做共享存储使用,格式化
[root@nfs ~]# fdisk /dev/sdb ##分区令(输入 m 获取帮助):n ##创建新分区Partition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p ##主分区分区号 (1-4,默认 1): ##回车起始 扇区 (2048-41943039,默认为 2048): ##回车将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): ##回车将使用默认值 41943039分区 1 已设置为 Linux 类型,大小设为 20 GiB命令(输入 m 获取帮助):w ##保存[root@nfs ~]# mkfs.xfs /dev/sdb1 ##格式化磁盘##以上操作格式化/dev/sdc磁盘[root@nfs ~]# mkdir /opt/kgc /opt/accp ##创建挂载点[root@nfs ~]# vim /etc/fstab ##创建自动挂载 ##末行插入挂载/dev/sdb1 /opt/kgc xfs defaults 0 0/dev/sdc1 /opt/accp xfs defaults 0 0[root@nfs ~]# mount -a ##刷新挂载[root@nfs ~]# df -hT ##查看磁盘挂载情况文件系统 类型 容量 已用 可用 已用% 挂载点/dev/sdb1 xfs 20G 33M 20G 1% /opt/kgc/dev/sdc1 xfs 20G 33M 20G 1% /opt/accp[root@nfs ~]# systemctl stop firewalld.service ##关闭防火墙[root@nfs ~]# setenforce 0[root@nfs ~]# rpm -q nfs-utils ##查看nfs两个包是否安装nfs-utils-1.3.0-0.48.el7.x86_64[root@nfs ~]# rpm -q rpcbindrpcbind-0.2.0-42.el7.x86_64[root@nfs ~]# vim /etc/exports ##配置共享存储配置文件/opt/kgc 192.168.13.0/24(rw,sync,no_root_squash) ##支持13网段读写,同步,不支持降级处理/opt/accp 192.168.13.0/24(rw,sync,no_root_squash)2,把NFS服务器切换为仅主机模式,启动服务
[root@nfs ~]# systemctl start nfs ##开启nfs服务[root@nfs ~]# systemctl start rpcbind[root@nfs ~]# showmount -e ##查看提供共享信息Export list for nfs:/opt/accp 192.168.13.0/24/opt/kgc 192.168.13.0/24[root@nfs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改网卡信息BOOTPROTO=static ##改为静态...IPADDR=192.168.13.145 ##添加地址,子网掩码,网关NETMASK=255.255.255.0GATEWAY=192.168.13.1[root@nfs ~]# service network restart ##重启网络3,在web1,web2上安装http服务,切换网卡为仅主机模式//web1服务器//[root@web1 ~]# yum install httpd -y ##安装web服务[root@web1 ~]# systemctl stop firewalld.service ##关闭防火墙[root@web1 ~]# setenforce 0[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改网卡信息BOOTPROTO=static ##改为静态...IPADDR=192.168.13.151 ##添加地址,子网掩码,网关NETMASK=255.255.255.0GATEWAY=192.168.13.1[root@web1 ~]# service network restart [root@web1 ~]# showmount -e 192.168.13.145 ##查看nfs共享信息Export list for 192.168.13.145:/opt/accp 192.168.13.0/24/opt/kgc 192.168.13.0/24[root@web1 ~]# vim /etc/fstab ##设置自动挂载192.168.13.145:/opt/kgc /var/www/html nfs defaults,_netdev0 0 ##挂载到站点中,模式为nfs,默认网络设备[root@web1 ~]# mount -a ##刷新挂载[root@web1 ~]# df -hT ##查看磁盘挂载信息文件系统 类型 容量 已用 可用 已用% 挂载点192.168.13.145:/opt/kgc nfs4 20G 32M 20G 1% /var/www/html[root@web1 ~]# echo "this is kgc web" > /var/www/html/index.html ##创建网页[root@web1 ~]# systemctl start httpd.service ##启动web服务//web2服务器//[root@web2 ~]# yum install httpd -y ##安装web服务[root@web2 ~]# systemctl stop firewalld.service ##关闭防火墙[root@web2 ~]# setenforce 0[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改网卡信息BOOTPROTO=static ##改为静态...IPADDR=192.168.13.170 ##添加地址,子网掩码,网关NETMASK=255.255.255.0GATEWAY=192.168.13.1[root@web2 ~]# service network restart [root@web2 ~]# showmount -e 192.168.13.145 ##查看nfs共享信息Export list for 192.168.13.145:/opt/accp 192.168.13.0/24/opt/kgc 192.168.13.0/24[root@web2 ~]# vim /etc/fstab ##设置自动挂载192.168.13.145:/opt/accp /var/www/html nfs defaults,_netdev0 0 ##挂载到站点中,模式为nfs,默认网络设备[root@web2 ~]# mount -a ##刷新挂载[root@web2 ~]# df -hT ##查看磁盘挂载信息文件系统 类型 容量 已用 可用 已用% 挂载点192.168.13.145:/opt/accp nfs4 20G 32M 20G 1% /var/www/html[root@web2 ~]# echo "this is accp web" > /var/www/html/index.html ##创建网页[root@web2 ~]# systemctl start httpd.service ##启动web服务4,在lvs负载调度器上添加两块网卡并设置路由转发[root@lvs ~]# yum install ipvsadm -y ##安装ipvsadm调度管理工具添加外网的网卡,并切换为仅主机模式
[root@lvs ~]# cd /etc/sysconfig/network-scripts[root@lvs network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 ##复制网卡配置文件为ens36配置文件[root@lvs network-scripts]# vim ifcfg-ens33BOOTPROTO=staticIPADDR=192.168.13.1 ##设置内网网关ipNETMASK=255.255.255.0[root@lvs network-scripts]# vim ifcfg-ens36BOOTPROTO=static ##删除UUIDNAME=ens36 ##修改为36DEVICE=ens36IPADDR=12.0.0.1 ##设置外网网关NETMASK=255.255.255.0[root@lvs network-scripts]# service network restart ##重启网卡服务##可以在web上用ping测试能否连同网关##开启路由转发功能[root@lvs network-scripts]# vim /etc/sysctl.conf ##路由转发配置文件net.ipv4.ip_forward=1 ##开启路由转发[root@lvs network-scripts]# sysctl -p ##加载路由转换功能[root@lvs network-scripts]# iptables -F ##清除转发表[root@lvs network-scripts]# iptables -t nat -F ##清除nat地址转换表[root@lvs network-scripts]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.13.0/24 -j SNAT --to-source 12.0.0.1##指定nat地址转换表,指定数据流出接口,指定原ip地址,指定源地址转换SNAT,指定转换的ip地址5,加载lvs内核模块,配置管理软件ipvsadm[root@lvs network-scripts]# modprobe ip_vs ##加载lvs内核[root@lvs network-scripts]# cat /proc/net/ip_vs ##查看ipvs信息IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddressort Scheduler Flags -> RemoteAddressort Forward Weight ActiveConn InActConn[root@lvs network-scripts]# ipvsadm --save > /etc/sysconfig/ipvsadm ##centos7必须要先保存[root@lvs network-scripts]# systemctl start ipvsadm ##启动ipvsadm服务[root@lvs network-scripts]# vim /opt/nat.sh ##编写ipvsadm脚本#!/bin/bashipvsadm -C ##清空ipvs缓存ipvsadm -A -t 12.0.0.1:80 -s rr ##指定虚拟服务访问入口,指定轮询算法ipvsadm -a -t 12.0.0.1:80 -r 192.168.13.151:80 -m ##指定真实服务器,nat模式ipvsadm -a -t 12.0.0.1:80 -r 192.168.13.170:80 -mipvsadm ##启动[root@lvs network-scripts]# chmod +x /opt/nat.sh ##给执行权限[root@lvs network-scripts]# cd /opt/ [root@lvs opt]# ./nat.sh ##启动脚本IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddressort Scheduler Flags -> RemoteAddressort Forward Weight ActiveConn InActConnTCP lvs:http rr -> 192.168.13.151:http Masq 1 0 0 -> 192.168.13.170:http Masq 1 0 0 6,用client测试机(仅主机模式)访问12.0.0.1
看了以上关于NAT模式下负载调度器的一些要点。 |