三未服务器(3u服务器是什么意思)「san服务器」

  作者TimCrofts,译者大愚若智

  泉源:infoq

  为庆贺一年一度的天下IPv6日(始于2011年6月6日),LinkedIn盼望用一种别具寄义的方式怀念这一天。已往多个月以来,我们忙于在本身的数据中心内启用IPv6,为此我们计划了全新的体系布局,并在网络、体系、工具等方面做好充实的预备,终极于6月6日在一个过渡(Staging)环境中乐成启用了IPv6。此番办法是在全部数据中心内实现全功能IPv4/IPv6双堆栈的一个紧张里程碑,在顺遂实现这一目标后,下一步将彻底弃用IPv4。

  在这一系列文章中,我们将先容从IPv4迁徙至IPv6必要思量的题目,尤其是诸如LinkedIn如许的大型企业在迁徙过程中大概碰到的各种挑衅。但起首我们想先容一些有关IPv4和IPv6的根本信息,以及迁徙过程中必要思量的根本原则。

  IPv6简史

  IPv6的整个发展史与IPv4的发展密不可分。IPv4于1981年被互联网工程任务组(IETF)正式建立,1992年,互联网社区发起对IPv4寻址方案举行扩展。IETF为此创建了一个工作组;1996年,一系列名为哀求注解(RFC)的文档正式建立了IPv6(每个文档名称以RFC开头,后跟用于区分差别文档的编号)。

  与此同时为了缓解IPv4地点空间即将耗尽的题目,他们为内部私有网络保存了三个公用IPv4地点段(RFC1597)。大部分构造只必要将少量服务袒露到互联网,因此对公用IP空间的需求着实并不大。通过在构造内部利用私有IPv4地点段,进而将对公用IP空间的需求降至最低,即可镌汰所需IPv4地点的数量。业界通过这种方式将公用IPv4地点空间耗尽的那一天推迟了多年。

  1996年,IETF正式颁布了RFC1918文档,该文档是对RFC1597的改进,此中谈到了利用私有或公用地点空间的装备相互通讯的差别需求。三年后,1999年发布的RFC2633中提出的网络地点转换(NAT)技能可以主动对来自私有网络的互联网数据包举行转换,将其转发至公用互联网,并将从公用互联网收到的相应转换到私有网络。内部装备可以借助NAT与公用网络中的装备通讯,但无法实现反向通讯。但是NAT造成了一些新题目。比方当两家公司归并时,由于在归并前利用了雷同的私有IPv4地点段,偶然大概必要办理内部路由辩论题目。全部私有IPv4流量偶然间看起来都像是来自同一个公用IPv4地点,因此作为公用服务供应商,假如制止某个IPv4地点的通讯,大概会影响到数千个装备或用户。

  1995年底发布的RFC1883意味着IPv6期间正式开始。IPv6最初只摆设在实行室内某些操纵体系和路由器中,随后以此为底子构建了一些公用的实行性网络。随着更多RFC连续发布,办理了越来越多的实现和其他题目后,IPv6网络渐渐到达生产环境中利用的质量要求,但直到2008年2月,互联网编号分配机构(IANA)将IPv6地点参加域名体系(DNS)的根地区后IPv6才算正式登场,随后IETF在同年三月的集会会议中举行了一次IPv4停用实行。在大概一小时的实行过程中,工程师测试了在不利用IPv4的环境下可以在互联网上实行的操纵。此次实行后,很多软件都发布了相应的补丁。

  2011年6月6日,InternetSociety发起了“天下IPv6日”活动,很多大公司在24小时的活动期间测试了本身网站在IPv6(作为对IPv4的增补)环境下的表现。此次活动一年后的同一天被称作“IPv6发布日”,很多公司在这一天里将本身的网站切换至IPv6并不停相沿至今。LinkedIn的网站在2014年开始正式可以通过IPv6访问。

  本日,IPv6流量已经占到环球互联网流量的10%以上,一些国家的占比更高,比方美国已经到达30%以上,比利时高出了50%。一些移动网络已经以IPv6为主,占到流量总数80%以上。Apple也已公布全部移动应用必须可以或许支持纯IPv6网络,并利用NAT64(与NAT雷同,但用途是将IPv6数据包转换为IPv4格式)访问互联网上依然利用IPv4的部分。Facebook、Akamai以及LinkedIn还分别发如今IPv6环境下端到端利用应用程序(尤其是移动应用程序)的速率也有了很大提拔。

  IPv4和IPv6的重要差别

  IPv4地点包罗32位,IPv6地点包罗128位。由于地点更“大”,IPv6标头也更大,但其长度是固定的,IPv4标头封包长度是可变的。更紧张的是IPv6不再必要校验,一样平常来说校验工作是在硬件层面或上层实现的。这种计划有助于低落路由器的负载。末了,在IPv6中路由器不必要拆分数据包,假如必要转达的数据包太大,路由器会向发送方发出一个ICMPv6PacketTooBig(PTB)信息,让发送方以得当的巨细重新发送该数据包。这些改进低落了路由器处理惩罚每个数据包时的负荷,进而进步了路由器工作服从。

  IPv6的体系布局确保了装备无需会合化服务,即可通过无状态地点主动设置(StatelessAddressAutoConfiguration,SLAAC)技能得到本身的IPv6地点。IPv6有两种重要范例:链路范围(Linkscope)和环球范围(Globalscope)。本地IPv6地点只能在当前网段内利用,环球地点通常来自路由器所宣告的网络,并会连合接口的MAC地点。IPv6中也存在一种会合化的服务:DHCPv6,该服务基于动态主机设置协议(DHCP),但为了与SLAAC共存举行了少量改动。

  迁徙至IPv6

  迁徙至IPv6的过程中产生了一种风趣的“22条军规(Catch-22)”:为了顺遂迁徙必须将最盛行的网站迁徙至IPv6,但通常来说小规模网站迁徙至IPv6的过程要比大型网站的迁徙轻易得多。IPv6网络上一台服务器可手工设置并快速完成,但大型网站通常包罗很多面向IPv4的路由器、负载均衡器、防火墙、监控工具,以及各种装备和软件,这些东西必要举行相应的变化才华用于IPv6。

  通过顺遂迁徙大型网站通常必要的各种特别装备和软件,天下IPv6日和天下IPv6发布日资助互联网社区办理了很多题目。路由器、负载均衡器,以及防火墙渐渐应用了各种修复程序,地理位置的分部也渐渐美满。支持IPv6的Web缓存服务越来越多,Packettoobig(PTB)信息已经可以由安全筛选器处理惩罚,启用IPv6的DNS底子布局可以实现更快速的相应,除此之外尚有很多其他改进。

