LVS的NAT模式实战

发布于:2024-08-14 ⋅ 阅读:(56) ⋅ 点赞:(0)

目录

1.NAT模式的工作原理

 2.NAT模式实战---环境准备

1.环境规划

2.克隆主机,生成nat模式的机器

1.设置主机名称

2.更改ip地址

3.添加网卡

4.查看网卡

5.修改网卡配置文件

6.时间同步

7.停用其他服务

8.添加web服务

1.安装nginx

2.修改index.html文件

3.时间同步

9.配置dns服务器

1.安装bind

2.配置主配置文件

3.配置区域配置文件

4. 配置区域数据配置文件

5.检查配置文件

6.启动服务

7.时间同步 

10.配置client客户端测试机

3.NAT搭建

1.nat服务器配置

1.安装ipvsadm

2.清空以往的规则

3.查看规则

4.新增规则

5.添加主机

6.设置ip转发

7.设置生效

2.web服务器网关配置


1.NAT模式的工作原理

nat的请求过程

1.用户请求ds,此时请求报文会先到内核空间preroting链,此时报文ip为cip,目标为vip

2.prerouting检测发现数据包目标ip是本机,将数据包送到input链

3ipvs对比数据包请求是否为集群服务,如果是,修改数据包的目标ip 地址后为后端服务器的ip地址,然后将数据包发送给POSTROUTING链,此时报文为cip,目标报文为rip

4.POSTROUTING通过选路,将数据发送给Real Server

5.Real Server 对比发现目标ip 为自己的ip,开始购进响应报文发回给Director Server,此时报文的源ip为RIP,目标ip为CIP

6.Director Server在响应客户端前,会将源ip地址修改为自己的VIP,然后响应给客户端,目标ip为 cip,此时源报文为vip,目标为cip

NAT模型的特性

1. Rs应该是私有地址,Rs网关必须指向DIP

2. DIP和RIP必须在同一个网段内

3. 请求和响应报文都应该经过Director Server,高负载场景中Director Server容易成为性能瓶颈

4. 支持端口映射

5. Rs可是使用任意操作系统

6. 缺陷,对Ds压力会比较大,请求和响应都需要经过ds 

 2.NAT模式实战---环境准备

1.环境规划

角色 作用 ip
NAT 负载均衡调度器DS

内网:(DIP 192.168.1.45)

外网:(VIP 192.168.10.143)

web01 真实web服务器Rs 192.168.1.200
web02 真实web服务器Rs 192.168.1.201
dns 用来解析各主机的域名和ip地址 192.168.1.46
client 测试

2.克隆主机,生成nat模式的机器

给NAT主机增加一张网卡,命名为ens36,自动或者手工获取ip均可,理论上nat对应ds服务器应该有两张网卡(vip,dip)vip对外服务,需要使用公网ip,dip内网局域网,使用虚拟机使用仅主机模式,也可以用桥接模式和nat模式都可以。

1.设置主机名称
[root@localhost ~]# hostnamectl set-hostname nat
2.更改ip地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="89a57924-1086-4ddc-a17b-556ecc80725e"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.1.45
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=8.8.8.8
DNS2=114.114.114.114
[root@localhost ~]# systemctl restart network
3.添加网卡

额外添加一张网卡,选择对外提供服务的桥接模式或者nat模式,选择桥接模式(ip不同)

4.查看网卡

