IPv6

初识awk-获取当前机器的global ipv6地址

LC 2015-10-19 IPv6 Networking

获取当前机器的global ipv6地址 awk使用方法 awk 'pattern {action}' {filenames} 首先,用ifconfig命令可以查看当前机器的所有ip地址 [root@lc ~]# ifconfig eth0      Link encap:Ethernet  HWaddr 38:83:45:F1:33:33           inet addr:192.168.1.13  Bcast:192.168.1.255  Mask:255.255.255.0           inet6 addr: fc00:0:190::13/64 Scope:Global           inet6 addr: fe80::3a83:45ff:fef1:3333/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:3097 errors:0 dropped:0 overruns:0 frame:0           TX packets:3404 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:380337 (371.4 KiB)  TX bytes:400481 (391.0 KiB)           Interrupt:10 Base address:0xe000 eth1      Link encap:Ethernet  HWaddr 50:E5:49:CF:97:BE            inet addr:192.168.106.239  Bcast:192.168.106.255  Mask:255.255.255.0           inet6 addr: fc00:0:190::221/64 Scope:Global           inet6 addr: fe80::52e5:49ff:fecf:97be/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:74167 errors:0 dropped:0 overruns:0 frame:0           TX packets:25655 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:8107031 (7.7 MiB)  TX bytes:25823486...

Linux网卡配置多个IPv6地址

LC 2015-10-12 IPv6

前面一篇文章介绍了<a target="_blank" href="http://manager.blog.useasp.net/archive/2015/10/11/Multiple-ip-address-bind-on-one-card-in-linux.aspx">如何给linux网卡配置多个ipv4地址</a>,这里将介绍Linux网卡配置多个IPv6地址 (这里以绑定IP到eth1为例,其它网卡的话修改相应的文件名即可) /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 //绑定IP段的网卡名称 BOOTPROTO=static //协议为静态,用none也可以 ONBOOT=yes //开机启用此网卡 HWADDR=00:1c:49:18:32:6a //MAC地址 NETMASK=255.255.255.0 IPADDR=192.168.1.14 TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=yes IPV6ADDR=fc00:502::c0a8:10e //IPv6 address IPV6ADDR_SECONDARIES=fc00:502::c0a8:10f //second ipv6 address IPV6PREFIX=64 //the prefix is 64 IPV6_DEFAULTGW=fc00:502::ca8:13 //default gateway 保存退出,然后重启网络: [root@lc /]# service network restart 用ifconfig查看是否配置成功: eth1      Link encap:Ethernet  HWaddr 00:1C:49:18:32:6A            inet addr:10.15.1.14  Bcast:10.15.1.255  Mask:255.255.255.0           inet6 addr: fe80::021c:49ff:fe18:326a/64 Scope:Link           inet6 addr: fc00:502::a0f:10e/64 Scope:Global           inet6 addr: fc00:502::a0f:10f/64 Scope:Global           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:75150 errors:0 dropped:0 overruns:0 frame:0           TX packets:47345 errors:0 dropped:0 overruns:0 carrier:1           collisions:0 txqueuelen:1000           RX bytes:7195527 (6.8 MiB)  TX bytes:4920915 (4.6 MiB)           Interrupt:66    

A sample of DHCPv6 server

LC 2015-10-10 IPv6

# for Server authoritative; ddns-updates on; ddns-update-style interim; do-forward-updates on; #preferred-lifetime 86400; #default-lease-time 86400;-valid-time-should-not-less-than-preferred; preferred-lifetime 86400; default-lease-time 86400; #valid-lifetime 720; #default-lease-time 86400; #option 58 3600; #option 59 4800; #    server-preference 255; #    renew-time 60; #    rebind-time 90; #    prefer-life-time 130; #    valid-life-time 200; #    allow rapid-commit; #    option dns_servers 2000::2 ibm.com; # T1, the delay before Renew #  (default is 1/2 preferred lifetime) #  (set to 1 hour) #option dhcp-renewal-time 3600; #option dhcp-renewal-time 50; # T2, the delay before Rebind (if Renews failed) #  (default is 3/4 preferred lifetime) #  (set to 2 hours) #option dhcp-rebinding-time 7200; #option dhcp-rebinding-time 80; <global>   # custom Option Definition <option-def>   # Global Options <global-options> # Classes and groups <sub-classes>   # local subnet - must declaration #PACTINST_DHCP6_NETDETAILS subnet6 fe80::/64 { } #subnet6 2006:200:2:2::100/128 { subnet6 2006:200:2:2::0/64 { #subnet6 2006:200:2::0/49 {         range6 2006:200:2:2::10 2006:200:2:2::fff0; #       Prefix6 2012:150:15:: 2012:150:15:fff0:: /64; #      ...

