满天星 发表于 2010-11-25 22:36:55

配置IPv6下的的DNS服务器BIND

BIND上的IPv6功能介绍
BIND是目前互联网是使用最官方的DNS服务器端软件,对IPv6的支持也非常方便,BIND9 完全支持所有当前IPv6 中对名字到地址和地址到名字查询的定义。当运行在IPV6 兼容系统的时候,它也使用IPV6 地址进行请求。对于转发的查询,BIND9 同时支持A6 和AAAA 记录。同时具有对AAAA 和A6 记录的支持也是有用的,大多数操作系统所带的解析器只支持AAAA 的解析查询,因为A6 的解析要比A 和AAAA 的解析实现起来困难得多。A6记录目前已被废除,不在使用。
对于IP6 反向解析,BIND9 支持在域ip6.arpa 域中使用的新“bitstring”格式,同时也对于在ip6.int 域使用的老版本的,不建议使用的“单元组”格式化也是一样的。BIND9 包括新的轻量级的解析库和解析器后台进程,它使用了一些新的程序来避免A6的chain following 和bitstring 标签的复杂性。

配置服务器监听IPv6地址
首先我们只需要在Bind的配置文件中添加一个选项配置,即可使服务器监听IPv6地址:listen-on-v6{ any; };listen-on-v6 选项用来设定监听进入服务器的ipv6 请求的端口。
如果需要修改默认端口,以及只监听固定的IPv6地址, 则使用如下格式:listen-on-v6 port 1234 { 1234::1234; };要使服务器不监听任何ipv6 地址,使用:listen-on-v6 { none; };如果没有设定listen-on-v6 语句,服务器将不会监听任何ipv6 地址。

配置AAAA 记录
AAAA 记录和IPV4 的A 记录相似,需要在BIND的各个zone中进行配置。它在一个单独的记录中设定了全部地址。例如:$ORIGIN ipv6bbs.cn.
ipv6    3600 IN    AAAA         2001:1:2:3::1配置A6记录
虽然A6记录已被废除,但A6记录还是有部分应用,且是BIND支持的功能,A6 记录比AAAA 记录更灵活,也就更复杂。A6 记录可以用来形成一个A6 记录的链,其中每个记录设定了一部分的IPV6 地址。它也可以用来指定整个的记录。例如,这条纪录和前例中的AAAA 记录一样:$ORIGINipv6bbs.cn.
ipv6   3600    IN    A6      0       2001:1:2:3::1A6 链(Chains)
A6 记录允许network renumbering。但只有当一个A6 记录设置了域自主控制的地址段时起作用。例如,一个主机名字可能是公司名“company”。它有两个为之提供IPV6 地址空间的ISP。这两个ISPs 完全设定了他们提供的IPV6 前缀。

在公司的地址段中:$ORIGIN ipv6bbs.cn.
ipv6   3600    IN    A6    0:0:0:0:1::1    company.ipv6bbs1.net.
ipv6   3600    IN    A6    0:0:0:0:1::1    company.ipv6bbs2.net.ISP1 会使用:$ORIGINipv6bbs1.net.
company   3600   IN    A6    0      1234:1::ISP2 会使用:$ORIGINipv6bbs2.net.
company    3600   IN    A6   0      5678:2::当需要解析ipv6.ipv6bbs.cn 时,解析器(在解析器后台进程或caching 域名服务器中)会发现2 个部分的A6 记录,并使用其它的名字来找到其余的数据。

DNS 服务器的A6 记录
当A6 记录设置了一个域名服务器的地址,它应该使用完整的地址而不是部分地址。例如:$ORIGIN ipv6bbs.cn.
@      14400   IN       ns0
         14400   IN       ns1
ns0   14400   IN       A6       2001:1:2:3::1
ns1   14400   IN       A         1.2.3.4建议不要使用IPv4-in-IPv6 的地址映射。如果主机是IPV4 地址,就使用A 记录,而不是 ::ffff:1.2.3.4 的A6 记录。

使用Nibble 格式进行IPv6地址到域名的反向查询
虽然不建议使用Nibble 格式查找名字,但它能向下兼容支持现有的IPV6 应用。当解析一个nibble 格式的地址时,地址块被简单的翻转了,在名字的结果后面附加上一个ip6.int.,就象在IPv4 中一样。例如,下面的例子会为一台主机提供反转名称查询,地址是2001:1234:5678:1:987::1$ORIGIN    1.0.0.0.8.7.6.5.4.3.2.1.1.0.0.2.ip6.int.
1.0.0.0.0.0.0.0.0.0.0.0.7.8.9.0    14400   IN   PTR   ipv6.ipv6bbs.cn.使用bitstring 格式进行IPv6地址到域名的反向查询
位串标签可以在任何位边界上开始和结素,而不是象在单元组中那样在四个字节的倍数上。它们使用ip6.arpa 而不是ip6.int
用位串复制前面的例子:$ORIGIN   .ip6.arpa.
      14400   IN      PTR   ipv6.ipv6bbs.cn.用DNAME 来标示IPV6 的反向地址
在IPV6 中,同一台主机可能有许多来自不同网络提供商的地址。既然地址得结尾部分常常不变,DNAME 可以帮助减少需要维护的域反向映射文件的数量。例如,一台有两个提供商(ipv6bbs1.cn 和 ipv6bbs2.cn)的主机,这样有两个IPV6 地址。既然主机选择了它自己的64 位主机地址部分,变化得部分就只是提供商的地址了:$ORIGIN   ipv6bbs.cn
host    IN   A6   64   ::1234:5678:1212:5675   cust1.ipv6bbs1.cn.
         IN   A6   64   ::1234:5678:1212:5675   subnet5.ipv6bbs2.cn.$ORIGIN   ipv6bbs1.cn.
cust1      IN   A6   48   0:0:0:dddd::   ipv6net.ipv6bbs1.cn.
ipv6net   INA6    0    aa:bb:cccc::$ORIGIN ipv6bbs2.cn.
subnet5   INA6480:0:0:1::ipv6net2.ipv6bbs2.cn.
ipv6net2INA6   0   6666:5555:4::这里设置了正向查询。为了解决反向解析,提供者ipv6bbs1.cn 应该设置:$ORIGIN \.ip6.arpa.
\INDNAMEipv6-rev.ipv6bbs.cn并且ipv6bbs2.cn 应该设置:$ORIGIN\.ip6.arpa.
\INDNAMEipv6-rev.ipv6bbs.cnipv6bbs.cn 只需要一个域文件处理这些反向映射:$ORIGINipv6-rev.ipv6bbs.cn
\INPTRhost.ipv6bbs.cn
页: [1]
查看完整版本: 配置IPv6下的的DNS服务器BIND