0%

linux配置ipv6地址

Centos6配置IPv6地址。文中将IPv6地址和网关修改为了240c::6666/64240c::FFFE,相应输出中也进行了替换。

加载ipv6模块

2.x内核需要确认模块已加载。我的是4.x的内核,并没有ipv6这个模块。

1
2
# lsmod | grep ipv6
# modprobe ipv6

开机加载/卸载模块可以在/etc/modprobe.d/目录添加配置文件。

配置IPv6地址

1
# echo "NETWORKING_IPV6=yes" >> /etc/sysconfig/network

网卡文件添加:

1
2
3
IPV6INIT=yes
IPV6ADDR=240c::6666/64
IPV6_DEFAULTGW=240c::FFFE #很多教程里面写的是IPV6DEFAULTGW,坑

/etc/sysctl.conf添加(2.6.32.x内核不支持这些参数):

1
2
3
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

重启网卡,检查连通性

1
2
# service network restart
# ping6 -c3 -t3 240c::FFFE # ping网关

查看网卡信息,猜测fe80::1a66:daff:fef8:8818/64这个地址是系统自动添加的。

1
2
3
4
5
6
7
# ip addr show bond0
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
xxxx
inet6 240c::6666/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::1a66:daff:fef8:8818/64 scope link
valid_lft forever preferred_lft forever

查看IPv6路由信息,重点关注default条目。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# ip -6 route show
unreachable ::/96 dev lo metric 1024 error -113
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113
unreachable 2002:a00::/24 dev lo metric 1024 error -113
unreachable 2002:7f00::/24 dev lo metric 1024 error -113
unreachable 2002:a9fe::/32 dev lo metric 1024 error -113
unreachable 2002:ac10::/28 dev lo metric 1024 error -113
unreachable 2002:c0a8::/32 dev lo metric 1024 error -113
unreachable 2002:e000::/19 dev lo metric 1024 error -113
2401:7e00:fffd:12::/64 dev bond0 proto kernel metric 256
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113
fe80::/64 dev bond0 proto kernel metric 256
fe80::/64 dev em3 proto kernel metric 256
default via 240c::fffe dev bond0 metric 1

IPv6公共DNS服务器

IPv6的DNS服务器并非是只提供IPv6地址解析的,同样IPv4的DNS服务器中也可以查到IPv6记录(AAAA记录),记录类型和DNS服务器本身使用的IP版本没有任何关系

使用IPv6 DNS服务器的场景是服务器没有IPv4地址,无法连接到IPv4的DNS服务器。

1
2
3
4
5
6
下一代互联网国家工程中心 推出的服务器: 240c::6666,240c::6644
百度公共 DNS 服务器: 2400:da00::6666
Google Public DNS 延迟太高,还不稳定。 服务器: 2001:4860:4860::8888,2001:4860:4860::8844
OpenDNS 延迟太高, 服务器: 2620:0:ccc::2
上海交大 服务器: 2001:da8:8000:1:202:120:2:101
中科大 服务器: 2001:da8::666

配置之前先确保53端口是通的。

1
2
3
4
5
6
7
# telnet 240c::6666 53
Trying 240c::6666...
Connected to 240c::6666.
Escape character is '^]'.
^]
telnet> quit
Connection closed.

/etc/resolv.conf文件添加:

1
nameserver 240c::6666

强制使用IPv6 DNS进行域名解析(注意看SERVER是IPv6地址):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# dig -6 www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -6 www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6090
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com. IN A

;; ANSWER SECTION:
www.baidu.com. 855 IN CNAME www.a.shifen.com.
www.a.shifen.com. 136 IN A 182.61.200.7
www.a.shifen.com. 136 IN A 182.61.200.6

;; Query time: 40 msec
;; SERVER: 240c::6666#53(240c::6666)
;; WHEN: Wed Apr 15 11:47:51 2020
;; MSG SIZE rcvd: 90

获取域名的AAAA记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# dig -t aaaa www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -t aaaa www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28409
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com. IN AAAA

;; ANSWER SECTION:
www.baidu.com. 1143 IN CNAME www.a.shifen.com.
www.a.shifen.com. 243 IN AAAA 2408:80f0:410c:1d:0:ff:b07a:39af
www.a.shifen.com. 243 IN AAAA 2408:80f0:410c:1c:0:ff:b00e:347f

;; Query time: 5 msec
;; SERVER: 119.29.29.29#53(119.29.29.29)
;; WHEN: Wed Apr 15 11:49:44 2020
;; MSG SIZE rcvd: 114

IPv6 DNS参考:https://www.v2ex.com/t/498967