DHCPv6 clients get the same IPv6 addresses

LC 2015-10-09 IPv6

DHCPv6总是给客户端分配一样的IPv6地址的问题,根据抓包分析,找到问题所在 1. CMTS发给dhcpv6 server的地址里面,relay头里面带的interface-id,填的都是同样的值 00000022 2. 根据itut的文档http://tools.ietf.org/html/draft-ietf-dhc-dhcpv6-ldra-03#page-6          Servers MAY use the Interface-ID for parameter assignment policies.    The format of the Interface-ID is outside the scope of this    contribution.  The Interface-ID SHOULD be considered an opaque value,    i.e. the server SHOULD NOT try to parse the contents of the    Interface-ID option.  The LDRA SHOULD use the same Interface-ID value    for a given interface, and this value SHOULD be retained across    restarts.  This is because, if the Interface-ID changes, a server    will not be able to use it reliably in parameter assignment policies. 3. 通过查看iscdhcpv6-src发现,根据interface-id去找cache的地址。造成客户端总是拿到同样的IPv6地址。     去isc的网站上看到,新版本解决了这个问题。请升级一下   1. cd /PATH/iscdhcpv6-src/ 2. wget http://ftp.isc.org/isc/dhcp/4.2.4-P1/dhcp-4.2.4-P1.tar.gz 3. tar -zxvf dhcp-4.2.4-P1.tar.gz 4. mv /PATH/iscdhcpv6 /PATH/iscdhcpv6.old 5....

IPv6 - DHCPv6方式

Blog Author 2014-01-05 IPv6

从上一篇文章 DHCPv6概述 中介绍我们已经知道DHCPv6有Stateful和Stateless两种方式,这篇文章我们就来详细介绍一下这两种方式。 有状态DHCPv6方式: 客户端通过 DHCPv6 方式获取地址和其他网络配置信息(例如DNS、NIS、SNTP服务器等参数)。有状态DHCPv6方式可以通过DHCPv6四步交互和DHCPv6两步交互来实现。 无状态DHCPv6方式: 客户端通过DHCPv6方式获取网络配置信息(不包括地址)。 以下介绍DHCPv6的各种交互方式: 一、Stateful DHCPv6 - 四步交互 DHCPv6-Client DHCPv6-Server | (1)Solicit | |------------------------->| | (2)Advertise | |<-------------------------| | ...

IPV6 - DHCPv6概述

Blog Author 2014-01-03 IPv6

IPv6协议具有地址空间巨大的特点,但同时长达128比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。 IPv6无状态(stateless)地址配置协议是目前广泛采用的IPv6地址自动配置方式。配置了该协议的主机只需相邻路由器开启IPv6路由公告(Router Advertisement)功能,即可以根据公告报文包含的前缀信息自动配置本机地址。但无状态地址配置方案中路由器并不记录所连接的IPv6主机的具体地址信息,可管理性差。对于互联网服务提供商(ISP)来说,也没有相关的规范指明如何向路由器自动分配IPv6前缀,所以在部署IPv6网络时,只能采用手动配置的方法为路由交换设备配置IPv6地址。 DHCPv6 是动态主机配置协议(DHCP)的 IPv6 版本,协议基本规范由RFC3315定义。相对于 IPv6 无状态地址自动配置协议,DHCPv6属于一种有状态(stateful)地址自动配置协议。在有状态地址配置过程中, DHCPv6 服务器分配一个完整的 IPv6 地址给主机,并提供DNS服务器地址和域名等其它配置信息,这中间可能通过中继代理转交DHCPv6报文,而且最终服务器能把分配的IPv6地址和客户端的绑定关系记录在案,从而增强了网络的可管理性。 DHCPv6 服务器也能提供无状态DHCPv6服务,即 DHCPv6 服务器不分配IPv6地址,仅需向主机提供DNS服务器地址和域名等其它配置信息,主机IPv6地址仍然通过路由器公告方式自动生成,这样配合使用就弥补了IPv6无状态地址自动配置的缺陷。DHCPv6协议还提供了DHCPv6前缀代理的扩展功能,上游路由器可以自动为下游路由器分派地址前缀,从而实现了层次化网络环境中IPv6地址的自动规划,解决互联网提供商(ISP)的IPv6网络部署问题。