三未服务器(3u服务器是什么意思) 三未服务器(3u服务器是什么意思)「san 服务器」 行业资讯

  然而将内部网络转换为IPv6则是一个截然差别的故事:这一过程必要很多其他组件相互配归并必要可以或许伸缩。对于大规模摆设,就算RFC1918空间也不敷以对全部内部网络需求举行寻址。每个国家的办公室都必要有本身的网络,云平台也必要大量盘算机,因此对于大型网络来说,就算10.0.0.0/8也显得不敷大,地点空间的重叠也会成为一个贫苦事。利用诸如NAT等办理方案对地点空间举行转换可以缓解此类题目,但这种办理方案也会产生一系列新题目,比方应用程序内嵌入的IP地点,通过伸缩处理惩罚更大数量的转换,以及由于引入“NAT防火墙”造成的各种安全题目。

  在实际环境中,可以直接关闭路由器的IPv4功能并启用IPv6,但大部分环境下这种做法并不可行。我们以为内部网络举行过渡的最佳战略是起首迁徙至双堆栈环境,并通过妥善订定的“镌汰”战略彻底弃用IPv4。如许各人可以有更多时间认识IPv6,并将本身的工具、软件,以及流程渐渐迁徙至IPv6,颠末如许的步调,只有很少一部分流量必要通过IPv4处理惩罚。然而这种方式最大的不敷在于,为双堆栈环境提供支持不但更复杂,而且维持两个网络的大量运维工作会拖累新服务的摆设速率,假如两种协议未能同步还大概造成新的题目。IP地点的管理也会变成一种复杂的任务,由于IPv4和IPv6地点空间的映射通常还必要很多其他功能,比方ACL的实现、路由汇总、负载均衡器等。

  因此有须要面向将来做好预备并尽快动手IPv6的迁徙,随后即可按部就班将越来越多的流量顺遂迁徙至IPv6。由于为两个网络栈提供支持会导致工作复杂度提拔将近一倍,一旦迁徙至IPv6还必要尽快彻底弃用IPv4。

  LinkedIn的IPv6迁徙

  双堆栈环境可以资助你循规蹈矩地将服务器迁徙至IPv6。一些应用程序的迁徙难度大概略低,比方某些核心UNIX服务的迁徙就是一种唾手可得的工作。

  6月6日,我们决定开始迁徙本身的某个过渡环境,尤其是LinkedIn用于在发布“新”服务前举行测试利用的过渡环境。我们筹划为该环境中全部体系添加一个环球IPv6地点,并对尽大概多的核心服务举行迁徙,借此进步IPv6网络流量的比例。