5.修改网卡配置文件
#复制ens33的网卡文件作为ens36的网卡模板
[root@nat ~]#  cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts//ifcfg-ens36
#获得uuid
[root@nat ~]# uuidgen
ea4b53e2-8cc3-4818-8c6a-4b150fdef8d4
#编写ens36的网卡文件
[root@nat ~]#  vim /etc/sysconfig/network-scripts//ifcfg-ens36
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens36"
UUID="ea4b53e2-8cc3-4818-8c6a-4b150fdef8d4"
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.10.143
NETMASK=255.255.255.0
6.时间同步
#下载服务
[root@nat ~]# yum -y install ntpdate
[root@nat ~]# yum -y install ntp
#启动服务
[root@nat ~]# systemctl start ntpd
[root@nat ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
#时间同步
[root@nat ~]# ntpdate cn.ntp.org.cn
13 Aug 16:08:51 ntpdate[2248]: the NTP socket is in use, exiting
7.停用其他服务
#停用SELINUX
[root@nat ~]# setenforce 0
[root@nat ~]# sed -i '/SELINUX=enforcing/cSELINUX=disabled' /etc/selinux/config
#停用防火墙
[root@nat ~]# systemctl stop firewalld
[root@nat ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
#停用NetworkManager
[root@nat ~]# systemctl stop NetworkManager
[root@nat ~]# systemctl disable NetworkManager &>/dev/null
8.添加web服务

提前设置主机名称,关闭防火墙,固定ip地址,关闭SELinux,关闭NetworkManager。

web01:192.168.1.200

web02:192.168.1.201

1.安装nginx
[root@web01 ~]# yum -y install nginx
2.修改index.html文件
[root@web01 ~]# echo "web===========01" > /usr/share/nginx/html/index.html
[root@web01 ~]# nginx

 

3.时间同步
[root@web01 ~]# yum -y install ntpdate
[root@web01 ~]# yum -y install ntp

[root@web01 ~]# systemctl start ntpd
[root@web01 ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@web01 ~]# ntpdate cn.ntp.org.cn
13 Aug 16:17:07 ntpdate[1741]: the NTP socket is in use, exiting

web02做以上同样的操作 。

9.配置dns服务器

web01        192.168.1.200 

web02        192.168.1.201

nat        192.168.1.45

Ds        192.168.10.143

dns服务器也是提前设置主机名称,关闭防火墙,固定ip地址,关闭SELinux,关闭NetworkManager。

1.安装bind
[root@dns ~]# yum -y install bind
2.配置主配置文件
[root@dns ~]# vim /etc/named.conf

 

3.配置区域配置文件

进入配置文件,在命令模式下输入:set number显示行号,将12-18行可复制(:12,18 co 42)到42行后面进行编辑。

[root@dns ~]# vim /etc/named.rfc1912.zones   #正向解析
...
zone "qingtang" IN {
        type master;
        file "qingtang.zone";
        allow-update { none; };
};
4. 配置区域数据配置文件
[root@dns ~]# ls /var/named/
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@dns ~]# cd /var/named/
[root@dns named]# cp -r named.localhost qingtang.zone
[root@dns named]# vim qingtang.zone 

5.检查配置文件
	[root@dns named]# named-checkconf /etc/named.conf
	[root@dns named]# named-checkconf /etc/named.rfc1912.zones
	[root@dns named]# named-checkzone qingtang.zone qingtang.zone 
	zone qingtang.zone/IN: loaded serial 0
	OK
6.启动服务
[root@dns named]# systemctl restart named
7.时间同步 
[root@dns ~]# yum -y install ntpdate
[root@dns ~]# yum -y install ntp
[root@dns ~]# systemctl start ntpd
[root@dns ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@dns ~]# ntpdate cn.ntp.org.cn
13 Aug 19:05:02 ntpdate[5446]: the NTP socket is in use, exiting
10.配置client客户端测试机
#指定dns服务器
[root@client ~]# echo "nameserver 192.168.1.45" >> /etc/hosts

3.NAT搭建

1.nat服务器配置

1.安装ipvsadm
[root@nat ~]# yum -y install ipvsadm
2.清空以往的规则
[root@nat ~]# ipvsadm -C
3.查看规则
[root@nat ~]# ipvsadm -L -n
4.新增规则
[root@nat ~]# ipvsadm -A -t 192.168.10.143:80 -s rr
5.添加主机
[root@nat ~]# ipvsadm -a -t 192.168.10.143:80 -r 192.168.1.200:80 -m
[root@nat ~]# ipvsadm -a -t 192.168.10.143:80 -r 192.168.1.201:80 -m
6.设置ip转发
[root@nat ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward=1
7.设置生效
[root@nat ~]# sysctl -p

net.ipv4.ip_forward = 1

2.web服务器网关配置

[root@web01 ~]# route del default
[root@web01 ~]# route add default gw 10.1.1.100
[root@web02 ~]# route del default
[root@web02 ~]# route add default gw 10.1.1.100

网站公告

今日签到

点亮在社区的每一天
去签到