【CentOS7】【CentOS6】IPv6 を無効にする手順【恒久的】

CentOS6、CentOS7 の場合はデフォルトで「IPv6」「有効化」になっています。

今回は「CentOS6」、「CentOS7」で「恒久的に(OS再起動しても)」IPv6 が「無効」の状態になる手順を解説します。

 

 

デフォルトの状態の確認

セットアップ時に明示的に「IPv6」を「無効」にしなかった場合の NIC の状態を確認します。

 

CentOS 6 の場合

[root@cent06 ~]# ifconfig
eth0     Link encap:Ethernet HWaddr 00:0C:29:D1:F8:58
         inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0
         inet6 addr: 2408:210:8105:9500:20c:29ff:fed1:f858/64 Scope:Global
         inet6 addr: fe80::20c:29ff:fed1:f858/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
         RX packets:175 errors:0 dropped:0 overruns:0 frame:0
         TX packets:105 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:19062 (18.6 KiB) TX bytes:17411 (17.0 KiB)

 

lo Link encap:Local Loopback
         inet addr:127.0.0.1 Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING MTU:16436 Metric:1
         RX packets:8 errors:0 dropped:0 overruns:0 frame:0
         TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:600 (600.0 b) TX bytes:600 (600.0 b)

 

[root@cent06 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever

 

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:d1:f8:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0
    inet6 2408:210:8105:9500:20c:29ff:fed1:f858/64 scope global dynamic
    valid_lft 2591910sec preferred_lft 604710sec
    inet6 fe80::20c:29ff:fed1:f858/64 scope link
    valid_lft forever preferred_lft forever

 

 

 

 

CentOS 7 の場合

[root@cent07 ~]# ifconfig
ens160:  flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
         inet 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
         inet6 2408:210:8105:9500:c67d:e699:c69b:4876 prefixlen 64 scopeid 0x0<global>
         inet6 fe80::bfd4:65d3:639d:2f9c prefixlen 64 scopeid 0x20<link>
         ether 00:0c:29:6b:9d:b5 txqueuelen 1000 (Ethernet)
         RX packets 288 bytes 29225 (28.5 KiB)
         RX errors 0 dropped 0 overruns 0 frame 0
         TX packets 172 bytes 29157 (28.4 KiB)
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

lo:      flags=73<UP,LOOPBACK,RUNNING> mtu 65536
         inet 127.0.0.1 netmask 255.0.0.0
         inet6 ::1 prefixlen 128 scopeid 0x10<host>
         loop txqueuelen 1 (Local Loopback)
         RX packets 68 bytes 5524 (5.3 KiB)
         RX errors 0 dropped 0 overruns 0 frame 0
         TX packets 68 bytes 5524 (5.3 KiB)
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

[root@cent07 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:6b:9d:b5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.12/24 brd 192.168.1.255 scope global ens160
    valid_lft forever preferred_lft forever
    inet6 2408:210:8105:9500:c67d:e699:c69b:4876/64 scope global noprefixroute dynamic
    valid_lft 2591928sec preferred_lft 604728sec
    inet6 fe80::bfd4:65d3:639d:2f9c/64 scope link
    valid_lft forever preferred_lft forever

 

inet6(IPv6)の見方

簡単ですが、上記コマンド結果の IPv6 アドレスの見方です。

「inet6 addr」が「scope link」 

リンクローカルアドレスです。

インターネットには接続できません。

IPv6 アドレスは自己生成します。IPv6 アドレスは「fe80」で始まります。

 

「inet6 addr」が「scope global dynamic」 

グローバルアドレスです。

「dynamic」なので、動的に IPv6 アドレスが生成されています。

どのように IPv6 アドレスが作られるのかというと、MAC アドレスから ID とプレフィックスが作られます。

例えば、MAC アドレスが「00:22:15:64:42:bd」の場合、グローバル IPv6 アドレスは「22:15ff:fe64:42bd」で終わります。

そのため、IPv6 アドレスから MAC アドレスを追うのは簡単です。

 

「inet6 ::1/128 scope host」

ループバックアドレスです。

 

 

CentOS 6 の IPv6 の無効化手順

スタンダードに「/etc/sysctl.conf」ファイルを設定します。

「/etc/sysctl.conf」ファイルは、sysctl によって読み込まれます。

sysctl はカーネルパラメータを設定するコマンドです。

 

「/etc/sysctl.conf」ファイルに以下のカーネルパラメータを追加します。

追加する場所は、どこでもいいので一番下に追加します。

# vi /etc/sysctl.conf

 

net.ipv6.conf.all.disable_ipv6 = 1   ← 追加します。
net.ipv6.conf.default.disable_ipv6 = 1 ← 追加します。

 

カーネルパラメータを追記したら、下記コマンドで設定を反映します。

# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

 

 

IPv6 が無効化されたことを確認します。

# ifconfig
eth0    Link encap:Ethernet HWaddr 00:0C:29:D1:F8:58
        inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0
        UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
        RX packets:74478 errors:0 dropped:0 overruns:0 frame:0
        TX packets:3147 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:4594239 (4.3 MiB) TX bytes:244383 (238.6 KiB)

        lo Link encap:Local Loopback

 

inet    addr:127.0.0.1 Mask:255.0.0.0
        UP LOOPBACK RUNNING MTU:16436 Metric:1
        RX packets:16 errors:0 dropped:0 overruns:0 frame:0
        TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
        RX bytes:1248 (1.2 KiB) TX bytes:1248 (1.2 KiB)

 

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:d1:f8:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0

 

IPv6 が無効化されていることが確認できました。

OSを再起動する必要がないのがいいですね。

 

ちなみにですが、CentOS 6 の /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルの中身は IPv6 を「有効化」「無効化」しても変わりありませんでした。

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:D1:F8:58
TYPE=Ethernet
UUID=5fc822d4-cce6-439a-bc6e-eb3376719709
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.1.11
PREFIX=24
GATEWAY=192.168.1.1

 

CentOS 7 の IPv6 の無効化手順

次は「CentOS 7」です。

CentOS 7 も CentOS 6 と同じくカーネルパラメータの編集で「IPv6 を無効化」します。

 

# vi /etc/sysctl.conf

 

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
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 が無効化されたことを確認します。

# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
        ether 00:0c:29:6b:9d:b5 txqueuelen 1000 (Ethernet)
        RX packets 75560 bytes 4676791 (4.4 MiB)
        RX errors 0 dropped 10 overruns 0 frame 0
        TX packets 5071 bytes 408368 (398.7 KiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

lo:     flags=73<UP,LOOPBACK,RUNNING> mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        loop txqueuelen 1 (Local Loopback)
        RX packets 68 bytes 5524 (5.3 KiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 68 bytes 5524 (5.3 KiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:6b:9d:b5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.12/24 brd 192.168.1.255 scope global ens160
    valid_lft forever preferred_lft forever

 

IPv6 が無効化されていることを確認しました。

 

ちなみに「CentOS 7」の「/etc/sysconfig/network-scripts/ifcfg-ens160」を確認します。

 

 

【デフォルト(OSインストール直後)】

# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens160"
UUID="c166843d-ccd2-4a37-9e50-906a2080c25f"
DEVICE="ens160"
ONBOOT="yes"
IPADDR="192.168.1.12"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"

 

 

【/etc/sysctl.conf 編集後、sysctl -p コマンド実行後(OSは再起動していない)】

「/etc/sysconfig/network-scripts/ifcfg-ens160」ファイルの中身は変わっていません。

カーネルパラメータを変更しても、OSの再起動はやっていないため、「IPV6INIT="yes"」のままです。

cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens160"
UUID="c166843d-ccd2-4a37-9e50-906a2080c25f"
DEVICE="ens160"
ONBOOT="yes"
IPADDR="192.168.1.12"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"

 

 

【OS 再起動後】

# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens160"
UUID="c166843d-ccd2-4a37-9e50-906a2080c25f"
DEVICE="ens160"
ONBOOT="yes"
IPADDR="192.168.1.12"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"

 

OS再起動後のコンフィグファイルを確認しましたが、変わりはありませんでした。

結論から言えば、カーネルパラメータで IPv6 を「無効化」してもファイルは変更されないということです。

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。