三未服务器(3u服务器是什么意思) 三未服务器(3u服务器是什么意思)「san 服务器」 行业资讯

  我们必要确保此番迁徙不会粉碎尚未测试的服务,为了实现须要的控制,我们利用了IP双堆栈环境的一些根本特性。比方,我们的大部分软件是通过Java开辟的,默认环境下Java应用程序在运行时必要通过一个声明(Declaration)宣告本身在利用IPv6。因此我们无需担心软件忽然发现IPv6并自行开始利用该环境。我们还决定不为任何利用环球IPv6地点的盘算机的主机名添加AAAADNS记录,如许利用其他语言发起的毗连就不会通过IPv6运行。借此可以确保其他软件、工具,以及实用程序可以像从前一样继承通过IPv4运行,整个环境不受任何关扰。

  从那天下战书开始,我们在几分钟内为高出1500个体系添加了静态的环球IPv6地点。对于任何此种规模的体系,主动化机制都非常紧张,可以资助我们快速将变动摆设给整个体系。在确认通过IPv6正常运行没碰到任何错误后,我们为这些主机增长了AAAA记录,借此这些操纵体系将首选利用IPv6而非IPv4。全部这些工作完成后,开始将某些核心底子布局服务(DNS、syslog、SMTP、NTP、会合身份验证等)的流量从IPv4迁徙至IPv6。在大概一个小时内,我们通过受控的方式将底子布局内的多个此类服务切换至IPv6网络中。将来几个月里,还将继承将更多底子布局服务迁徙至IPv6,同时也将积极让Rest.li等自行开辟的软件框架优先选择利用IPv6而非IPv4。

  除了上述工作,为了向成员提供服务,我们如今还在建立一个全新数据中心。这个数据中心在计划伊始就充实思量了IPv4和IPv6双堆栈,别的还包罗其他很多先辈技能。这个数据中心在LinkedIn内部被称之为ProjectAltair,之前的很多博客文章中曾经举行过先容。

  借助启用IPv6的过渡环境和生产环境,我们可以将越来越多的内部流量迁徙至IPv6。在6月6日的首轮工作乐成实现后,对于将其他内部环境迁徙至IPv6我们也更加自大。

  一旦顺应IPv6流量后,该开始思量弃用IPv4并让数据中心运行在纯IPv6环境下。这个目标并不迢遥,我们筹划在2017年内全面实现。同时为IPv4和IPv6提供支持意味着必要付出将近两倍的工作量,因此一旦决定采取IPv6,必要确保过渡过程尽大概短。然而很多供应商和软件产物如今并不能全面支持IPv6,为了实现我们终极的迁徙目标,还必要针对这种环境采取须要的步伐。

  LinkedIn内部创建了由“IPv4处理惩罚专家”构成的“AAAA团队”。这是一个很赞的技能项目,我们也盼望能有更多雷同我们如许的构造将本身的数据中心迁徙至IPv6,只有通过这种团体相助的方式才华顺遂办理妨碍数据中心和云环境全面采取IPv6的遗留题目。请参加我们一起为终极目标贡献本身的力气。

  在这一系列文章的第1篇中(以上内容),我们先容了将内部网络迁徙至IPv6的缘故起因。领英(LinkedIn)网站从2014年起即可通过IPv6公开访问,而我们的员工在这之前早已可以通过IPv6访问公众互联网。固然很早从前我们网络中的大部分组件就已支持IPv6,但直到近来内部数据中心依然运行在IPv4下。本文我们将从网络运维的角度先容为什么必要创建同时包罗IPv4和IPv6的环球网络,以及开始在本身的数据中心内启用双堆栈环境,并等待着有朝一日能彻底弃用IPv4的过程中所面对的挑衅。

  网络计划:回到将来

  除了链路本地(Link-local)地点和现已废除的站点本地(Site-Local)地点等例外环境,全部IPv6地点均已环球可路由。通过IPv4RFC1918空间我们已经知道利用这种地点的私有网络是不会“泄漏”到互联网的。然而在IPv6网络中这一点还无法保障,由于全部全局IPv6空间都是环球可路由的。如今计划数据中心时必要实行更妥当的安全战略,由于流量大概同时源自内部和外部。如今已无法通过某些简单的战略只答应或只拒绝RFC1918地点。

  当全部地点都环球可路由时,数据包大概会通过差别路径到达同一个目标地。假如转发路径(Forwardpath)的计划不敷审慎,大概导致数据包通过一个防火墙出站,通过另一个防火墙返回的环境。防火墙是有状态的,这意味着它们会记取内部盘算机与外部盘算机之间的毗连状态,如许才华主动答应返回的流量通过防火墙。但是跨防火墙分享状态这种做法很难实现,而且大概不敷安全。更紧张的是,路径中的某些部分大概会通过安全性不那么高的公众互联网传输,而非通过内部网络举行。

  利用IPv6时无法轻易通过查察目标IP地点是否包罗在RFC1918空间来确定流量是内部还是外部的。内部和外部流量哪怕是假造的,也依然必要隔离。为了实现这种隔离,必须重新相沿NAT技能诞生前的网络计划思绪。换句话说,我们“回到将来”了。

  NAT使得深藏于数据中心内的盘算机可以直接访问互联网,从本质上来说这必要创建一对一的NAT毗连。我们决定在本身的数据中心内设置一块不公告到互联网的IPv6地点段,这也意味着全部位于这个地点段内的盘算机必须通过DMZ中设置的一系列署理或网关访问互联网。为确保整个体系布局尽大概简单,我们不盼望内部盘算机在无法通过IPv6直接访问互联网的环境下可以通过IPv4直接访问。由于筹划实行双堆栈,必要禁用IPv4上的全部NAT。如许内部的全部盘算机无论利用IPv4或IPv6,都必须成为多宿主(Multi-homed)盘算机。

  通过利用边界网关协议(BorderGatewayProtocol,BGP),可以将一个路由器所知道的IPv4和IPv6路由通过IPv4或IPv6毗连公告给四周其他路由器。由于领英的终极目标是彻底弃用IPv4,我们决定不让公告超过网络堆栈,我们的IPv6路由公告都将只通过基于IPv6的BGP会话对外公告。

  增长新的网络堆栈要求安全性至少要与本来的IPv4环境相称。此时一种方法是利用筛选器拒绝全部IPv6流量并从这里入手。然而一旦装备可以感知IPv6,当它无法通过IPv6到达目标地,而且应用程序无法“优雅”回退至IPv4,或无法及时实现回退时服务大概会停止。因此我们选择了另一种方法。

  另一种方法是将现有的访问控制列表(ACL)直接从IPv4转换为IPv6。这种方法的结果到底有多大差别?举例来说,将ICMP筛选器转换为ICMPv6筛选器即可让Ping数据包直接到达目标盘算机,但正如这一系列文章的第1篇中提到的,ICMPv6的PacketTooBig(PTB)信息是IPv6独有的,这种信息对通过封装隧道(Encapsulatingtunnel)举行的,或利用了巨型帧的通讯至关紧张。以太网IP数据包通常最大只能到达1,500字节,但隧道技能会将一个数据包封装到另一个数据包内(比方NAT64),而为了通过高速链路实现更快速的传输,大概必要利用巨型帧(高出1,500字节)数据包。为克制碰到难以诊断的网络毗连题目,必须确保可以或许顺遂天生、吸取和处理惩罚PTB信息。由于IPv4(以及其他雷同环境)没有PTB的概念,因此不能直接将现有ACL转换为IPv6版本,否则将无法提供对PTB信息举行授权的规则。

  终极我们乐成实现了通过访问控制列表(ACL)为环境、盘算机等提供掩护这一目标。在IPv6网络上启用两个装备并创建双堆栈之前,假如不创建与IPv4规则等价的IPv6ACL规则,装备间的通讯大概会停止。

  别的我们还利用假造IP(VIP)将客户端通过一个IP地点毗连到多个服务器。IPv4和IPv6网络中这些VIP的设置略有差别。比方为了精确发送到终极的目标服务器,一些处理惩罚VIP的负载均衡器被设置为重写数据包的以太网部分。无论IPv4或IPv6,这个服务器必须能用本身的原生协议处理惩罚数据包。因此假如某个VIP是双堆栈的,这意味着该VIP代表的全部盘算机都必须是双堆栈的。在负载均衡器的设置中,IPv4和IPv6的VIP设置是两个差别的设置选项,但我们不盼望在DNS中为VIP设置差别名称。同理为了克制产生其他技能债,由于终极目标是完全利用纯IPv6环境,我们也不盼望利用诸如vipname-v6如许的主机名。因此在DNS端,当服务器可以开始处理惩罚IPv6流量后,会给VIP名称增长一条AAAA记录。

  通过上述题目我们意识到,为装备创建IPv6地点架构可以资助我们在并非全部盘算机的主机名都有DNSAAAA记录(或反向DNS记录,假如必要的话)时实现很多目标,比方根据差别呆板之间的互访需求界说IP规则。

  为装备提供怎样的IPv6地点?

  我们不想为主机名添加DNSAAAA记录,由于在添加该记录后,到这些服务器的毗连将首选利用IPv6。我们必须起首确定全部软件都支持IPv6,随后才华启用双堆栈服务器。

  别的我们也不盼望将IPv4地点嵌入IPv6地点(比方:2620:abcd:efef::192.168.1.1),缘故起因在于:

