RHEL10でIPv6アドレスを無効化してみた

Linux

Red Hat Enterprise Linux 10.0でIPv6アドレスを無効化した作業証跡をまとめました。

nmcli connection showコマンドで接続名を確認する

まずは以下のコマンドを実行してRHEL10.0の接続名を確認します。

nmcli connection show

実行結果は以下です。

[root@RHEL100 ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE
ens160  cd94a637-d5d2-39fc-97d3-9303a844b635  ethernet  ens160
lo      29367c56-52cd-4014-9fe2-52608d77e0f0  loopback  lo
[root@RHEL100 ~]#

今回はコネクション名「ens160」に対してIPv6アドレスを無効化します。

NetworkManagerでIPv6アドレスを無効にする

以下の2コマンドを実行してNetworkManagerでIPv6アドレスを無効にします。今回は<Connection Name>にens160を指定します。

# nmcli connection modify <Connection Name> ipv6.addresses "" ipv6.gateway ""
# nmcli connection modify <Connection Name> ipv6.method "disabled"

実行結果は以下です。

[root@RHEL100 ~]# nmcli connection modify ens160 ipv6.addresses "" ipv6.gateway ""
[root@RHEL100 ~]# nmcli connection modify ens160 ipv6.method "disabled"
[root@RHEL100 ~]#

以下のファイルの中身も確認してみます。

/etc/NetworkManager/system-connections/ens160.nmconnection
[root@RHEL100 system-connections]# cat ens160.nmconnection
[connection]
id=ens160
uuid=cd94a637-d5d2-39fc-97d3-9303a844b635
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1764190741

[ethernet]

[ipv4]
method=auto

[ipv6]
addr-gen-mode=eui64
method=disabled

[proxy]

[ipv6]以下にmethod=disabledパラメータが記載されています。

以下のコマンドを実行してネットワーク接続を再起動します。

# nmcli connection up ens160

実行結果は以下です。

[root@RHEL100 ~]# nmcli connection up ens160
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@RHEL100 ~]#

コマンドの実行前後でのinet6(IPv6)の設定差分は以下です。

再起動前:

[root@RHEL100 ~]# ip add | grep -i inet6
    inet6 ::1/128 scope host noprefixroute
    inet6 fe80::20c:29ff:fe72:407e/64 scope link noprefixroute
[root@RHEL100 ~]#

再起動後:

[root@RHEL100 ~]# ip add | grep -i inet6
    inet6 ::1/128 scope host noprefixroute
[root@RHEL100 ~]#

以下の確認結果でもIPv6アドレスが無効化されていることを確認できます。

[root@RHEL100 ~]# ip address show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:72:40:7e brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c2972407e
    inet 192.168.242.132/24 brd 192.168.242.255 scope global dynamic noprefixroute ens160
       valid_lft 1657sec preferred_lft 1657sec
[root@RHEL100 ~]#

次の見出し以降では、/etc/hostsと、GRUBにもIPv6を無効化するパラメータを設定して、再起動を実行します。

次の見出し以降で/etc/hostsとGRUBにIPv6アドレスを無効化するパラメータを設定したあとにOS再起動後、IPv6アドレスの設定を確認した結果は以下です。

[root@RHEL100 ~]# ip add | grep -i inet6
[root@RHEL100 ~]#

/etc/hostsに書かれているIPv6アドレスの記載をコメントアウトか削除する

Red Hat公式資料には以下のように記載されているため、hostsのIPv6アドレスの記載を消しておく、もしくはコメントアウトします。

/etc/hosts に含まれる IPv6 アドレスをすべてコメントアウトします。これには、::1 localhost アドレスも含まれます。

Red Hat Enterprise Linux で IPv6 プロトコルを無効または有効にする方法 - Red Hat Customer Portal
Red Hat Enterprise Linux で IPv6 プロトコルを無効または有効にするにはどうすればよいですか? RHEL 5 で IPv6 を無効にしようとすると、IPv4 で接続できません。サーバーをネットワークに接続するには...

RHEL10デフォルトのhostsファイルの中身は以下です。

# Loopback entries; do not change.
# For historical reasons, localhost precedes localhost.localdomain:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# See hosts(5) for proper format and other examples:
# 192.168.1.10 foo.example.org foo
# 192.168.1.13 bar.example.org bar
~

