为了能有IPv6链接,在重新配置了系统之后又把以前做过的 Radvd 和 使用 HE 提供的 Tunnel Broker 的服务又配置了一遍:
首先要有一个 Hurrican Electric 的 Tunnel Broker 帐号,注册很方便,过程略。
内核要开启Tunnel支持,可见链接中的Wiki。
自用的配置脚本:
由于我用的ADSL拨号网络IP总是变化,所以不能用固定的文件去配置,需要一枚脚本:
https://github.com/ryncsn/he-ipv6-init-script/raw/master/hev6.sh
放到/usr/local/sbin/
wget https://raw.githubusercontent.com/ryncsn/he-ipv6-init-script/master/hev6.sh -O /usr/local/sbin/hev6-init vim /usr/local/sbin/hev6-init
按照 Tunnel Broker 帐号和申请的 Tunnel 信息配置开头的各种变量,INTERFACE是 Tunnel 经过的的 Interface,需要能接受服务器发来的 6in4 (Protocal 41) 包,且有独立公网地址。ROUTE_INTERFACE是本地需要提供IPv6网络的接口,对我来说就是内网。
配置服务:
要让服务自启动。之后写一个服务资源文件:
Gentoo中:
vim /etc/init.d/hev6-init
#!/sbin/runscript # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ description="Hurrican Electric Tunnel Broker" command="/usr/local/sbin/hev6-init" log_file="/var/log/hev6" depend() { need net use logger dns } start() { ebegin "Starting DDNS on ${IFACE}" start-stop-daemon --start --background \ --stdout $log_file --stderr $log_file \ --exec $command } stop() { ebegin "Stopping HE v6 tunnel" $command clear eend $? }
启用,启动服务。
rc-update add hev6-init default service hev6-init start
Systemd版:
vim /etc/systemd/system/hev6.service
[Unit] Description=Hurrican Electric IPv6 Tunnel Broker After=syslog.target network.target remote-fs.target nss-lookup.target [Service] TimeoutSec=0 PIDFile=/run/hev6.pid ExecStart=/usr/local/sbin/hev6-init ExecStop=/usr/local/sbin/hev6-init clear Restart=on-failure [Install] WantedBy=multi-user.target
systemctl enable hev6 systemctl start hev6
服务启动之后通过ping6 ipv6.google.com测试,无问题。
配置Radvd:
配置radvd,在要提供IPv6服务的接口上开启路由通知:
emerge radvd vim /etc/radvd.conf
参考配置,酌情修改网段信息等:
interface eth0 { AdvSendAdvert on; MinRtrAdvInterval 3; MaxRtrAdvInterval 10; AdvDefaultPreference low; AdvHomeAgentFlag off; prefix 2001:470:ffff:ffff::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
之后配置服务开机自起:
service radvd start rc-update add radvd default
Gentoo中启动radvd 服务会自动开启ipv6 forwarding。
我的另一机器是 Centos 7,配置时需要手动在/etc/sysctl.con中加入:
net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1
配置ip6tables:
增加TUNNEL Chain,配置类似如下:
-A FORWARD -j TUNNEL :TUNNEL - [0:0] -A TUNNEL -s 2001:470:ffff:ffff::/64 -j ACCEPT -A TUNNEL -d 2001:470:ffff:ffff::/64 -j ACCEPT -A TUNNEL -s fe80::/10 -j ACCEPT -A TUNNEL -d fe80::/10 -j ACCEPT -A TUNNEL -j RETURN
之后在网络上接入其他设备,ping6 ipv6.google.com,测试无问题即可用。
相关链接:
Tunnel broker:
http://tunnelbroker.net/
Gentoo Wiki:
https://wiki.gentoo.org/wiki/IPv6_router_guide#Using_radvd