代码改变世界

IPv6 — 实践

2020-04-19 14:51  云物互联  阅读(1190)  评论(0编辑  收藏  举报

目录

前文列表

IPv6 — 网际协议第 6 版
IPv6 — 地址格式与寻址模式
IPv6 — 协议头
IPv6 — 基于邻居发现协议的通信方式
IPv6 — 子网划分
IPv6 — 路由方式
IPv6 — 移动性

常用命令

# 查看 IPv6 地址
ip -6 addr

# 查看 IPv6 路由
ip -6 route

# 查看 IPv6 多播地址
ip -6 maddr
netstat -gn

# 查 DNS AAAA 记录(走 IPv4线路)
dig -t AAAA ipv6.baidu.com
nslookup -query=AAAA ipv6.baidu.com

# 查 DNS AAAA 记录(走 IPv6 线路)
dig @2620:0:ccc::2 -6 -t AAAA ipv6.baidu.com
nslookup -query=AAAA ipv6.baidu.com 2620:0:ccc::2

# 查 DNS AAAA记录(走 IPv6 线路的最纯粹、最完整、最靠谱方法)
dig @2620:0:ccc::2 -t AAAA -6 ipv6.baidu.com +trace

# curl IPv6
curl -6 ipv6.baidu.com
curl http://[2400:da00:2::29]/

# ping IPv6
ping -6 2400:da00:2::29
ping6 2400:da00:2::29

# wget
curl http://[2400:da00:2::29]/

# ssh
ssh root@2400:da00:2::29

# ftp
ftp 2400:da00:2::29

# telnet
telnet 2400:da00:2::29 80

# traceroute
traceroute -6 ipv6.baidu.com
traceroute6 ipv6.baidu.com

# mtr
mtr -6 ipv6.baidu.com

# 邻居地址解析
ndisc6 -n 2002::102 eth0

# iptables 查看
ip6tables-save

# tcpdump
tcpdump -nnn -i eth0 ip6

# 查询自己是否拥有公网 IPv6 地址
http://www.test-ipv6.com
http://ip6tools.com/#WhatisMyIPv6Address

开启/关闭 IPv6 支持

# 检查 IPv6 是否开启
sysctl -a | grep ipv6 | grep disable
ip -6 addr | grep inet6

# 临时禁用 IPv6
sysctl -w net.ipv6.conf.all.disable_ipv6=1

# 临时开启 IPv6
sysctl -w net.ipv6.conf.all.disable_ipv6=0

# 彻底禁用 IPv6,在 grub 里添加 ipv6.disable=1,然后重启操作系统。

在 CentOS7 上配置 IPv6 地址

自动获取链路本地地址

  • /etc/sysconfig/network
NETWORKING_IPV6=yes
  • /etc/sysconfig/network-script/ifcfg-ethX
IPV6INIT=yes
  • 重启网络
service network restart
  • 验证:ifconfig -a 查看 IPv6 地址信息,系统会自动分配一个 fe80: 开头的链路本地地址。

配置静态全球唯一地址

  • 内核参数
# /etc/sysctl.conf里增加
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.lo.disable_ipv6=0

# 立即生效
sysctl -p
  • /etc/sysconfig/network 里增加一行
NETWORKING_IPV6=yes
  • /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=2002::102/64
IPV6_DEFAULTGW=2002::1
  • 重启网络
systemctl restart network
  • 验证:用命令 ifconfig -a 查看 IPv6 地址信息,系统不仅会自动分配一个 fe80: 开头的链路本地地址,还有一个手动配置的全球唯一 IPv6 地址。

配置临时 IPv6 地址

  • 查看系统是否加载了 IPv6 模块
$ lsmod |grep ipv6
  • 如果没有则执行该命令加载
modprobe ipv6 
  • 加载成功后配置临时 IPv6 地址
$ ifconfig eth1 inet6 add 2409:801e:5008:5110::179/124
$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::f816:3eff:fe1b:ec2e/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::f816:3eff:fedf:73a2/64 scope link
       valid_lft forever preferred_lft forever


$ route -A inet6 add default gw 2409:801e:5008:5110::177 dev eth1
$ ip -6 r
2409:801e:5008:5110::170/124 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
default via 2409:801e:5008:5110::177 dev eth1 metric 1 pref medium


$ ping6 2409:801e:5008:5110::177

添加 IPv6 默认路由网关

  • 查看 IPv6 路由表
route -A inet6
  • 添加默认网关
route -A inet6 add ::/0 gw 2001:da8:203:ec7::1