MAC地址转换LinkLocal地址

Blog Author 2013-08-05 IPv6

    前面介绍过 link-local 地址是通过网卡MAC地址转换而来的,这里再提供一个小程序来转换;用C语言写个程序:先获取本机MAC地址,据此得到Link Local地址( IPv6 Address )。 #include #include #include void byte2Hex(unsigned char bData,unsigned char hex[]) { int high=bData/16,low =bData %16; hex[0] = (high <10)?('0'+high):('A'+high-10); hex[1] = (low <10)?('0'+low):('A'+low-10); } int getLocalMac(unsigned char *mac) //获取本机MAC地址 { ULONG ulSize=0; PIP_ADAPTER_INFO pInfo=NULL; int temp=0; temp = GetAdaptersInfo(pInfo,&ulSize);//第一次调用,获取缓冲区大小 pInfo=(PIP_ADAPTER_INFO)malloc(ulSize); temp = GetAdaptersInfo(pInfo,&ulSize); int iCount=0; while(pInfo)//遍历每一张网卡 { // pInfo->Address 是MAC地址 ...

CentOS IPv6环境下DNS服务器简单配置

Blog Author 2013-06-27 IPv6 Networking

CentOS下搭建DNS server首选Bind软件。这里采用Bind v9做为例子(bind9.x提供IPv6 socket的DNS查询,支持IPv6资源记录。 首先下载及安装: # wget http://ftp.isc.org/isc/bind9/9.3.6/bind-9.3.6.tar.gz # tar -xzf bind-9.3.6.tar.gz # cd bind-9.3.6 # ./configure -enable-ipv6 -with-openssl # make && make install 运行 rpm -qa | grep bind 可查看安装bind的版本。 Bind软件安装后,会产生几个固有文件,分为两类:    一类是配置文件在/etc目录下;    一类是DNS记录文件在/var/named目录下。    加上其他相关文件,共同设置DNS server。    named.conf为默认的主配置文件(须手动建立),设置一般的named参数,指向该服务器使用的域数据库信息的源,这类源可以是本地磁盘文件或远程服务器。   纯粹为了试验,我在lab里建立了一个域名shanghai.myuseasp.net的IPv6 DNS server。   配置文件1 /etc/name.conf // Red Hat BIND Configuration Tool // // Default initial "Caching Only" name server configuration // options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; /* * If there is a firewall between you and nameservers...

Ubuntu配置DHCP&DHCPv6 server

Blog Author 2013-06-26 IPv6 Networking

两台笔记本 A和B A: Ubuntu 11.04 + 有线网卡(eth0) + 无线网卡(eth1) B: Windows 7 + 有线网卡 + 无线网卡 A,B的无线网卡都连接到家庭无线 路由器 ,网关为192.168.0.1,可以上互联网。A,B的有线网卡通过网线直连,A作为DHCP server和网关,为B的有线网卡分配IP地址 实验1:A(Ubuntu)安装DHCP server步骤: 1. 下载安装dhcp server sudo apt-get install dhcp3-server 2.修改dhcpserver绑定的interface接口 vi /etc/default/isc-dhcp-server INTERFACES="eth0" 3. 给eth0配置ipv4静态地址: 192.168.1.1。 vi /etc/network/interfaces, add: auto eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 DHCP server在启动时自动启动;注意不要用network connection配置静态IP,它不会写/etc/network/interfaces文件,导致 DHCP server 无法自动启动。 4.修改dhcpserver配置文件 vi /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.200; option broadcast-address 192.168.1.255; option routers 192.168.1.1; default-lease-time 6000; max-lease-time 8000000; } 5. 启动dhcp server sudo /etc/init.d/isc-dhcp-server start 如果出错,查看/var/log/syslog的错误提示   A安装完DHCP server后,B的有线网卡可以分配到IP地址。但是B不能上互联网了。 route print 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.99 26 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.10 10 连互联网时都走HOP数小的192.168.1.1路由,导致无法上互联网。   运行下面命令解决问题: route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 route add 192.168.1.0 mask...

