我的ISP刚刚启动了IPv4 / IPv6双协议栈服务。为了连接IPv4 / IPv6 Internet,几乎所有用户通常都使用ISP租用的CPE。但是我想使用我的Linux路由器而不是这种CPE,因为我的路由器具有许多角色(很多iptables规则和3个以太网接口,http反向代理,http缓存,memcached,smtp / pop服务器和DNS代理)。我想让它成为IPv4 / IPv6双协议栈路由器。
我的路由器
- CentOS6.0 i686
- WAN的eth0
- eth1,2代表LAN
- 由CentOS更新存储库中的“#yum install dhcp”安装的ISC dhcp(版本4.1.1)
- radvd(1.6版),由CentOS-base存储库中的“#yum install radvd”安装
- [编辑]我使用ISC dhclient的原因是我的路由器必须在其请求和请求消息中发送DHCPv6选项16(供应商类别),以便获得包括某些ISP特定信息的供应商特定信息选项( SIP电话号码,固件服务器地址)。我知道如何在ISC dhclient中设置选项16,但在WIDE-dhcpv6中却不知道。而且我在ISC dhclient中找不到“ id-assoc”这样的设置。
我的目标
- / 48前缀被委托给eth0上的DHCPv6-PD(DHCPv6前缀委派)客户端(dhclient)。
- 将IPv6默认路由设置为指向ISP。我必须考虑将ISP的DHCPv6服务器的本地链接地址作为默认路由。
- 每个LAN I / F(eth1 / eth2)分配一个/ 64子网和一个全局地址(在委托的前缀中)。
- eth1和eth2上的radvd根据分配的/ 64子网宣布RA。
- eth1和eth2上的dhcpd6宣布从ISP的DHCPv6服务器接收到的其他网络信息(名称服务器,域搜索列表和sip服务器地址)。
我当前的配置
/ etc / sysconfig / network
NETWORKING=yes
HOSTNAME=xxx.yyy.zzz
# Enable IPv6 routing and stop accept_ra/autoconf.
IPV6FORWARDING=yes
/ etc / sysconfig / network-scripts / ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
# Enable DHCPv6-PD client.
DHCPV6C=yes
DHCPV6C_OPTIONS="-P -cf /etc/dhcp/dhclient6.conf"
# Disable make_resolv_conf function in /sbin/dhclient-script.
PEERDNS=no
/etc/dhcp/dhclient6.conf
script "/sbin/dhclient-script";
interface "eth0" {
send dhcp6.reconf-accept;
also request dhcp6.vendor-opts, dhcp6.sip-servers-names, dhcp6.sip-servers-addresses, dhcp6.sntp-servers;
}
结果
在“#服务网络重新启动”之后,DHCPv6-PD客户端似乎成功完成。
lease6 {
interface "eth0";
ia-pd xx:xx:xx:xx {
starts 1312464004;
renew 7200;
rebind 10800;
iaprefix 24xx:xxxx:xxxx::/48 {
starts 1312464004;
preferred-life 12600;
max-life 14400;
}
}
option dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
option dhcp6.server-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
option dhcp6.reconf-accept ;
option dhcp6.sip-servers-addresses 24xx:xxxx:xxxx:xxxx::1;
option dhcp6.name-servers 24xx:xxxx:xxxx:xxxx::3,24xx:xxxx:xxxx:b::3;
option dhcp6.domain-search "xxx.jp.", "yyy.jp.";
option dhcp6.sntp-servers 24xx:xxxx:xxxx:xxxx::a,24xx:xxxx:xxxx:b::b;
}
题
DHCPv6-PD客户端成功委派了/ 48前缀。但是之后
- 如何在路由器的路由表中设置IPv6默认路由?
- 如何基于委托前缀为每个LAN I / F(eth1和eth2)分配全局IPv6地址和/ 64子网?
- 如何触发radvd在每个LAN I / F(eth1和eth2)上宣布RA?
- 如何在每个LAN I / F上触发DHCPv6服务器(dhcpd6),以宣布从ISP的DHCPv6服务器接收到的其他网络信息(名称服务器,域搜索列表和sip服务器地址)?
我猜
根据“ $ man dhclient”和“ $ man dhclient-script”,dhclient-script似乎用于配置此类设置,并且提供了一些挂钩。但是现在,它对DHCPv6-PD客户端不起作用。
是的,尽管我对IPv6网络配置不熟悉,但我可能必须编写一些适合我的DHCPv6-PD环境的脚本。有人让我知道dhclient-script中的上述设置吗?[编辑]我想了解实用的dhclient-script。
我担心,应该特别注意一些事项。例如,由于每个IPv6地址都有首选/有效生存期,因此当我基于委托前缀将全局IPv6地址分配给LAN接口时,不仅要分配一个IPv6地址,还要分配其生存期(必须从委托中派生)前缀的首选/有效寿命?
另外,在进行DHCPv6重新配置时,可能必须重新配置LAN接口上的radvd和DHCPv6服务器。应该使用哪个挂钩?
[编辑]进行DHCPv6重新配置时,如何宣布新信息和过时信息?radvd自动宣布以前的前缀已过时?DHCPv6服务器自动宣布以前的名称服务器已过时?