抓包整理————ip 协议二[十三]

前言

介绍一下什么是nat协议和napt协议,和简单带一下LVS。

正文

什么是nat(Network Address Translation) 协议呢?

比如现在你家分配了一个ip,但是你家有10个设备,那么这10个设备都得联网啊。

那么这个时候就需要 nat 技术来实现。

简单的说就是路由器会记录当我们10.1.1.2 发送的时候,会使用120.231.146.90,当广域网机器访问120.231.146.90 的时候路由器就会将数据转发到10.1.1.2上。

同样10.1.1.3 也是这样的,映射到120.131.146.91。

这里就有人问了,那么10.1.1.4怎么访问呢?也就是这个映射表是动态的,当10.1.1.4访问的时候就会等待映射一个外网的ip,比如当某个映射过期之类的。

但是如果这样的话,那么想想网络就有点慢了。

但是实际上现在使用的都是napt(Network Address port Translation)。

看这个映射表:

假设10.1.1.2 这台机器是我们的机器,我们发起一个请求假设端口是5000,那么映射到120.231.146.90 7000 端口,这样的话就可以有很多请求可以映射到。

因为我们每台机器访问外网都不会说很多端口都同时使用,但是如果是那种3台网络频繁访问估计问题还挺大的,但是服务于家庭没有问题的。

那么来介绍一下什么是LVS(linux virtual server)。

下面的是lvs的nat 模式下的负载均衡规则。

比如一个用户访问我们一台机器假设是80端口吧,然后要实现负载均衡可以怎么样呢?

可以记录用户的端口 7000 、120.231.146.90 映射到负载均衡机器的8000端口, 然后自己机器的8001端口又映射到服务1的80端口。

当服务1的80端口返回负载均衡机器的8001端口的时候,这个时候映射表找到了,然后将端口换成80端口发给120.231.146.90 的7000端口。

所以这样一看效率很慢的。

这里全部以负载均衡服务器举例。

首先80端口的数据,要转换到8001发给服务器一的80。
然后服务一80回来到8001端口,要转换8001到自己机器的80,然后发送给120.231.146.90的7000。

这样转换的结果就是7000 、120.231.146.90 到了服务器一的80端口。

这么说有点绕哈。

其实就120.231.146.90 7000 到120.231.146.91 80 转到了 10.1.1.2 8001 到 10.1.1.3 80。

反之也是。

下一节ip的选路和分片。

posted @ 2022-11-16 00:35  敖毛毛  阅读(74)  评论(0编辑  收藏  举报