IPv6
1. NAT64及びDNS64によるIPv6の導入
1.1 TaygaによるNAT64の導入
NAT64を利用してLAN内部にIPv6環境を導入し、インターネットへの通信は
IPv4にプロトコル変換することでIPv6環境のままでIPv4及びIPv6の通信を実現する。
apt-getによりTaygaをインストールする。
# sudo apt-get install tayga
IPv6のNAT64を実施するために物理インタフェースに割当てるIPアドレスは以下とする
Interface: enp0s25
IPv4
Address: 192.168.254.1/24
Gateway: 192.168.254.254
DNS : 127.0.0.1
IPv6
Address: 2001:db8:1::1/64
Gateway: 2001:db8:1::ffff
DNS : ::1
IPv4及びIPv6アドレスを設定する
# sudo nmcli connection modify enp0s25 ipv4.method manual ipv4.addresses 192.168.254.1 ipv4.gateway 192.168.254.254 ipv4.dns 127.0.0.1
# sudo nmcli connection modify enp0s25 ipv6.method manual ipv6.addresses 2001:db8:1::1/64 ipv6.gateway 2001:db8:1::ffff ipv6.dns ::1
設定値入力の確認
# sudo nmcli connection show enp0s25
ipv4.method: manual
ipv4.dns: 127.0.0.1
ipv4.addresses: 192.168.254.1/24
ipv4.gateway: 192.168.254.254
ipv6.method: manual
ipv6.dns: ::1
ipv6.addresses: 2001:db8:1::1/64
ipv6.gateway: 2001:db8:1::ffff
設定値の反映
sudo nmcli connection down enp0s25
sudo nmcli connection up enp0s25
設定値の適用確認
# sudo ip address show
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
inet 192.168.254.1/24 brd 192.168.254.255 scope global enp0s25
valid_lft forever preferred_lft forever
inet6 2001:db8:1::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::****:****:****:****/64 scope link
valid_lft forever preferred_lft forever
Linuxのデフォルトでは、IPv6のフォワーディングが無効化されているため、これを有効化してルータとして動作させる。
# sudo vim /etc/[[sysctl]].d/10-ipv6-privacy.conf
net.ipv6.conf.all.forwarding=1
# sysctl --system
設定の反映確認
# sudo sysctl -a | grep net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 1
ルータにIPv6のゲートウェイ及びルーティングの設定を行う。
この時、Vlan100はIPv6用のWindows端末、Vlan254はLinuxサーバとする。
また、DNS64にてIPv4がアサインされるIPv6アドレスプールは2001:db8:1:ffff::/96とする。
Vlan100
IPv6 Address: 2001:db8::ffff/64
IPv6 Link-Local: fe80::ffff
Vlan254
IPv4 Address: 192.168.254.254/24
IPv6 Address: 2001:db8:1::ffff/64
IPv6 Link-Local: fe80::ffff
DNS64変換用のIPv6アドレスプール
2001:db8:1:ffff::/96
以下、Ciscoルーターの例
Router# configure terminal
Router(config)# ipv6 unicast-routing
Router(config)# ipv6 cef
Router(config)#
Router(config-if)# interface Vlan100
Router(config-if)# ipv6 address FE80::FFFF link-local
Router(config-if)# ipv6 address 2001:DB8::FFFF/64
Router(config-if)# ipv6 enable
Router(config-if)# ipv6 nd other-config-flag
Router(config-if)# exit
Router(config)#
Router(config)# interface Vlan254
Router(config-if)# ip address 192.168.254.254 255.255.255.0
Router(config-if)# ip nat inside
Router(config-if)# ipv6 address FE80::FFFF link-local
Router(config-if)# ipv6 address 2001:DB8:1::FFFF/64
Router(config-if)# ipv6 enable
Router(config-if)# ipv6 nd other-config-flag
Router(config-if)# exit
Router(config)#
Router(config)# ipv6 route 2001:DB8:1:FFFF::/96 Vlan254 2001:DB8:1::1
Router(config)# end
Taygaで使用するNAT64のIPv4アドレス、及びNAT64変換用IPv4, IPv6プールは以下とする。
Config: /etc/tayga.conf
IPv4 Address: 192.168.255.1
IPv4 Pool: 192.168.255.0/24
IPv6 Pool: 2001:db8:1:ffff::/96
Taygaのコンフィグ設定
# sudo vim /etc/tayga.conf
ipv4-addr 192.168.255.1
prefix 2001:db8:1:ffff::/96
dynamic-pool 192.168.255.0/24
TaygaのNAT64インタフェースを作成し、IPv4, IPv6アドレス及びルーティングを関連付ける。また、
iptables設定よりIPv4変換後のNAPT設定を行う。
# sudo tayga --mktun
# sudo ip link set up dev nat64
# sudo ip address add 192.168.254.1 dev nat64
# sudo ip address add 2001:db8:1::1 dev nat64
# sudo ip route add 192.168.255.0/24 dev nat64
# sudo ip route add 2001:db8:1:ffff::/96 dev nat64
# sudo iptables -t nat -I POSTROUTING 1 -o enp0s25 -j MASQUERADE
# sudo iptables -I FORWARD 1 -i enp0s25 -o nat64 -m state --state RELATED,ESTABLISHED -j ACCEPT
# sudo iptables -I FORWARD 2 -i nat64 -o enp0s25 -j ACCEPT
Taygaを起動し、ゲートウェイに通信が可能か確認する。
# sudo tayga
# ping6 2001:db8:1:ffff::192.168.254.1
PING 2001:db8:1:ffff::192.168.254.1(2001:db8:1:ffff::c0a8:fe01) 56 data bytes
64 bytes from 2001:db8:1:ffff::c0a8:fe01: icmp_seq=1 ttl=63 time=0.365 ms
64 bytes from 2001:db8:1:ffff::c0a8:fe01: icmp_seq=2 ttl=63 time=0.198 ms
IPv6の端末より通信を行い、NAT64変換が行われていることを確認する。
Win端末側(IPv6: 2001:db8::1/64)
C:\>ping 2001:db8:1:ffff::192.168.254.1
Pinging 2001:db8:1:ffff::c0a8:fe01 with 32 bytes of data:
Reply from 2001:db8:1:ffff::c0a8:fe01: time<1ms
Linux側(IPv6: 2001:db8:1::1/64)
cat /var/spool/tayga/dynamic.map
192.168.255.53 2001:db8::1 1474736673
上記ログより、Win端末がNAT64変換で2001:db8::1 ⇔ 192.168.255.53と変換されていることが確認できる。
1.2 bind9によるDNS64の導入
DNS64によりIPv4アドレスをIPv6アドレスにマッピングし、IPv6端末からのAAAAのDNSクエリをマッピングしたAAAAレコードで応答する。
Taygaで使用するNAT64のIPv4アドレス、及びNAT64変換用IPv4, IPv6プールは以下とする。
Config: /etc/
bind/named.conf.options
マッピング先IPv6: 2001:db8:1:ffff::/96
再帰クエリ: yes
DNSSEC応答: yes
bind9のコンフィグ設定
# sudo vim /etc/bind/named.conf.options
acl rfc1918 { 10/8; 192.168/16; 172.16/12; };
dnssec-validation no;
listen-on-v6 { any; };
allow-query {
::1;
127.0.0.1;
192.168/16;
2001:db8::/64;
};
allow-transfer { none; };
allow-recursion { rfc1918; 127.0.0.1; ::1; 2001:db8::/64; };
dns64 2001:db8:1:ffff::/96 {
clients { any; };
mapped { !rfc1918; any; };
exclude { 2001:db8:1:ffff::/96; ::ffff:0000:0000/96; };
suffix ::;
recursive-only yes;
break-dnssec yes;
};
dns64-server "dns64.example.jp.";
dns64-contact "hostmaster.example.jp.";
IPv6クライアント端末よりAAAAクエリ確認
C:\>nslookup
Default Server: UnKnown
Address: 2001:db8:1::1
> www.google.co.jp.
Server: UnKnown
Address: 2001:db8:1::1
Non-authoritative answer:
Name: www.google.co.jp
Addresses: 2001:db8:1:ffff::acd9:1a63
172.217.26.99
上記ログよりAAAAレコードがIPv4よりIPv6にマッピングされ、AAAAレコードで応答していることが確認出来る。
最終更新:2016年09月25日 04:10