IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> [高可用系列|LVS]LVS NAT模型详解 -> 正文阅读

[系统运维][高可用系列|LVS]LVS NAT模型详解

背景

?前面一章我们整体介绍了LVS的概念和功能。其中提到了LVS的几个关键的工作模型(NAT,DR,TRUN),这一章我们就针对NAT工作模型来具体介绍,同时通过一套基础架构实验来帮助理解。

上一章:LVS详解

LVS? NAT模型介绍

?????????Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP 地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的数据包经过调度器,导致调度器压力过大。 ?

?

??数据包流转的过程如上图所示:

(1)当用户请求到达DirectorServer,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP

(2) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链。

(3) IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP ,在这个过程完成了目标IP的转换。

(4) POSTROUTING链通过选路,将数据包发送给Real Server。

(5) Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP 。

(6) Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP。

?补充:

(1)lvs-nat的本质是多目标ip的DNAT,通过将请求报文中的目标地址和目标端口修改为后端real server的ip和port

(2)DIP和Rip建议在同一网段(也可以不在),

(3)请求报文和相应报文必须经过lvs服务器,因此lvs就会成为该架构的瓶颈

(4)支持端口映射可以更改请求报文的目标端口

(5)lvs服务器必须是linux系统,real server可以为任意os系统

LVS-NAT 实验?

?转发流程:

? ? ? ? 1.? Client端发送请求到路由器;
? ? ? ? 2.? 由于是linux系统模拟的路由器,因此路由器节点开启ip转发功能,同时通过iptable设置端口映射,将访问路由器的10.10.10.129的信息映射到后端的LVS的192.168.10.200;
? ? ? ? 3.? 到达lvs节点之后,通过lvs配置的LVS-NAT模型(四层负载)转发发哦NGinx节点;
? ? ? ? 4.? 到达Nginx节点之后,通过Nginx的七层负载均衡转发到web节点

?1.? ? ?网络规划

设备ip网关
Client10.10.10.128/24-
Route-link110.10.10.129/24-
Route-link2192.168.10.10/24-
LVS-vip192.168.10.100/24192.168.10.10
nginx-1192.168.10.12/24192.168.10.100
nginx-2192.168.10.13/24192.168.10.100
web-1192.168.10.15/24-
web-2192.168.10.16/24-

?2.? ? Route节点配置

? ? ? ? 配置Route节点的路由转发,以及配置设备ip。结合实际生产环境路由器上面需要开启端口映射。

##  由于是linux模拟的路由器,设置Route节点ip转发功能
root@Route:~# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
root@Route:~# sysctl -p


##开启端口映射
root@Route:~# iptables -t nat -A PREROUTING -d 10.10.10.129 -j DNAT --to 192.168.10.200

?

?3.? ? LVS 节点配置

? ? ? ? ?1.? ?配置路由转发;
? ? ? ? 2.? 配置IP地址,网关指向路由;
? ? ? ? 3.? 配置keepalived设置vip。
? ? ? ? 4.? ?配置ipvs转发

3.1? ? ? ? 配置路由转发

##  主备节点均配置

root@Lvs-Master:~#echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
root@Lvs-Master:~# sysctl -p

3.2? ? ? ? 配置ip和网关

?

?3.3? ? 配置keepalived

###Master节点

root@Lvs-Master:~# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen
   }
   notification_email_from xhz@qq.com
   smtp_server 192.168.65.129
   smtp_connect_timeout 30
   router_id keepalived-MASTER
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    garp_master_delay 10
    smtp_alert
    virtual_router_id 51
    priority 100
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.200
    }
    
}

##Backup节点
root@LVS-Backup:~# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen
   }
   notification_email_from xhz@qq.com
   smtp_server 192.168.65.129
   smtp_connect_timeout 30
   router_id keepalived-MASTER
}


vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    garp_master_delay 10
    smtp_alert
    virtual_router_id 51
    priority 10
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.200
    }
}

?3.4? ? 配置ipvs转发

##  主备节点均要配置
##192.168.10.12和192.168.10.13节点为后端的nginx服务器
##192.168.10.200为VIP

root@Lvs-Master:~# ipvsadm -A -t 192.168.10.200:80 -s rr
root@Lvs-Master:~# ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.12:80 -m
root@Lvs-Master:~# ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.13:80 -m

root@Lvs-Master:~# 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.200:80 rr
  -> 192.168.10.12:80             Masq    1      0          0         
  -> 192.168.10.13:80             Masq    1      0          0   

4.? ? Nginx节点配置

? ? ? ? ?Nginx配置七层负载均衡!

root@proxy-1:/etc/nginx/conf.d# cat web1.conf 
upstream lvsservers {
	server 192.168.10.15:80;
	server 192.168.10.16:80;
}

server {
	listen 80;
	server_name lvs_test.com www.lvs_test.com;
	root /https;

	location / {
		proxy_pass http://lvsservers;
		include proxy_params;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}

}

?5.? 配置web节点

##  web1节点
root@web-1:~# cat /etc/nginx/conf.d/web.conf 
server {
	listen 80;
	server_name lvs_test.com www.lvs_test.com;

	location / {
		root /https;
		index index.html;
	}
}
root@web-1:~# cat /https/index.html 
web1
root@web-1:~#


##web2节点
root@web-2:~# cat /etc/nginx/conf.d/web.conf 
server {
	listen 80;
	server_name lvs_test.com www.lvs_test.com;

	location / {
		root /https;
		index index.html;
	}
}
root@web-2:~# cat /https/index.html 
web2
root@web-2:~#

6.? ?测试

?前面在介绍keepalived说过,keepalived是为了LVS而生的,因此我们在配置lvs四层转发的时候可以直接通过keepalived的配置文件进行设置,后续我们在说DR模型的时候,在着重通过该方式进行实验配置。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:56:35  更:2022-09-13 11:59:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:33:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码