MAC-to-EUI-64转换

Blog Author 2013-06-25 IPv6

IEEE EUI-64 地址代表网络接口寻址的新标准。公司ID仍然是24位长度,但扩展ID是40位,从而为网络适配器制造商创建了更大的地址空间。EUI-64地址使用U/L和I/G位的方式与IEEE 802地址相同。 将IEEE 802地址映射到EUI-64 地址。 要从IEEE 802 地址创建EUI-64地址,则16位的11111111 11111110 (0xFFFE) 将被插入到公司 ID 和扩展 ID 之间的IEEE 802地址中。 因为MAC地址是唯一的,所以EUI-64地址一般是唯一的。 如何将48 bits的MAC地址转化为64 bits的接口ID? 转化步骤: 1.在MAC地址的公司ID(高24 bits)和节点ID(低24 bits)中间插入 FFFE 2.将MAC地址的U/L位[“全球/本地”("Universal/Local")](从高位开始的第七位) 求反 (invert) 例: 原MAC 20-CF-30-00-32-1A 1.在MAC地址的公司ID(高24 bits)和节点ID(低24 bits)中间插入FFFE;得到 20-CF-30-FF-FE-00-32-1A. 2.20为十六进制,转化为二进制为0010 0000,将MAC地址的U/L位(从高位开始的第七位)求反(invert); 得到0010 0010,转化为16进制,即为22; 20-CF-30-00-32-1A |公司ID和节点ID之间插入FFFE /\ ...

IPv6地址分类

Blog Author 2013-06-25 IPv6

IPv6 地址分类: unicast 单播地址(单点传送) multicast 组播地址(多点传送)-IPv6没有定义广播地址,用组播地址代替广播地址 anycast 任播地址(任一点传送)   IPv6地址 作用域: link local地址 本链路有效 site local地址 本站点(区域)有效,一个site通常是一个企业内部或者一个校园网 global地址 全球有效,也即可汇聚全球单播地址   下面用表格列出IPv6地址分类,及IPv6地址与IPv4地址的对应关系和区别:     地址类型 二进制前缀 IPv6标示 IPv4地址 ...

IPv6地址格式

Blog Author 2013-06-20 IPv6

