UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS7 IPv6の設定




CentOS7でIPv6の設定方法についてです。IPv4の基本的な設定方法についてはこちらを御覧ください。

IPv4と同様にnmtuiまたはnmcliを使ってIPv6アドレスを設定します。以下ではnmcliコマンドを使ったIPv6アドレスの設定方法について記載しています。デフォルトでIPv6は有効となっており、リンクローカルアドレスが割り振られています。


# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1a:a0:0c:a6:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.18.130/24 brd 133.92.18.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::21a:a0ff:fe0c:a612/64 scope link
       valid_lft forever preferred_lft forever

IPv6で外部と通信を実施する際にはグローバルユニキャストアドレスが必要となりますのでそれように設定する必要があります。まず、以下のファイルでIPv6アドレスを設定できるようインターフェイスの設定を実施しておく必要があります。

# vi /etc/sysconfig/network-scripts/ifcfg-eno1
<省略>
IPV6INIT=yes

上記設定を有効にするためにNetworkManagerを再起動します。


# systemctl restart NetworkManager

続いてnmcliコマンドでグローバルユニキャストアドレスを設定します。実際の設定コマンドは下記となります。


※下記を入れないとIPv6アドレスが設定ができなかった
# nmcli connection modify eno1 ipv6.method "auto"

※IPv6アドレスおよびゲートウェイの設定
# nmcli connection modify eno1 ipv6.addresses "2001:db8::100/64 2001:db8:0::1"

※autoからmanualに変更
# nmcli connection modify eno1 ipv6.method "manual"

※DNSサーバの設定
# nmcli connection modify eno1 ipv6.dns "2001:db8:0::1 2001:db8:0::2"

そして再度、設定を有効にするためにネットワークを再起動します。IPv6を設定した場合、NetworkManagerとnetworkの両方を再起動しないと有効になりませんでした。

# systemctl restart NetworkManager
# systemctl restart network

再度IPアドレスを表示すると上記で設定したIPv6アドレスが表示されます。

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1a:a0:0c:a6:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.18.130/24 brd 133.92.18.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 2001:db8::100/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::21a:a0ff:fe0c:a612/64 scope link
       valid_lft forever preferred_lft forever

ちなみにIPv6のアドレスのみを表示したい場合はオプションで-6を付け加えることでIPv4は非表示とできます。

# ip -6 addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:db8::100/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::21a:a0ff:fe0c:a612/64 scope link
       valid_lft forever preferred_lft forever

IPv6のルーティングテーブルも同様に-6オプションをつけることによってIPv6のものを表示することができます。

# ip -6 route
unreachable ::/96 dev lo  metric 1024  error -101
unreachable ::ffff:0.0.0.0/96 dev lo  metric 1024  error -101
2001:db8::/64 dev eno1  proto kernel  metric 256
unreachable 2002:a00::/24 dev lo  metric 1024  error -101
unreachable 2002:7f00::/24 dev lo  metric 1024  error -101
unreachable 2002:a9fe::/32 dev lo  metric 1024  error -101
unreachable 2002:ac10::/28 dev lo  metric 1024  error -101
unreachable 2002:c0a8::/32 dev lo  metric 1024  error -101
unreachable 2002:e000::/19 dev lo  metric 1024  error -101
unreachable 3ffe:ffff::/32 dev lo  metric 1024  error -101
fe80::/64 dev eno1  proto kernel  metric 256
default via 2001:db8::1 dev eno1  proto static  metric 1024

ping6コマンドで自分自身に応答があることも確認しておきます。

# ping6 2001:db8::100
PING 2001:db8::100(2001:db8::100) 56 data bytes
64 bytes from 2001:db8::100: icmp_seq=1 ttl=64 time=0.081 ms
64 bytes from 2001:db8::100: icmp_seq=2 ttl=64 time=0.019 ms
64 bytes from 2001:db8::100: icmp_seq=3 ttl=64 time=0.017 ms

さらにもとから設定されているリンクローカルアドレス ( fe80::21a:a0ff:fe0c:a612/64 ) は使わないのでこれのみ削除するコマンドが以下となります。

# ip addr del fe80::21a:a0ff:fe0c:a612/64 dev eno1

再度IPv6アドレスを表示するとグローバルユニキャストアドレスのみであることが確認できます。

# ip -6 addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:db8::100/64 scope global
       valid_lft forever preferred_lft forever



そもそもIPv6は使用しないので無効にしておきたいという方もたくさんいらっしゃると思います。この場合はCentOS6までと同様の方法でIPv6を無効とすることができます。/etc/sysctl.confを編集します。

# vi /etc/sysctl.conf

<下記を追記>
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

次のコマンドで有効にします。

# sysctl -p

<省略>
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

IPv6アドレスが表示されなくなったことを確認します。

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1a:a0:0c:a6:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.18.130/24 brd 133.92.18.255 scope global eno1
       valid_lft forever preferred_lft forever



 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.