server-memo.net

CentOS7 IPv6の無効化設定

   

「CentOS7」でIPv6を無効化する方法です。

IPv6無効化の注意点

「CentOS7」ではIPv6を無効化することは、SELinuxやその他のコンポーネントで影響があるため推奨されていないとCentOSのWikiに記述がありますので、その点についてはご理解をしてから設定を行ってください。

[CentOS Wiki] 5. How do I disable IPv6?

一時的にIPv6を無効化する方法

この方法でIPv6を無効化した場合、サーバの再起動やネットワークの再起動を行うとIPv6が有効化されてしまします。

# echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
# echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

その他の方法として「sysctl -w」コマンドを使用して一時的にIPv6を無効化させる方法もあります。

# sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
# sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6 = 1

IPv6無効化の確認

「ip a」コマンドでIPv6のアドレスが表示されないことを確認してください。

IPv6が有効化されている状態

IPv6が有効化されている状態では「inet6」という項目があり、IPv6が有効化されていることが確認できます。

# ip a
1: lo:  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: eno16777736:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:13:ae:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.129/24 brd 192.168.56.255 scope global dynamic eno16777736
       valid_lft 1725sec preferred_lft 1725sec
    inet6 fe80::20c:29ff:fe13:aea2/64 scope link
       valid_lft forever preferred_lft forever
3: eno33554960:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:13:ae:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.130/24 brd 192.168.1.255 scope global eno33554960
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe13:aeac/64 scope link tentative dadfailed
       valid_lft forever preferred_lft forever

IPv6が無効化された状態

IPv6が無効化されている状態では、「inet6」という項目が表示されておらず、IPv6が無効化されていることが確認できます。

# ip a
1: lo:  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: eno16777736:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:13:ae:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.129/24 brd 192.168.56.255 scope global dynamic eno16777736
       valid_lft 1373sec preferred_lft 1373sec
3: eno33554960:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:13:ae:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.130/24 brd 192.168.1.255 scope global eno33554960
       valid_lft forever preferred_lft forever

恒久的にIPv6を無効化する方法

「/etc/sysctl.d」ディレクトリに「disable_ipv6.conf」といった設定ファイルを作成して、IPv6無効化用の設定を記述します。

こちらの方法でIPv6を無効化すると、サーバの再起動やネットワークの再起動を行ってもIPv6は無効化されたままとなります。

設定ファイル作成

# vi /etc/sysctl.d/disable_ipv6.conf

※設定ファイルの名前は「ファイル名.conf」という形式であれば、ほかの名前でも良いです。

設定内容

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

設定反映

「sysctl -pファイル名」コマンドで設定した内容を反映させます。

# sysctl -p/etc/sysctl.d/disable_ipv6.conf

IPv6無効化の確認

「ip a」コマンドでIPv6のアドレスが表示されないことを確認してください。

# ip a
1: lo:  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: eno16777736:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:13:ae:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.129/24 brd 192.168.56.255 scope global dynamic eno16777736
       valid_lft 1373sec preferred_lft 1373sec
3: eno33554960:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:13:ae:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.130/24 brd 192.168.1.255 scope global eno33554960
       valid_lft forever preferred_lft forever

NetWorkManagerでIPv6無効化設定

システム側でのIPv6無効化設定が完了しましたら、今度はNIC側で有効化されているIPv6の設定を無効化します。

そのためには、NICの設定ファイルである「/etc/sysconfig/network-scripts/ifcfg-xxx」(xxx部分は環境によって変わります)に記述されている、「IPV6INIT=yes」の部分を「IPV6INIT=no」に変更する必要があります。

直接設定ファイルを編集するという方法もあるのですが、「CentOS7」では直接設定ファイルを編集することは推奨されていませんので、今回は「nmtui」を使用して設定を変更していきます。

# nmtui

「NetworkManager TUI」が起動してくるので、方向キー(カーソルキー)で操作をして「接続の編集」を選択し「Enter」キーを押下します。

nmtui-ipv6-dis_01

NICの選択画面が表示されるので、設定を行うNICを選択してから「編集」を選択して「Enter」キーを押下します。

nmtui-ipv6-dis_02

NICの設定を行う画面が表示されるので、画面の下部にある「IPv6設定」の部分を「無視する」に変更してから「OK」を選択して「Enter」キーを押下します。

これで「IPV6INIT=no」に設定が変更されます。

nmtui-ipv6-dis_03

NIC選択画面がに戻りますので、すべてのNICに対して同様の設定を行います。

設定作業が完了しましたら「終了」を選択して「Enter」キーを押下して作業を完了します。

nmtui-ipv6-dis_04

設定確認

念のため、設定作業が完了しましたらNICの設定ファイル「/etc/sysconfig/network-scripts/ifcfg-xxx」で「IPV6INIT=no」に設定されていることを確認してください。

設定反映

NetworkManagerとnetwork再起動して設定を反映させます。

# systemctl restart NetworkManager
# systemctl restart network

 - CentOS7