IPv6 地址表示方法 IPv6 地址 = 前缀(prefix) + 接口标识(接口ID) 其中: 前缀-相当于v4地址中的网络ID 接口标识-相当于v4地址中的主机ID 地址长度128bits,用冒号“:”将128比特分割成8个16比特的部分,每个部分包括4位16进制(16比特) 地址前缀用“/xx”表示,其中xx是数字 IPv6 地址例子: 2020:0000:0000:2020:0000:0000:0FFF:0010/64 4位的16进制2020即16位2进制 0010 0000 0010 0000 IPv6前缀(prefix)为2020:0000:0000:2020 接口标示(interface ID)为0000:0000:0FFF:0010 rfc2373定义了缩写模式: 1)每个16位分段中开头的零可以省略,例子可缩写成 2020:0000:0000:2020:0000:0000:FFF:10/64 2)一个或多个相连的全零分段可以用双冒号表示,例子可缩写成 2020::2020:0000:0000:0FFF:0010/64 3)双冒号只能使用一次 a.例子可缩写成2020::2020:0000:0000:0FFF:0010/64或者2020:0000:0000:2020::0FFF:0010/64 b.但是不可写成2020::2020::0FFF:0010/64,因为这样会造成歧义,不知道全地址是2020:0000:0000:0000:2020:0000:0FFF:0010/64还是2020:0000:2020:0000:0000:0000:0FFF:0010/64或者是2020:0000:0000:2020:0000:0000:0FFF:0010/64 根据上面3条规则,例子里的 IPv6 地址可以缩写成2020::2020:0:0:FFF:10/64或者2020:0:0:2020::FFF:10/64    当处理拥有 IPv4 和 IPV6 节点的混合环境时,可以使用 IPv6地址 的另一种形式。即 x:x:x:x:x:x:d.d.d.d,其中,“x”是 IPv6地址 的 96 位高位顺序字节的十六进制值,“d”是 32 位低位顺序字节的十进制值。通常,“映射 IPv4 的 IPV6地址”以及“兼容 IPv4 的 IPV6地址”可以采用这种表示法表示。 IPv4一致地址:将IPv4地址嵌套在IPv6地址中(用于自动隧道和NAT-PT中) IPv6地址的其它部分(不包括IPv4地址的部分)可以采用“首选或者压缩格式”-与IPv6地址的格式一样。 IPv6地址中内嵌的IPv4地址采用IPv4的十进制表示方法,地址前缀长度用“/xx”来表示。 例如:Ipv4地址162.166.6.6的一致地址为0:0:0:0:0:0:162.166.6.6/64 注意:此时IPv6地址中的IPv4地址表示方式还是点分制的十进制表示法,而非冒号分割。 0:0:0:0:0:0:162.166.6.6/64 | | |——162.166.6.6 IPv4地址表示方式还是点分制的十进制表示法  

IPv4-to-IPv6的过渡背景

Blog Author 2013-06-20 IPv6

    IPv6 的计划是创建未来互联网扩充的基础,其目标是取代IPv4,虽然 IPv6 在1994年就已被IETF指定作为IPv4的下一代标准,由于早期的路由器、防火墙、企业的ERP(Enterprise Resource Planning)系统及相关应用程序皆须改写,所以在世界范围内使用IPv6部署的公众网与IPv4相比还非常的少,技术上仍以双架构并存居多。IP协议是互联网体系结构的核心,它必须具备相对的稳定性。 IPv6 作为Internet Protocol的新版本,其根本目的是继承和取代IPv4。因此,人们在规划IPv6的时候,就把眼光投向了包括地址在内的上述重要需求,希望能够解决这些目前已经出现和将来可能出现的问题。从IPv4到IPv6的改变将不可避免的带来Internet上新的革命,无论是硬件还是软件都将有全新的发展。但是,原有的IPv4协议已经成功的实施了将近二十年,在Internet上,甚至有许多通信协议标准比Internet还要早,Internet协议和标准化是有一个简单的原则的: 只要可以应用现有的协议标准,就使用它们;只有当现有的标准不够时才制定新的协议,而且只要能够得到这些新的标准,而它们又能够提供等价的功能,就使用这些新的标准。     所以, IPv6 协议的意图并不是排斥和避免已有的标准。它的产生只是因为传统的IPv4不能满足需要。在IPv6完全取代IPv4之前,不可避免的,这两种协议要有一个可能是相当长的共存时期, IPv6 可能需要在研究所和学术机构中进行足够的试验,才能象IPv4一样成功的投入商业运营。因此,从IPv4到IPv6要有一个过渡时期。     IPv6 在IPv4的基础上进行改进,它的一个重要的设计目标是与IPv4兼容。制订 IPv6 时,IETF致力于产生一种开放的标准,因此他们邀请了许多团体来参加标准的制订过程,研究人员、计算机制造商、程序设计人员、管理人员、用户、电话公司以及有线电视产业都对下一代IP提出了他们的要求和建议。但是作为一种新的协议,从诞生于实验室和研究所到实际应用于Internet是有很大距离的。不可能要求立即将所有节点都演进到新的协议版本,所以在一定的时间内,IPv6将和IPv4共同存在共同运行。如果没有一个过渡方案,再先进的协议也没有实用意义,因此从IPv4网络向 IPv6 网络过渡的问题从一开始就列入了开发者的日程表。 在相当时间内, IPv6 节点之间的通信还要依赖于原有IPv4网络的设施,而且 IPv6 节点也必不可少的要与IPv4节点通信,我们希望这种通信能够高效的完成,对用户隐藏下层细节。同时,IPv4已经应用了十多年,基于IPv4的应用程序和设施已经相当成熟而完备,我们希望以最小的代价来实现这些程序在IPv6环境下的应用。所有这些都提出了从IPv4网络向 IPv6 网络高效无缝互连的问题。 对于过渡问题和高效无缝互连问题的研究已经取得了许多成果,形成了一系列的技术和标准。 预计在2025年以前IPv4仍会被支持,以便给新协议的修正留下足够的时间。 IPv6 能解决的核心问题与互联网目前所面临的关键问题之间出现了明显的偏差,难以给互联网的发展带来革命性的影响。与IPv4的各种地址复用解决方案相比, IPv6 能够降低复杂性和成本,然而目前却只有制造商较能够感受到这个优势,用户和运营商??无法直接感受到,导致产业链缺乏推动 IPv6 的动力。

