00:00
咱们接下来呢,进行我们的iOS DR模式的讲解。那首先同理,在这里我们会看到一个用户,它的地址是幺九二点幺六八点幺点两版。那这里会有负载登录器,那它的地址是幺九二点幺六八点幺点一百,以及三台不同的真实服务器。分别的地址是121314。你会发现,诶,这里我还写了一个幺九二点幺六八点幺点一百的地址信息。那这个有什么关系呢?我们先把它给放在这里,我们先不提。好。到时候我们详细讲解的时候会给大家去说明。整个拓扑环境呢,就是这么一种情况,我们会发现,不管是负载度器也好,还是我们的真实服务器也好,它都是处于同一个广播域的。这个概念非常重要。必须处于同一个广播域。那这里的客户呢,我虽然走的也是一个私有地址,但是大家可能会去问对吧?那真实的生态环境中,我们一定是通过公网去访问的,那这样的话怎么办呢?
01:09
我为什么要选择一个私有地址给大家讲解呢?因为我们这里不涉及到我们对应的路由器的转发了,不然的话整个数据报文的转换还是比较困难的。一旦我们能够把这种单单我们的广播域的环境给做完以后,其实再加个路由器,是不是就能实现我们的公网访问,这是完全没有问题的,对吧?我们先从基础的开始拉。那从用户发起,第一个数据报文,幺九二点幺六八点幺点两百,发到幺九二点幺六八点一点一百,也就是我们在台负载路器的身上以后那数据报完会经过我们的。交换机传输至我们的负载电路器,那这个过程肯定是没有问题的,对吧。那一旦到我们的负载容器身上以后,他会判断,哎,你这个地址是不是找的是我的100啊,你的端口是不是八零啊,诶都是,那我就会进行对应的负载路器的选择。
02:06
也就意味着,我会把这里的数据报文转发至后端真实服务器的其中一台机器上,或幺幺啊,或幺二,或幺三,或幺四。好,那这里会有一个问题对吧,怎么转。难道是改他的目标地址吗?我们先改目标地址,我们试一下对吧,把目标地址改到幺二,用八零的端口,那幺二这台机器肯定能够收得到,因为都在同一个模域,我们的地址又没有问题,数据包格式有没有问题,我肯定能收集到。到了以后呢,我是不是要去回信啊,1.12倒过来对吧,当圆一点两版当目的。那然后呢,因为他的目的找是200,所以我会把数据包A发给200。大家看到问题了吗?
03:00
跟第一种大的模式是不是又出现了相同的类似的问题,我的语言和我的目标对应不上。我不可能建立联系。那怎么办呢?同理对吧,我们回退。好,那我现在不这样去改了。那我怎么改呢?我改成我们的。目标mark。因为我们都是处于同一个广播域之中的。所以我不仅可以通过我们的三层轴,也可以通过我们的二层轴,对吧。其实这样讲有一定的问题,对吧,我们其实走的就是二层,也就意味着我现在把你的目标mark直接给你标记成S1的目标mark。能听懂我的意思吗?那数据报文是不是走的是二层的话,自然而然会交给我们的R1这台服务器。那数据包交给他以后,我们要想第一个问题就是他能不能收得到。
04:01
你说诶,这有什么收不到的,他不是用的目标mark吗?目标mark不是与之匹配唯一对应吗?肯定能收得到啊。我们先问大家第一个问题,就是如果有一天一快递打电话给你,诶,是张三吗?其实你要李四对吧?是张三吗?不是。那我这里有个快递,你要不要对吧?那有很多同学说了,诶送上门的快递凭什么不要。那这是我们个人的思想对吧?其实对于扶起来说,他比较单纯,是我的就是我的,不是我的我坚决不要,你的目标明明找的是100的IP,我只是幺二,虽然你的通过mark找到了我,但是这个数据包不是我的,我不能要。但是在我们的现在的环境中,我们是不是想要他要的?就应该给你的,你凭什么不要?所以我们会为我们的真实服务器。再添加一个一点一百的IP地址,并且我们想办法把它给隐藏起来,什么含义呢?就像我们刚才说的对吧,明明你叫张三来了一个李四的包裹,问你要不要。
05:14
你说哎,按照什么轮椅啊,按照道德啊,不能要,那怎么办呢?我给你起一个小名。你小名就叫张三,你大名叫李四,小名叫张三,来了一个包,我说给张三的,你要不要?诶,这是我的小名,张三的,对吧?我收下了。就这么一个原理。但就会涉及到别的问题,名字还好对吧,大家都有冲突的,但IP地址在同一个广播域之中,我们如果相互冲突,会出现什么问题啊?我是100,我的mark克是多少,他说他也是100,他的mark是多少,那我们交换机是不是一直在刷新刷新刷新刷新刷新刷新刷新给他累死了,当然也会出现,哎,我这个IP网络中出现冲突,你不能用。
06:01
不管怎么说,我们肯定没办法正常的工作。所以我应该想办法把这个IP给隐藏起来,只让S1自己知道就够了,并不想让别人知道。那这个可以通过我们的RP的通讯行为去控制,后面人在配实验的时候会给大家去讲解,我们先别急好吧,好,那这样的话,我们通过mark找到了马S1真实服务器以后。那R1呢,又会拿着自己的100的IP与之返回数据。那这样的话被传递到我们的客户机,与之建立相关联。好,那同理,我们再把整个实验给大家梳理一下它的一些特点,第一个集群节点处于同一广播域之中。这个应该很好理解了,对吧,因为我在这里传输的时候要借助我们的目标mark,目标mark如果你不在同一广播域之中的话。
07:03
我怎么通过我们的二层马去通讯啊,是这个意思吧,非常有特点的这么一个,呃,这么一个特性,需要大家注意一下啊,非常重要,好,下一个真实服务器,将网关指向真实的路由器。什么叫真实的路由器啊?在我们第一种环境中,我们是把网关指向了负载调度器,在这里你可千万别指道负载调度器了,因为负载调度器在这里扮演的并不是一个路由的角色,对吧?它只是做了一个二层数据报文的修改,需要大家注意一下,好,下一个负载漏器只处理入站请求,压力最小,那我们看一下。首先,客户端的访问流量应该是A叫交换机,交换机发给我们的负载器,负载器修改它的目的,Mark找到我们的真实服务器。真实服务器拿我们的数据报文进行返回到真实到我们的交换机,交换机我们把它转换到客户端,也就意味着这里你会发现,诶,入站的时候是从D进去的,但出来的时候是由R1出来的,所以这里的D压力非常之小。这也是。
08:16
我们的职业路由模式的非常大的一个特性,这也是为什么它是在三种方案中它的并发量最大的原因所在。干的事越少。它是不是压力越小,压力越小,那是不是并发越大,非常好理解对吧。好。下一个不支持端口映射,我们之前说nat模式是支持端口映射的,原因是它在进行转换的时候修改的是我们的d nott对吧?Dnat在去修改目标地址的时候,是不是还修改了目标端口啊?那在这里呢,D模式呢,它不支持我们并没有利用到DNA的模式,我们修改的是R。那对于我们的协议层我肯定是碰不到的,所以端口是没办法进行修改的,需要大家注意一下,我访问的端口是八零,你必须是八零,我访问的43,后端的真实服务器必须是43。
09:12
能理解我的意思吧,非常重要的一个特性,对吧?好,下一个负载登陆器必须是Linux操作系统,这个我们就不再强调了,对吧?真实服务器最好是Linux,什么叫最好?就是能是Linux,你就用Linux。原因是什么呢?我们刚才也说过了,我们可以通过RP的通讯行为去控制,让我们的100的这个IP,这里的100的这个IP让他闭嘴,那这个在Linux中,在我们的2.6内核以后是可以做到的,那在Linux中并没有给我们开放这个权限,需要大家注意一下,那你说如果没有开放的话怎么办呢?我们可以在交换机这里做所谓的IP mark的对应绑定即可。好。那这个呢,就是我们的LS模式的DR模式的总结。
10:05
同理,好好的把这个模式,它的整个的访问路径,大家在脑海中把它梳理一遍,最好能用自己的话把它完整的描述出来,非常重要。那接下来我们继续往后看看我们的最后一种模式,LY创模式。首先,这张图是不是看起来就比较凌乱啊?一个公网的用户公网IP,一个北京的负载调度器公网IP,一个广州的真实服务器二公网IP,上海的真实服务器一公网IP。也就意味着客户端公共IP比较理解,负载器,正式服务器必须都拥有公共IP,或者能够被公共IP路由到,能理解我意思吗?就间接的用我公共IP也是可以的。好,首先客户端要发起,数据报完了原是自己的IP地址,目标是我们的负载调度器的IP地址。
11:04
发过来。那数据包肯定是能够到我们的负载容器的,这个没有问题,对吧?负载器呢,要根据自己的负载调度的规则,把目标地址,目标地址改写为后端服务器的真实服务器的其中的一个地址,当然还是根据自己的算法去选择的,对吧。那我们去看。改写这里选择的是33.4 4.5 5.66,也就是我们的广州服务器的公网地址。那数据包是不是自然而然去找广东的服务器啊,广州服务器拿到这个数据包的时候,是不是要返回对应的数据啊。拿语言和目标进行对调,对调完成以后,那是不是要去找目标地址啊,你会发现诶不对了,对吧。目标地是多少,11.22.33.1.44,也就是意味着这个数据包是不是去不了啊,根本到不了,根本到不了,那他是不是相当于数据霸王又回来了。
12:10
这什么鬼东西对吧,所以这样肯定是不行的。这也是我们创模式中比较有特点或是比较,呃,怎么说呢,有想法的这么一种设计。我们在这里可以引入一个包裹的概念。相信这个东西大家都不陌生对吧。每到双11的时候,我相信大家剁手剁手都比较狠是吧,那我也是,那对于包裹来说呢,我们可以知道它其实有很多层包装的,我不知道大家见没见过,也就意味着可能这个包裹最里面写的是你的详细地址。比如北京对吧,回龙观。什么什么什么地方多多多少号楼。那比如是我们的上硅谷教育对吧,这么一个绝对的地址,也就是谁都能找得到,但是我数据,但是我这个邮包发出来的时候并不是这样,我要在外面套好多层,比如第一层套的是什么,套的是昌平。
13:12
在最外层套的是北京。什么含义呢?我整个我们的包裹被打包完了以后,他只看最外层,诶发北京的好累,到北京以后啪把最外省的给撕了一看,诶发昌平的好嘞,再把到昌平以后再撕一看,发到最终的目的地的,那这样的话,每一层发起来是不是比较容易,这相当于就是我们现在要借助的这么一种技术。其实有点类似于我们的VPN对吧。好数据包的二次封装。也就意味着我在这里发出数据报文的时候,我并不是单单的去发这么一个数据报文,而是在外面再封装一个。听懂我意思吗?好,也就意味着元依然是44.55.66.77,目标我给它改成33.44.55.66。
14:06
那这样的话,数据报完是不是就能过了。那我发过来。发过来以后,我知道这个数据报文是有两层的。我并不能拿一层就当做最终的返回数据,所以我要先撕一层,撕完了以后我再拿。里边的这层,里边的这层。回信给我们的真实服务器,那这样的话是不是建立了完整连接?这种模式借助了我们的数据包的二次封装技术,就重新封到我们mark IP协议头部。耗费的资源,耗费的资源是比我们的nat模式稍微高一点的。而且这种方式其实用起来的话,嗯,怎么说呢,也不是那么好用,对吧,其实大家也可以看到上海一台,广州一台,北京一台,你觉得这种方式是不是。
15:00
不太友好啊,原因是什么?他们之间走的是不是都是公网网络,公网网络,公网网络典型的特点是不是就慢啊,没有我们失望来的快啊,客户明明都跟你的负载周期经历连接了,走的公网好不容易找到你了,结果你又发了一次公网链接,结果又发了一次公网链接。相信这个速度是不太理想的。能听懂我的意思吗?但是如果在一些特殊的环境中,比如你们确实跟我图上说的一样,对吧,广州北京啊,还有我们客户端之间都处于不同的地方,那你可以这样去做,完全没有问题。好,那这是我们的创模式。比较有想法的一种模式,对吧。接下来呢,我们去带大家把我们的创模式进行总结,我们先看第一点,叫执行所有节点必须直接或间接拥有公网IP,那这个比较容易理解了,对吧?我们刚才也说过,对于我们的节点来说,都需要散落在全国各地,在不同的地方,那如果我们通过我们的私有IP肯定是无法进行连接的。
16:06
那当然这里会有个概念叫直接或间接,直接讲本来来说就是我直接给他配一个公网IP,直接就可以访问,那间接呢,我们可能需要路由去映射啊,去转换啊,这种机制,这两个都是可以的。那第二个真实服务器必须将网关指向我们的真实网关处,因为它是拥有公网IP的,或者是直接或间接的,对吧?那如果你将网关指向了负载调度器,那它的数据报文都出不来和谈进行所谓的对应的负载访问。这个还是比较有重点。东西好,那下一个叫不支持端口映射。因为我们在这里呢,它需要对数据报文进行二次封装,如果端口进行转换的话,是不太便于呃进行修改的,所以在这里呢,它默认没有集成我们端口映射的功能,需要注意一下,也就意味着我们讲的这三种模式中,唯一有一个支持端口映射的,也就是我们的nat模式。
17:05
到时候会给大家进行演示。好下一个。DS还是必须开启隧道功能,那这个我们刚才也说过了,对吧,必须要重新对数据豹纹进行我们的mark啊,TC pip头部封装,不然的话是没办法进行这种呃创级别模式的负载均衡的。所以他们两边都必须支持,一边支持一边不支持,是不是也白搭啊,对吧,结果封了一层又一层,结果别人不知道,只是拿第一层的数据当做响应,那肯定是存在问题的。下一个入战由RS完成,出战由啊,入战由DS完成。下一个入站由DS完成,出站由RS完成,这个也比较容易理解对吧?好,那入站呢,是要经过我们的负载登陆器的负载登陆器进行二次封装以后,转发至我们的正式服务器,那正式服务器再去根据我们的第二层报文返回给客户。
18:04
真实数据,那这样的话完成整个链路的负载。下一个。负载登录器必须是005操作系统,真实服务器可以随意。这个也比较容易理解,对吧,负载路由器iOS安装的iOS,我们是不是不止一次的强调了,它叫Linux virtual server,那Linux虚拟服务你装个Windows像什么样的呢?对吧,那这肯定是不行的,那真实服务器的话,只要支持我们的隧道模式的功能的这么一些操作系统都可以。那基本上现在我们市面上能够见到的操作系统,没有说不支持隧道功能的,这已经是标配啊,都没问题。仁义。好,压力较大。原因是我们虽然入战是由我们的DS完成,出战于我们的R完成,但是它需要进行大量的数据包的二次封装以及解封的过程,所以呢,压力还是比较大的。这种模式下。那这个呢,就是我们的创模式的这么一些特点的总结。
19:03
当然创模式是在我们三种模式里比较有特点的一种模式,大家也能发现对吧?好,那这种模式呢,可能用途不是那么广泛,所以呢,我们还是。这样子就给大家构建的是我们的DR模式以及naa模式,那创模式呢,就不给大家去构建了,那有兴趣的话可以与我讨论,那讨论的方式可以联系我们的上硅谷对吧?好,那就这样。那这节课呢,我们把iOS的三种不同的工作方式的原理,包括它的数据包的传递方式都已经给大家去详细的说明了,那大家好好的把这章的内容好好的去理解一下,吸收一下,那这节课我们就到这里,下节课再见。
我来说两句