IPv6定义于RFC2460,对于NETGEAR防火墙设备,需要进入管理界面Network Configuration > WAN Settings > WAN Mode 选中IPv4 / IPv6 mode 以开启双栈(Dual-stack)模式,再行设置IPv6相关功能;对于家用路由器设备,仅需在ADVANCED > Advanced Setup > IPv6下将默认的 Disabled 选为对应模式即可.可支持的接入模式按对应关系列表如下:
SOHO Router |
VPN Firewall |
DHCP/ Auto Config |
DHCPv6 |
Fixed |
Static IPv6 |
PPPoE |
PPPoE |
6to4 Tunnel |
6to4 Tunneling |
-- |
ISATAP Tunnels |
Pass Through |
-- |
Auto Detect |
-- |
对于NETGEAR家用路由器,有两个特殊模式:Pass Through, Auto Detect 我们将放在本文的最后介绍,以下每个段落将对应一个功能.
首先是隧道 6to4 Tunneling
IPv6to4适用于将IPv6孤岛通过纯IPv4网络接入其他IPv6区域,这是一种点到多点连接.6to4的定义由RFC3056提供。
对于防火墙设备,
- 进入Network Configuration > WAN Settings > WAN Mode 选中IPv4 / IPv6 mode 以开启双栈(Dual-stack)模式
- 在开启 6to4 前要保证设备WAN口为静态IP地址.进入Network Configuration > WAN Settings > Broadband ISP Settings 设置。
- 开启 6to4 隧道,进入 Network Configuration > WAN Settings > 6to4 Tunneling
- 勾选 Enable Automatic Tunneling
- 点击APPLY以应用
- 如果内网没有部署状态化DHCPv6服务器,需要启用防火墙的RADVD守护进程(Router Advertisement Daemon),设置过程参考附录7,本例中,Type选为6to4,此时Prefix将以IANA对6to4的分配方式生成, SLA ID与Lifetime可以手工输入。
- 防火墙LAN侧收到上述Prefix宣告后会根据EUI-64规则生成Interface ID.
- 最后要做的是写一个发往6to4对端ipv6地址的静态路由
- 进入 Network Configuration > Routing
- 单选IPv6
- 点击Add添加
- Destination可以写成2002::/16或按需填写
- Interface 要选择sit Tunnel
- Gateway填写Tunnel对端IPv6地址
- 点击APPLY以应用
对于家用路由器
- 进入 ADVANCED > Advanced Setup > IPv6
- 选择 6to4 Tunnel
- Remote 6to4 Relay Router, 如果您的ISP支持其自己的中继路由器地址,您可以在Static IP Address 输入地址.也可以保留"Auto",路由器将使用任何可用的地址.
- LAN Setup可以选择IP Address Assignment方式(DHCPv6或Auto Config),此处设置的是您希望的内网设备获取IP地址的方式.
- LAN Setup的另一个选项是Use This Interface ID,可以在勾选复选框后将自定义接口ID输入文本框内.
- 路由器将自动创建隧道并生成路由条目,毋需手工设置.
需要说明的是,
- IETF定义的6to4是一种点对多点隧道,应允许使用更少的配置步骤自动连接多个IPv6孤岛,既然6to4不像手工隧道(手工隧道技术不在NETGEAR设备支持范围内)一样需要配置对端IP地址,那么6to4隧道的IPv6地址一定与其出口IPv4地址存在某种关联;
- 根据IANA的分配,2002::/16被保留给6to4隧道,并按照2002:IPv4address:EUI-64(或2002:IPv4address:ManuallyInterfaceID)的规则生成IPv6地址(定义于RFC2056)。
- 由于上述两个原因,被连接的多个IPv6孤岛在IPv4层面上必须路由可达。也就是说,如果您试图连接的是一个在广域网上的IPv6孤岛或IPv6中继设备,则您正在配置的路由器或防火墙的WAN口必须有一个广域网地址。
例子:
第一个例子我们将使用如下拓扑
本例中我们连接到某跨国公司提供的公共6to4中继路由器(RelayServer),这是一个非典型应用,可以理解为是例子二的一个特殊情。
这个例子考虑的场景是您的WNDR3700v3只能接入到IPv4网络,我们借用6to4技术与中继服务器访问IPv6资源。另外在附录8中可以看到关于本例的详细解释和扩展资料。
考虑到安全(避免泄露MAC地址)与管理需求,也可以使用自定义路由器LAN的interface ID以代替使用EUI-64规则生成的接口ID,本例中我们将接口ID改为17e7:9ea2,此时接入LAN侧的PC有2种方式获取IPv6地址,一个是默认的自动配置,另一种是使用熟悉的DHCPv6(实际上这与IPv4版本的DHCP有所不同),后文我们将讨论这两个选项间的差异,目前需要注意的是,此时路由器并不作为完整的DHCPv6服务器,其没有地址池与其他选项可以设置.最后我们验证连通性:
第二个例子我们将使用如下拓扑
这个例子是6to4技术最开始计划的样子,通过纯粹的IPv4网络连接几个IPv6孤岛,本例中两个路由设备的出口地址在同一网段,在实际环境中这两个地址仅需路由可达.
本拓扑的配置方式与技术参数与例子一并无明显差别,此处不再敷述.可以关注的是PC1在ping WNDR4000时WAN侧抓包的情况。
此时IPv6被封装在IPv4包中并传输,对等设备会在收到数据包后解封成IPv6包继续传输。
可以在PC1上验证连通性:
另一个隧道ISATAP(Intra-Site Automatic Tunnel Addressing Protocol) Tunnels
ISATAP Tunnels的支持情况目前仅限于FVS318N与SRX5308,家用设备暂不支持.其为两个双栈设备的连通提供隧道, 主要为双栈主机提供通过IPv4网络接入IPv6的服务,并如该协议的名字Intra-Site一样,仅为站内提供隧道,每个IPv4地址均与IPv6地址有某种对应关系(IPv4地址被用于IPv6地址接口ID的一部分).定义于RFC5214。
配置方式
- 进入Network Configuration > WAN Settings > WAN Mode 选中IPv4 / IPv6 mode 以开启双栈(Dual-stack)模式
- 进入 Network Configuration > WAN Settings > ISATAP Tunnels
- 点击 Add 添加条目
- 在ISATAP Subnet Prefix处输入一个64位的前缀,这将成为逻辑ISATAP子网的前缀。
- Local End Point Address 选择为隧道节点路由器侧的IPv4地址,”LAN”意为使用Default VLAN虚接口地址,选择Other IP则手工输入。
- 如果 Local End Point Address 选择了Other IP, 则在IPv4 Address处手工填写。
例子
拓扑图如下
此拓扑应用的场景是出口防火墙外网连接IPv6网络,
内网是IPv4环境,大部分终端设备为IPv4设备,部分设备如PC1是双栈设备,这些双栈设备希望通过ISATAP隧道连接到IPv6网络。
在FVS318N开通IPv6/IPv4双栈后,进入Network Configuration > WAN Settings > ISATAP Tunnels添加条目,本例中我们设置隧道的前缀为2002:b72f:f475:e473::/64,IPv4设置成Default Vlan IPv4地址,完成配置:
此时PC要对应设置ISATAP隧道以无状态生成IPv6地址,本例中PC1我们使用一台Win XP,根据实际使用OS不同,操作命令略有差异,在此实验环境中,我们同样尝试使用了Win 7与Win 8,均运转正常:
C:\Documents and Settings\ vicissi > C:\Documents and Settings\vicissi>netsh netsh>interface ipv6 isatap netsh interface ipv6 isatap>set router 192.168.1.1 确定。
netsh interface ipv6 isatap>set sta enable 确定。
netsh interface ipv6 isatap>ipv6 netsh interface ipv6>show address 正在查询活动状态...
接口 6:Teredo Tunneling Pseudo-Interface
地址类型 DAD 状态 有效寿命 首选寿命 地址 --------- ---------- ------------ ------------ ----------------------------- 链接 首选项 infinite infinite fe80::ffff:ffff:fffd
接口 5:本地连接 14
地址类型 DAD 状态 有效寿命 首选寿命 地址 --------- ---------- ------------ ------------ ----------------------------- 链接 首选项 infinite infinite fe80::2ff:32ff:fe92:8eb2
接口 4:无线网络连接 16
地址类型 DAD 状态 有效寿命 首选寿命 地址 --------- ---------- ------------ ------------ ----------------------------- 链接 暂时的 infinite infinite fe80::219:d2ff:fe74:dae3
接口 2: Automatic Tunneling Pseudo-Interface
地址类型 DAD 状态 有效寿命 首选寿命 地址 --------- ---------- ------------ ------------ ----------------------------- 公用 首选项 29d23h59m43s 6d23h59m43s 2002:b72f:f475:e473:0:5efe: 192.168.1.2 链接 首选项 infinite infinite fe80::5efe:192.168.1.2 链接 首选项 infinite infinite fe80::5efe:192.168.0.12
接口 1:Loopback Pseudo-Interface
地址类型 DAD 状态 有效寿命 首选寿命 地址 --------- ---------- ------------ ------------ ----------------------------- 环回 首选项 infinite infinite ::1 链接 首选项 infinite infinite fe80::1
netsh interface ipv6> |
静态或手工指定地址Fixed(Static IPv6)
这意味着要手工指定LAN与WAN侧的IPv6地址。需要注意的是,由于IPv6拥有足够多的地址空间,已经不再需要NAT或PAT,IPv6消除了地址转换,虽然在过渡期有4与6的地址转换技术(例如NAT64,NAT-PT,TRT,6RD或DS-Lite),但NETGEAR的路由器暂不对上述技术提供支持,此时设备只作为IPv6路由器。
对于防火墙:
- 进入Network Configuration > WAN Settings > WAN Mode 选中IPv4 / IPv6 mode 以开启双栈(Dual-stack)模式
- 进入Network Configuration > WAN Settings > Broadband ISP Settings
- 在屏幕右上角单选IPv6以切换到WAN IPv6设置模式
- 将IPv6下拉菜单选为Static IPv6
- 在Static IP Address处填写IPv6 Address;IPv6 Prefix Length; Default IPv6 Gateway; Primary DNS Server; Secondary DNS Server
- 点击Apply应用配置。
对于家用路由设备:
- 点击进入 ADVANCED > Advanced Setup > IPv6
- 在 Internet Connection Type下拉菜单中选择 Fixed
- 填写 IPv6 Address/Prefix Length; Default IPv6 Gateway;Primary DNS; Secondary DNS
- 对于LAN的设置可以参考前文中6to4隧道部分例子一的相关内容。
- 点击Apply应用配置。
例子:
这个拓扑使用纯IPv6网络,地址的前48位为2001:17e7:9ea2,意为NETGEAR(参考附录8),接下来的16位从左到右为2,0和1,代表区域,各个设备使用设备型号318和3700,两台PC以1和2作为接口ID。
以下截图为FVS318N与WNDR3700v3的配置界面。
上图为FVS318N的WAN IPv6设置(2001:17e7:9ea2::318/64 网关2001:17e7:9ea2::3700/64)
上图为RADVD设置,LAN前缀2001:17e7:9ea2:2::/64。
上图设置了FVS318N LAN的IPv6地址(2001:17e7:9ea2:2::318/64).
上图为WNDR3700v3的IPv6设置,下面我们验证这一连通性:
自动获得IPv6地址(DHCP/ Auto Config)
自动获得一词包含两方面的含义,一为通过DHCPv6服务器状态化获取IPv6的相关信息,另一方面可以是SLAAC无状态的生成一个IPv6地址.选项会使得路由器的WAN口发起SOLICIT,并按照状态化或无状态化DHCPv6的方式协商设置IPv6相关信息.商用设备选择DHCP即可,家用设备无状态的SLAAC对应Auto Config,状态化对应DHCPv6。
对于防火墙:
- 进入Network Configuration > WAN Settings > WAN Mode 选中IPv4 / IPv6 mode 以开启双栈(Dual-stack)模式
- 选择 Network Configuration > WAN Settings > Broadband ISP Settings
- 在屏幕右上角单选IPv6以切换到WAN IPv6设置模式
- 将IPv6下拉菜单选为DHCPv6
- 选择 Stateless Address Auto Configuration/ Stateful Address Auto Configuration以决定使用状态化或无状态化方式配置IP地址。
- 如果选中了无状态(Stateless Address Auto Configuration),将可以设置一个而外的参数Prefix delegation
- 勾选该参数使得防火墙LAN侧终端设备可以得到ISP状态化DHCPv6服务器提供的前缀信息(详细信息可以参考FVS318N手册 第三章Stateless DHCPv6 Server With Prefix Delegation部分内容)
- 点击Apply应用确认。
对于家用路由器:
- 点击进入 ADVANCED > Advanced Setup > IPv6
- 在 Internet Connection Type下拉菜单中选择 DHCP或Auto Config
- 对于LAN的设置可以参考前文中6to4隧道部分例子一的相关内容。
- 点击Apply应用配置。
例子:
防火墙或路由器WAN口直连IPv6 ISP即可,不做图例,配置截图如下:
如上图,家用路由器在配置界面即可查看已配置的IPv6地址,商用设备可以在Monitoring菜单中查看相关信息:
PPPoE
在DHCPv6的基础上设置账号密码即可,如果您的运营商提供纯IPv6网络且以PPPoE方式接入,可选此类别。
穿透(Pass through)
这一功能仅由家用路由器提供,可将路由器看作是透明的,即LAN侧的PC通过路由器WAN对端设备的IPv6配置方式联网,需要注意的是”透明”这一概念仅对IPv6而言,这一选项不会影响IPv4原有的NAT行为,此时路由器是双栈的。
我们可以看到PC的网关为路由器WAN对端设备的IPv6链路本地单播地址,至少在网络层看来,被设置为pass through的路由器在IPv6上是不可见的。下面的截图是PC不使用路由器与使用了工作于透传模式的路由器时网络适配器配置IPv6的地址情况:
最后是Auto Detect
这一功能仅由家用路由器提供,实际上这并不是某种特别的接入或联网方式,如果选择此项,路由器会自动检测并选择上述方式中的一种,并将判断结果在Connection Type 条目中指出。
要提示的是,如果您试图使用IPv6地址访问管理界面,需要留意将地址放在中括号内部,否则默认情况下,浏览器会将冒号后内容理解为端口号,如图:
附录
附1.防火墙WAN IPv6默认配置
条目 |
默认设置 |
WAN IPv6 mode |
Disabled (IPv4 mode only) |
WAN MAC address |
Use default MAC address of the wireless VPN firewall |
WAN MTU size |
size 1500 bytes; 1492 bytes for PPPoE connections |
Port speed |
AutoSense |
附2.ISP信息表
如果您首次使用IPv6,下表可以助您搜集恰当的信息以便配置。
条目 |
ISP提供信息 |
IPv6 地址 |
|
IPv6 前缀长度 |
|
默认 IPv6 网关 |
|
首选 DNS 服务器地址 |
|
备用 DNS服务器地址 |
|
附3.可能支持IPv6的OS列表(以OS发行商为准)
Windows 7, all 32- and 64-bit versions Windows Vista, all 32- and 64-bit versions Windows XP Professional SP3 (32- and 64-bit) Windows Server 2008, all versions Windows Server 2008 R2, all versions Windows Server 2003, all versions Windows Server 2003 R2, all versions Linux and other UNIX-based systems with a correctly configured kernel MAC OS X |
附4.防火墙DHCPv6服务器设置说明
在防火墙LAN侧有两种方法被提供与客户端配置IPv6地址:状态化和无状态的DHCP服务。
状态化DHCPv6是一种简单的为LAN用户提供IPv6地址的方式。LAN用户会获得接口地址以及包括DNS服务器信息在内的其他参数.状态化的DHCPv6需要配置地址池,参照附录5。
如果使用无状态的DHCPv6服务,LAN用户会结合本地信息与路由器宣告信息生成IPv6地址。.但会从DHCPv6服务器获取DNS信息.无状态的DHCPv6需要配置路由宣告守卫进程(RADVD),这一配置方法可以参考本文6to4隧道部分LAN相关配置内容。
附5.使用防火墙在LAN侧配置状态化DHCPv6服务器
- 进入 Network Configuration > LAN Setup
- 单选屏幕右上角IPv6,设置界面如下图所示
- 参考下表完成配置:
设置项 |
描述 |
IPv6 LAN Setup |
j |
IPv6 Address |
键入 LAN IPv6 地址, 或保持默认值(FEC0::1). |
k |
IPv6 Prefix Length |
键入 LAN IPv6 前缀长度, 或保持默认值(64). |
DHCPv6 |
l |
DHCP Status |
下拉菜单,选择 Enable the DHCPv6 Server. |
m |
DHCP Mode |
下拉菜单,选择Stateful. |
|
Prefix Delegation |
状态化DHCP情况下,该选项不可用. |
n |
Domain Name |
键入DHCP server 域名称 |
o |
Server Preference |
键入DHCP server preference 值. 范围 0–255, 255是默认值. 这是在路由器宣告信息中的可选参数,终端设备参考此参数选择最佳DHCP服务器(最高值优先选择) |
p |
DNS Server |
下拉菜单中选择DNS选项: • Use DNS Proxy. 防火墙作为DNS代理,处理所有DNS请求,路由器将与您在Broadband ISP Settings处设置的运营商DNS通讯. • Use DNS from ISP. 使用您在Broadband ISP Settings处设置的运营商 • Use below.选择该选项后DNS server文本框可以填写: |
q |
Primary DNS Server |
键入首选DNS服务器 |
r |
Secondary DNS Server |
键入备用DNS服务器 |
s |
Lease/Rebind Time |
租期,默认为24小时(86400秒) |
附6.配置IPv6 LAN地址池
状态化DHCPv6需要地址池
- 在IPv6 LAN设置界面, List of IPv6 Address Pools下,单击Add以添加一个地址池:
- 参考下表完成配置
设置项 |
描述 |
Start IPv6 Address |
键入起始IP地址,这是地址池中顺序分配的第一个地址. |
End IPv6 Address |
键入终止IP地址,这是地址池中顺序分配的最后一个地址. |
Prefix Length |
键入前缀长度. |
- 点击Apply以完成应用。
附7. 配置路由宣告守卫进程(RADVD)
如果内网没有部署状态化DHCPv6服务器,需要启用防火墙的RADVD守护进程(Router Advertisement Daemon),以提供无状态的DHCPv6
- 进入Network Configuration > LAN Setup ,
- 单选IPv6,
- 点击RADVD,
- 将RADVD Status改为Enable. (RADVD其他参数设置与RA设置对比表可以参考FVS318N Reference Manual 第3章)
- 点击APPLY以应用
- 在Advertisement Prefix 处单击 Add 以添加Prefix条目.
附8.对于6to4隧道部分例子1的扩展内容
关于路由器的IPv6地址,按照2002:IPvdaddress:EUI-64的规则,我们从MAC地址4C:60:DE:45:05:4D和外网IPv4 219.137.75.232 ,得到了一个全局单播IPv6地址(global unicast IPv6)2002:db89:4be8:e472:4e60:deff:fe45:54d/64,这与我们所预料的一样。
考虑到安全(避免泄露MAC地址)与管理需求,也可以使用自定义路由器LAN的interface ID以代替使用EUI-64规则(64比特扩展唯一标识符由IEEE定义,其计算方式可已参考IEEE相关文档)生成的接口ID,本例中我们将接口ID改为17e7:9ea2,这是1337语言的netgear,由于IPv6使用了16进制的表达方式,而且考虑到其有128bit的事实,我们可以将地址规划的更易读,而几乎不用对由于这一举措造成的地址浪费感到愧疚.例如可以将netgear的控制器命名为:ac:7520;或者对于NETGEAR一位工号为603的工程师Eda来说,她的PC可以被命名为:Eda:603
关于两种IP地址分配方式需要注意的是,路由器并不作为完整的DHCPv6服务器,没有地址池与其他选项可以设置.当内网中没有完整DHCPv6服务器时,REPLAY消息中将不包含IA(Identity Association for Non-temporary)信息.不同选则改变的是ICMPv6路由器宣告消息RA中的flag值.很难讲这两个选项哪一个对应SLAAC(无状态地址自动配置),哪一个对应DHCPv6(包括状态化与无状态化),原因是ND(Neighbor Discovery)协议由于某种原因并未将M(Managed Flag)定义为范本(prescriptive),而只是作为建议(advisory)(可参考I-D Action: draft-liu-6renum-dhcpv6-slaac-switching-00),这将导致不同的操作系统会按照自己的方式处理M,O与A标记(详见DHCPv6/SLAAC Address Configuration Interaction Problem Statement draft-liu-bonica-dhcpv6-slaac-problem-02).我们能给出的参考是,对于大多数NETGEAR设备,当IP Address Assignment被设置为Use DHCP Server时A Flag=NULL;M Flag=1;O Flag=1.
在选择为Auto Config时A Flag=1;M Flag=0;O Flag=1.
对于部分操作系统来说,前者将按照仅DHCPv6,后者按照SLAAC+无状态DHCPv6的方式处理.SLAAC与DHCPv6(状态化/无状态)原理不在本文讨论范围内,详细技术细节可以参考RFC4862,RFC3315与RFC3736。如果选择了DHCP Server,当客户端发起SOLICIT后,路由器与DHCPv6服务器将各发送一条ADVERTISE,此时终端设备会根据RFC3315选择忽略哪一条ADVERTISE。
序号 |
日期 |
跟进人 |
内容摘要 |
1 |
2013-10-24 |
Vicissi |
文档创建 |
2 |
2013-11-1 |
Albert |
技术审稿 |
3 |
2013-11-20 |
Albert |
文档审阅更新 |
4 |
2013-12-5 |
Vicissi |
文档更新 |
5 |
2013-12-6 |
Albert |
校对 |
6 |
2013-12-6 |
Morly |
RBU内容审核 |
7 |
2013-12-10 |
Ben |
CBU内容审核 |