IPv6的产生背景

Blog Author 2013-06-20 IPv6

     互联网快速发展至今,全球上网人数已经超过25亿。其中,在过去5年中,亚洲在全球新增网民中所占比率最高,达到53.8%。自互联网诞生以来,网民总量便在快速增长。与此同时,各种网络服务的规模也在急剧膨胀。     传统的IP,即IPv4(Internet Protocol version 4)定义IP地址的长度为32位,仅能提供约2.5亿个IP位置,Internet上每个主机都分配了一个(或多个)32位的IP地址。32位的地址在DARPA时代的互联网络看来还是足够使用的,同时网络地址的分类(A、B、C、D、E类)和提取也提高了路由的效率。 但是在80年代早期,即使是最有远见的TCP/IP开发者们也没有预料到互联网会有后来的爆炸性的增长。Internet的设计者们没有想到今天Internet会发展到如此大的规模,更没有预测到今天Internet因为发展规模所陷入的困境。1987年统计表明可能将来需要分配多达100,000个网络,然而早在1996年这个记录已经被打破。自从1992年以来,特别是WWW服务普及之后,网络节点的数目开始几何级数的增长。     地址短缺问题的根源有绝对的一面也有相对的一面。绝对的一面就是32位的空间是十分有限的;相对的一面就是,尽管现行的32位IPv4的地址结构可以为1670万个网络上的超过40亿台主机分配地址,但实际上的地址分配效率远远达不到这个数值,甚至在理论上也不可能。 网络增长不仅导致地址总数量的不够,也导致路由表的迅速膨胀。     虽然目前的NAT、CIDR等技术可暂时延缓网络位置匮乏的现象,但是这都只是治标不治本的解决方式,IP地址不够用的问题很快就会浮现出来;为了解决根本问题,从1990年开始,互联网工程任务小组(Internet Engineering Task Force,简称IETF)开始规划IPv4的下一代协议,除要解决即将遇到的IP地址短缺问题外,还要发展更多的扩展,为此IETF小组创建IPng,以让后续工作顺利进行。IPng(IP Next Generation)问题就是在IPv4的地址空间出现危机时提出的,地址即将耗尽和路由表的过度膨胀是促使IPng问题产生的直接原因。1994年,各IPng领域的代表们于多伦多举办的IETF会议中正式提议 IPv6 发展计划,该提议直到1994年11月17日才被认可,1995年底确定了IPng的协议规范,分配了版本号6(版本号5已经被分配另一种草案),称为"IP version 6"( IPv6 ),同现在使用的版本4相区别;1998年又作了较大的改动,并于1998年8月10日成为IETF的草案标准,最终 IPv6 在1998年12月被互联网工程研究团队(Internet Engineering Task Force,简称IETF)通过公布互联网标准规范(RFC 2460)的方式定义出台。