抓包整理————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的选路和分片。