【CentOS7/RHEL7】 IPv6 を無効化 & nmcli を用いたネットワーク設定

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【3/22開催】テックブログを書こう!アウトプットのススメ
1年で100本ブログを出した新米エンジニアがPV数が伸びなくてもTech Blogを書き続ける理由とは?
https://tech-lab.connpass.com/event/312805/

【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

こんにちは。サイオステクノロジー OSS サポート担当何敏欽です。

IPv6 を無効にする方法

CentOS7/RHEL7 では、IPv6 がデフォルトで利用可能です。ただし、IPv6 を無効にしたい時ってありますよね。CentOS7/RHEL7 における IPv6 を無効にする方法を紹介します。なお、ブリッジインターフェースにおいても、IPv6 を無効にする場合はこちらの方法を実施するだけで十分であり、ブリッジインターフェースごとの設定は必要ありません。

IPv6 を無効にする方法

■カーネルに組み込まれている ipv6 モジュールを無効にする方法 (再起動が必要)

/etc/default/grub を編集し、以下のように GRUB_CMDLINE_LINUX に ipv6.disable=1 を追加します。

# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto ipv6.disable=1 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

grub2-mkconfig コマンドを実行して、grub.cfg ファイルを再生成します。

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-7b1ccbc4cf424feda5270da1bc2409af
Found initrd image: /boot/initramfs-0-rescue-7b1ccbc4cf424feda5270da1bc2409af.img
done

設定を反映するために、システムを再起動する必要があります。

■sysctl 設定を使用して IPv6 を無効にする方法 (再起動は不要)

/etc/sysctl.conf を編集し、以下のように設定を追加します。

# vim /etc/sysctl.conf
# すべてのインターフェイスを無効にする
net.ipv6.conf.all.disable_ipv6 = 1
# 特定のインタフェースを無効にする
net.ipv6.conf.[interface].disable_ipv6 = 1

sysctl -p コマンドを実行して、設定を反映します。

# sysctl -p

IPv4、IPv6 の関連オプションについて

インターフェイス設定ファイルにある IPv4、IPv6 の関連オプションの意味について、纏める記事が少ないので、下記に説明します。

    • IPV4_FAILURE_FATAL:デフォルト値は no です。

この値が yes の場合は、IPv4 設定に失敗すると当該インタフェース全体の設定を失敗させることを示します。この設定は「この接続を完了するにはIPv4アドレス化が必要になります。」チェックを入れる設定です。
IPV4_FAILURE_FATAL は may-fail プロパティとは逆の意味を持ちます。

    • IPV6INIT:デフォルト値は yes です。

この値が no の場合は、このインターフェイスで IPv6 アドレスが設定されないことを network-scripts に通知します。この設定は「IPv6のセッティング」タブで、「方式」を「無視する」にする設定です。
IPv6 アドレスの設定を行わないだけで、IPv6 を無効化する設定ではありません。

    • IPV6_AUTOCONF:デフォルト値は yes です。

この値が no の場合は、このインターフェイスで IPv6 の自動設定を無効にします。
IPV6_AUTOCONF のデフォルト値は、次のように IPV6FORWARDING に依存することに注意してください。
IPV6FORWARDING = yes の場合、IPV6_AUTOCONF はデフォルトで no になります。
IPV6FORWARDING = no の場合、IPV6_AUTOCONF はデフォルトで yes になり、IPV6_ROUTER は無効になります。

    • IPV6_DEFROUTE:デフォルト値は yes です。

この値が no の場合は、このインターフェイスで IPv6 アドレスが設定されないことを network-scripts に通知します。
IPV6_DEFROUTE は never-default プロパティとは逆の意味を持ちます。

    • IPV6_FAILURE_FATAL:デフォルト値は no です。

この値が yes の場合は、IPv6 設定に失敗すると当該インタフェース全体の設定を失敗させることを示します。
IPV6_FAILURE_FATAL は may-fail プロパティとは逆の意味を持ちます。

    • IPV6_ADDR_GEN_MODE:デフォルト値は eui64 です。

この値は stable-privacy の場合は、アドレスがランダム化され、ネットワークカードの MAC アドレスに基づいていない IPv6 アドレスが割り当てられます。この機能では、選択したサブネットの範囲内で IPv6 アドレスを割り当てようとします。
アドレスをランダム化する利点の1つは、アドレスがより安全であることです。

NetworkManager コマンドラインツール (nmcli) の使用

CentOS6/RHEL6 までは、インタフェースを設定する場合は /etc/sysconfig/network-scripts/ifcfg-ethX を編集するのが一般的でしたが、CentOS7/RHEL7 ではこのやり方が非推奨になりました。CentOS7/RHEL7 からはネットワークを設定するためのコマンドとして、NetworkManager に付属する nmcli の使用が推奨されます。nmcli は、ネットワークデバイスの状態を制御および表示するのに加えて、ネットワーク接続を作成、表示、編集、削除、アクティブ化、および非アクティブ化するのに用いられます。

nmcli を使用した設定例をいくつか紹介します。nmcli はたくさんのオプションがありますので、詳細は man nmcli でご参照ください。

■デバイス情報、ネットワーク設定情報の確認

# nmcli d show ens192
GENERAL.デバイス:                       ens192
GENERAL.タイプ:                         ethernet
GENERAL.ハードウェアアドレス:           00:50:56:80:DA:ED
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           ens192
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        aaa.aaa.aaa.aaa/24
IP4.ゲートウェイ:                       aaa.aaa.aaa.bbb
IP4.DNS[1]:                             aaa.aaa.aaa.ccc
IP4.ドメイン[1]:                        xxx.xxx.xxx
IP6.ゲートウェイ:                       --

■IP アドレス、ゲートウェイの設定

# nmcli c mod ens192 ipv4.addresses aaa.aaa.aaa.aaa/24
# nmcli c mod ens192 ipv4.gateway aaa.aaa.aaa.bbb

■ネットワーク接続の有効化

# nmcli c mod ens160 connection.autoconnect yes

上記コマンドを実施することで、ONBOOT の設定値は yes になります。

■IPv4 設定に失敗するとインタフェース全体の設定を失敗させる

# nmcli con mod ens192 ipv4.may-fail no

上記コマンドを実施することで、IPV4_FAILURE_FATAL の設定値は yes になります。

■IPv6 アドレス設定を行わない

# nmcli con mod ens192 ipv6.method ignore

上記コマンドを実施することで、IPV6INIT の設定値は no になります。

■変更内容を適用

# nmcli con up ens192
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/6)

以上で IPv6 を無効にする方法、IPv4、IPv6 の関連オプションの意味や nmcli コマンドの使用方法ついて説明しました。

アバター画像
About サイオステクノロジーの中の人 14 Articles
サイオステクノロジーで働く中の人です。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

3人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる