内容简介:本文是《IPv6系列》文章的第一篇《入门指南》,用于快速了解并上手IPv6。原文出自:小慢哥Linux运维(fzxiaomange)。
本文是《IPv6系列》文章的第一篇《入门指南》,用于快速了解并上手IPv6。
小慢哥的原创文章,欢迎转载。
原文出自:小慢哥 Linux 运维(fzxiaomange)。
目录
▪ 一. 为什么要了解IPv6 ▪ 二. 顾虑:IPv6地址太复杂了,记不住啊 ▪ 三. 顾虑:每台服务器都有IPv6地址,会暴露整个内网,不安全 ▪ 四. 顾虑:IPv6地址有好几种类型,很难区分和记忆 ▪ 五. 需要学哪些知识 ▪ 六. IPv6基础知识 ▪ 七. IPv6地址生成 ▪ 八. 常用命令 ▪ 九. 在线测试工具 ▪ 十. 开启与关闭IPv6 ▪ 十一. 在CentOS7上配置静态IPv6地址 ▪ 十二. 如何让我的网站对外提供IPv6服务
一. 为什么要了解IPv6
你以为我会讲些 “正确的废话” ,比如IPv6地址空间巨大,可以让地球上的每一粒沙子拥有一个IP地址?比如IPv6更加安全?
错!我才不在意这些,这跟我们有什么关系。
我要讲的,是不上IPv6,会有哪些后果。
:one: 势不可挡 :各大运营商已经在全面铺设IPv6,包括手机、家庭宽带,比如笔者所在地福州的移动4G手机,已经获得IPv6地址。:two: 坐以待毙 :当IPv6占用率达到一定比例的时候,我相信已有的网站、新申请备案的网站,会被强制要求上IPv6,如果不配置,已有网站停止运营、申请备案不予通过。甚至,到那时,手机、家庭宽带,会仅获得IPv6地址,无法获得IPv4地址。最后,IPv4从中国互联网中废除。
通过上述2点,可以知道, 作为服务端(如WEB服务提供方)是必须要上IPv6的 ,否则不仅无法运营、连用户也都无法访问。
那么,内网需要IPv6吗
▪ 家庭内网,比如连着wifi的手机、电脑 ▪ 企业内网,比如办公室内每个工位上的电脑 ▪ 数据中心内网,比如机房内的服务器、公有云主机
这些内网环境,是否也需要配置ipv6地址?
答: 只要你想访问IPv6互联网,就必须要在终端上配置IPv6地址 。原因在于 “IPv6优先原则” ,越来越多的程序,比如各大编程语言的许多主流模块/框架,在进行域名解析时,会通过dns优先查询AAAA记录(对应IPv4的A记录) ,若该域名有提供IPv6访问,就必然会解析出AAAA记录。接着,就会优先通过IPv6来访问(即使本机没有配置IPv6,甚至没有启用IPv6),如果IPv6网络不通,则该访问直接失败,即便有的模块/框架在失败后会尝试IPv4,但已经增加了许多的延时
综上所述,IPv6已经来临,而不是还在讨论中,现在没有任何理由继续固守IPv4了。与其坐以待毙,不如主动学习
二. 顾虑:IPv6地址太复杂了,记不住啊
说的好像IPv4地址你能背下来似的,其实IPv6地址只是长度增加,并且展示方式从十进制改为十六进制,具体的计算方式是一样的。而且有dns在,没必要去背IP地址,就算是内网的IPv6地址,也可以通过DHCPv6或者路由器发送RA包来自动生成IPv6地址。
三. 顾虑:每台服务器都有IPv6地址,会暴露整个内网,不安全
担心是对的,但解决方案也和IPv4一样,有2种:
▷ 可以在内网服务器上配置 “IPv6私网地址” ,这样公网就访问不到了。在IPv6中,私网地址是 fd00::/8
,这相当于IPv4的10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。然后在网关上配置 NAT
▷ 依然用“IPv6公网地址”(即全球单播地址),但在网关上配置 “有状态防火墙”
无论是哪种方案,最终都实现了“只出不进”,即服务器可以主动访问IPv6公网,但公网无法主动访问进来,保证了内网的安全。
四. 顾虑:IPv6地址有好几种类型,很难区分和记忆
什么全球单播、唯一本地、链路本地,类型太多了吧?其实,常用的IPv6地址,在IPv4中都能一一对应找到。
▷ 全球单播 :对应IPv4的公网 ▷ 唯一本地 :对应IPv4的私网 ▷ 链路本地 :在IPv4中也有对应,就是 169.254.x.x
(这在IPv4中也叫链路本地)
至于其他类型的地址,要不然是被废弃的,要不然就是很少用到的,除非工作所需碰到,否则完全不用理会,上面这3种类型已经足够用了。除了这3种,下面这2个特殊地址一定很常见
▷ ::1
,表示环回地址,对应IPv4中的 127.0.0.1
▷ ::
,表示未指定地址,对应IPv4中的 0.0.0.0
五. 需要学哪些知识
▷ 开发、测试、DBA:只需简单了解IPv6即可,也就是本文看明白后基本就够了 ▷ 运维人员:除了需要了解IPv6,还需要掌握IPv6通讯的工作原理、防火墙的配置等等,详见《IPv6系列》后续文章 ▷ 网工:需要深入了解IPv6,包括IPv6的各类数据包格式、各种架构、多播路由通讯等等
六. IPv6基础知识
关于IPv6的教程,网络上已经有非常多写的很棒的教程了,笔者没有把握能写出更好的,因此《IPv6系列》文章,将把重点放在一些概念、解决方案、很多人没注意到的坑、工作原理等等
IPv6地址长度
▷ IPv4:32 bit ▷ IPv6:128 bit
可以这么记忆,IPv6比IPv4多了一倍的段落,并且每个段落里增加了一倍的长度,所以IPv6比IPv4长了2x2=4倍
IPv6地址组成
▷ IPv4:网络号+主机号/子网掩码,如 192.168.1.2/24
▷ IPv6:前缀ID+接口ID/前缀长度,如 2001:0000:0000:0000:0011:0000:0000:0010/64
地址简写
▷ IPv4:不支持 ▷ IPv6:压缩0
注意:IPv6单个段落内可重复压缩,比如上述可压缩为2001:0:0:0:11:0:0:10/64;若多个段落连续为0,可压缩,但只能压缩一次,比如上述可进一步压缩为2001::11:0:0:10/64,或者2001:0:0:0:11::10/64,通常为前者
检验方法
找一台linux服务器,比如centos7系统,执行 ip addr add ${IPv6地址}dev eth0
,然后 ip addr show dev eth0
看一下会如何压缩
IPv6地址分类
注意:表格列出的是比较常见的地址,并非全部地址
另外,除了单播、多播,IPv6相比IPv4新增了一种任播(anycast),任播是属于单播范畴内的,无法单纯从地址识别出任播
术语
▪ 节点:任何运行IPv6的设备 ▪ 路由器:转发不是发给自己的IPv6报文的节点 ▪ 主机:非路由器的节点 ▪ 接口:节点和链路相连的物理或逻辑配件 ▪ 链路:由路由器分割的网络接口集合 ▪ 邻居:同一链路上的节点 ▪ 链路MTU:链路能传输的最大单位,即最大的IPv6报文字节数 ▪ 路径MTU:IPv6源端和目的端之间能传输的最大的IPv6报文字节数,通常是路径中所有链路的最小链路MTU
七. IPv6地址生成
▷ IPv4:手工指定、dhcp分配 ▷ IPv6:手工指定、dhcp分配、自动生成
在IPv6里,主流方案就是 自动生成IP ,而不是手工指定或dhcp分配。当然,作为服务端是需要手工指定的,但对于更广阔的客户端来说,基本都是自动生成。这种自动生成的,叫做“无状态”,相对于“无状态”,通过dhcp获取到的固定IP,就叫做“有状态”(dhcp也支持“无状态”,这里不做详解)
除了协议规定的特殊地址,其他可自行分配的地址,都是可以在具体范围内自动生成的,包括链路本地、全球单播、唯一本地。其中全球单播、唯一本地,是在接收到路由器发送的RA包后自动生成,具体生成的是全球单播还是唯一本地,是根据RA包内容中的前缀而定
如何自动生成的
无需关心,只要记住一点,能用即可。因为有多种自动生成的方法,有通过mac地址换算而来,有通过某种算法获得,也可能是完全随机而来,而且有的自动生成的地址还会每隔一段时间自动更换,不同的操作系统实现方法不一样,无法统一
为什么会出现这种无法统一的情况
原因在于IPv6协议一直在发展,新协议推翻老协议,每个实现者(也就是不同的操作系统)的诞生时间不同,所参考的协议就有可能不同,而且有的协议还支持不只一种方式,不同实现者出于不同的考量就会采用不同的方式。怎么办?没办法,要不然不理会,要不然投入精力去研究其不同之处,没有一劳永逸的方法。(这段话不仅适用IPv6地址,还适用其他方面,比如DHCPv6等等)
八. 常用命令
九. 在线测试工具
▷ 公共dns列表
▷ 查询网站是否提供IPv6
▷ 查询我自己是否拥有公网IPv6地址
十. 开启与关闭IPv6
十一. 在CentOS7上配置静态IPv6地址
:one: 内核参数
:two: /etc/sysconfig/network里增加一行
:three: /etc/sysconfig/network-scripts/ifcfg-eth0
:four: 重启网络
十二. 如何让我的网站对外提供IPv6服务
:one: 找你的运营商要IPv6地址
▷ 如果你的服务器是托管在电信机房里,那么就找电信运营商要,通常会给你一个/48或/56的地址段 ▷ 如果你的服务器用的是公有云,比如阿里云、腾讯云,就找他们要,只不过由于IPv6还未全面普及,因此有的地域有提供IPv6,有的没有。另外,提供IPv6的方案也不完全一样,有的是以双栈方式,就是你的云主机里可以直接看到IPv6地址,而有的是负载均衡或者弹性IP方式提供。笔者的网站是放在腾讯云上,用的就是IPv6的L4负载均衡
:two: 接下来,在dns里为自己的网站域名增加AAAA记录 。(其实现在很多大厂dns服务器,即NS,还未提供纯IPv6线路的解析,比如笔者的个人网站域名解析商当前不支持ipv6-only,这点会在后续文章里进行详细说明)
:three: 最后一步,测试IPv6 ,可通过 https://ready.chair6.net/
进行查询
这里展示下笔者个人网站支持IPv6后的效果
以上所述就是小编给大家介绍的《IPv6系列-入门指南》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法分析
维斯 / 人民邮电 / 2006-10 / 59.00元
《数据结构与算法分析:C++描述》秉承Weiss著全一贯的严谨风格,同时又突出了实践。书中充分应用了现代C++语言特性,透彻地讲述了数据结构的原理和应用,不仅使学生具备算法分析能力,能够开发高效的程序,而且让学生掌握良好的程序设计技巧。一起来看看 《数据结构与算法分析》 这本书的介绍吧!