上述例子中的地点在接口大将被表现为2620:abcd:efef::c0a8:0101;

IPv4地点空间枯竭的题目还没有乐成办理;

弃用IPv4将造成技能债。

  为了轻松地将IPv4ACL转换为IPv6ACL,我们依然必要能在没有为主机名添加AAAA记录的条件下,通过盘算机的IPv4地点知道它的IPv6地点。(ACL决定了哪些盘算机得到了授权,可以访问某一特定盘算机。)

  对于这个题目,我们的办理方案是将每个IPv4网络与IPv6网络配对,并利用IPv4地点末了两个位组(Octest)的十六进制格式作为IPv6地点的末了一个Quibble(IPv6地点用Quibble表现,每个Quibble为4字节/16比特,用冒号分隔)。选择利用末了2个位组的缘故起因在于,如许的话我们一些最小规模的IPv4网络就可以与利用/23掩码的IPv6网络配对(为了放入同一个机柜中,大部分此类网络都是/24或/25规模的)。我们利用了与IP地点管理体系(IPAM)中雷同的子网配对选项。通过这种方式,即可针对特定VLAN当前分配的IPv4子网得到IPv6子网。

  为了简化ACL、路由聚合,以及表里部网络边界等题目,我们决定为如今和将来的全部数据中心利用一个充足大的IPv6网络。如许做也可以简化内部IPv6流量的辨认工作,由于只必要查察地点的泉源块(Block)就够了。

  为了进一步简化这一系列过程,我们还决定为全部与服务器毗连的路由器接口设置fe80::1作为链路本地IPv6地点。在领英的全部数据中心内,服务器始终会利用eth0接口访问默认网关,因此默认网关始终可通过eth0接口的fe80::1地点,即“fe80::1%eth0”的方式访问。不必要利用路由器公告信息即可创建默认网关。我们的全部IPv6地点都是静态的(由于动态IPv6地点必要在DNS中维护),因此客户端总能找到要毗连的服务器。由于服务器数量浩繁,全天时间内会发生多次重要为静态情势的服务器更新。通过将FE80::1作为网关,利用特别脚本或工具分析路由表即可知道任何网段均已不必要默认网关。对于IPv6地点或默认网关来说,任何动态架构都必须通过连续广播有关网络的信息让体系保持动态的状态。但利用静态状态后,无须确保必须及时将信息广播给服务器和装备就可以让它们维持本身的网络状态。我们的服务器IP就利用了如许的架构。我们的网络装备利用了更传统的架构,此中点对点链路通过更大的地点块构成了一个独特网络,而环回(Loopback)地点则来自专用的IPv6地点空间。

  对于服务器,我们利用了静态的IPv4和IPv6IP地点。我们会利用上文提到的IPAM工具记录全部网络和主机名。如许在供应装备时就可以知道每台主机位于哪个机柜,利用哪个端口毗连。IPAM信息会纳入DNS中,如许就不必要利用动态DNS将IP与主机名映射。别的我们的应用程序堆栈会通过发现服务将服务映射为主机名。思量到这些因素,利用静态IP地点的做法更公道,确保了我们可以控制IP的分配不会改变,而且应用程序堆栈也可以利用连续稳固的名称和IP地点对应关系。

  与IPv4战略的差别之处在于,无须利用NAT66为署理和其他DMZ功能提供支持,即可通过IPv6访问互联网。DMZ中全部主机将利用多宿主毗连在数据中心提供内部IPv6毗连,并通过防火墙提供到互联网的外部IPv6毗连。

  为了支持领英实现纯IPv6数据中心这一终极目标,我们必要确保终端访问控制器访问控制体系(TerminalAccessControllerAccessControlSystem,TACACS)、网络时间协议(NTP)、体系日记(Syslog)、简单网络管理协议(SNMP),以及sFlow等其他服务均可支持IPv6源地点,并在功能方面能与IPv4看齐。也就是说应用程序层必要支持IPv6,用于管理全部这些装备的工具也必要支持IPv6。终极全部装备必要能通过纯IPv6网络供应。面对IPv6,零打仗供应(ZeroTouchProvisioning,ZTP)技能依然有待美满,由于此中还用到大量遗留组件。我们将在这一系列文章的第3篇从较高角度先容怎样让软件或应用程序可以或许在IPv6网络中正常运转。

  致谢

  本文撰写过程中得到了AAAA团队下列成员的巨大资助:

  ZaidAli、SriramAkella、AndreyBibik、DonaldoCarvalho、BoFeng、DavidFontaine、PrakashGopinadham、DavidHoa、SanaldasKB、HenryKu、PrasanthKumar、VikasKumar、TommyLee、LeighMaddock、NavneetNagori、MarijanaNovakovic、VedPrakashPathak、StephanieSchuller、ChintanShah、HarishShetty、AndrewStracner、VeerabahuSubramanian、ShawnZandi、AndreasZaugg、DavidPaulZimmerman、PaulZugnoni。

  作者:TimCrofts,阅读英文原文:IPv6atLinkedInPartI,"ChippIn'"AwayatIPv4

  感谢陈兴璐对本文的审校。

客户评论

我要评论