viエディタを使ってい以下のように::1をコメントアウトします。

# Loopback entries; do not change.
# For historical reasons, localhost precedes localhost.localdomain:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# See hosts(5) for proper format and other examples:
# 192.168.1.10 foo.example.org foo
# 192.168.1.13 bar.example.org bar
~

コメントアウトしたら、viエディタで:wq!コマンドを実行してエディタでの編集を保存して終了します。

IPv6 プロトコルを無効にする

GRUBにパラメータを追加してIPv6プロトコルを無効化します。

IPv6 アドレス指定を無効にするには、上記の手順を実行します。

/etc/default/grub を編集し、以下のとおり GRUB_CMDLINE_LINUX に ipv6.disable=1 を追加します。
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root ipv6.disable=1"

grubby コマンドを実行して GRUB 設定を更新します。
# grubby --update-kernel=ALL --args="ipv6.disable=1"
Red Hat Enterprise Linux で IPv6 プロトコルを無効または有効にする方法 - Red Hat Customer Portal
Red Hat Enterprise Linux で IPv6 プロトコルを無効または有効にするにはどうすればよいですか? RHEL 5 で IPv6 を無効にしようとすると、IPv4 で接続できません。サーバーをネットワークに接続するには...

RHEL10.0での実際の実行結果は以下です。

[root@RHEL100 ~]# vi /etc/default/grub
[root@RHEL100 ~]#
[root@RHEL100 ~]#
[root@RHEL100 ~]# cat /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=2G-64G:256M,64G-:512M resume=UUID=a7fb73d9-5589-4393-9a54-269bd1f66c27 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet selinux=0"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root

[root@RHEL100 ~]#
[root@RHEL100 ~]# grubby --update-kernel=ALL --args="ipv6.disable=1"
/etc/default/grub: 行 9: 対応する `"' を探索中に予期しないファイル終了 (EOF) です
[root@RHEL100 ~]#
[root@RHEL100 ~]#
[root@RHEL100 ~]# grubby --update-kernel=ALL --args="ipv6.disable=1"
[root@RHEL100 ~]#

# grubby –update-kernel=ALL –args=”ipv6.disable=1″を実行したところ、表記が出たため、再度実行しました。

この状態で再度catコマンドで/etc/default/grubの中身を確認した結果が以下です。

[root@RHEL100 ~]# cat /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=2G-64G:256M,64G-:512M resume=UUID=a7fb73d9-5589-4393-9a54-269bd1f66c27 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet selinux=0 ipv6.disable=1"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_CMDLINE_LINUX="crashkernel=2G-64G:256M,64G-:512M resume=UUID=a7fb73d9-5589-4393-9a54-269bd1f66c27 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet selinux=0 ipv6.disable=1"

[root@RHEL100 ~]#

OSを再起動して設定を反映する

/etc/hosts、GRUBにも設定したので以下のコマンドを実行してOSを再起動します。

# reboot

以下コマンドでIPv6アドレスが無効化されていることを確認しました。

[root@RHEL100 ~]# ip add | grep -i inet6
[root@RHEL100 ~]#

備考:カーネルパラメータのIPv6アドレスに関するパラメータがなくなる

カーネルパラメータが格納されている、/proc/sysディレクトリ配下の/netディレクトリに、IPv6アドレスに関するカーネルパラメータが格納されているディレクトリが確認できなくなります。

[root@RHEL100 ~]# ls /proc/sys/net
core ipv4 mptcp netfilter nf_conntrack_max unix

参考資料

本記事の作成に使用した参考資料を掲載します。

Red Hat Enterprise Linux で IPv6 プロトコルを無効または有効にする方法 - Red Hat Customer Portal
Red Hat Enterprise Linux で IPv6 プロトコルを無効または有効にするにはどうすればよいですか? RHEL 5 で IPv6 を無効にしようとすると、IPv4 で接続できません。サーバーをネットワークに接続するには...
第19章 NetworkManager で特定接続の IPv6 の無効化 | ネットワークの設定および管理 | Red Hat Enterprise Linux | 9 | Red Hat Documentation
第19章 NetworkManager で特定接続の IPv6 の無効化 | ネットワークの設定および管理 | Red Hat Enterprise Linux | 9 | Red Hat Documentation
タイトルとURLをコピーしました