IPv6およびwifiを無効化する方法(bookworm)

bookworm(Debian12)にバージョンが上がって、ネットワークがNetworkManagerに変わりました。Raspberry Piをサーバ専用で使用する時、使用しないネットワークを無効化する方法を説明します。

準備

現在のネットワークの状態は、赤文字の通りwifiとIPv6が有効な状態となっていますので、無効化します。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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 noprefixroute
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:91:31:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.101/24 brd 192.168.100.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::e749:73ef:1922:bd89/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether dc:a6:32:91:31:ff brd ff:ff:ff:ff:ff:ff

NetworkManagerの状態は、下記の通りです。

$ nmcli
eth0: connected to eth0
        "eth0"
        ethernet (bcmgenet), DC:A6:32:91:31:FE, hw, mtu 1500
        ip4 default
        inet4 192.168.100.101/24
        route4 192.168.100.0/24 metric 100
        route4 default via 192.168.100.1 metric 100
        inet6 fe80::e749:73ef:1922:bd89/64
        route6 fe80::/64 metric 1024

lo: connected (externally) to lo
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
        inet4 127.0.0.1/8
        inet6 ::1/128

wlan0: disconnected
        "Broadcom BCM43438 combo and Bluetooth Low Energy"
        wifi (brcmfmac), DC:A6:32:91:31:FF, hw, mtu 1500

p2p-dev-wlan0: disconnected
        "p2p-dev-wlan0"
        wifi-p2p, hw

DNS configuration:
        servers: 192.168.100.1 8.8.8.8
        interface: eth0

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.

NetworkManagerを使用するので簡単にオペレーションができる様コネクション名を変更します。下記記事を参考に変更してください。

wi-fiの無効化

サーバにwifiは不要なので、NetworkManagerからwifiを無効化します。

$ sudo nmcli radio
WIFI-HW  WIFI     WWAN-HW  WWAN
enabled  enabled missing  enabled

現在wifiおよびwwanが有効化されているので、無効化します。

$ sudo nmcli radio wifi off
$ sudo nmcli radio wwan off

下記の通り無効化されました。

$ sudo nmcli radio
WIFI-HW  WIFI      WWAN-HW  WWAN
enabled  disabled  missing  disabled

wifiのサービスおよびハードを無効化

wifiのサービスを停止します。

$ sudo systemctl stop wpa_supplicant.service
$ sudo systemctl disable wpa_supplicant.service
Removed "/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service".
Removed "/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service".

一行目はサービスの停止、二行目は再起動時に自動的に起動されないように設定します。

ハードウェア的にwifiは生きているので無効化します。

$ sudo vi /boot/config.txt
# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Additional overlays and parameters are documented
# /boot/firmware/overlays/README

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Automatically load initramfs files, if found
auto_initramfs=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

# Run as fast as firmware / board allows
arm_boost=1

dtoverlay=disable-wifi

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]

赤文字の行を追加して保存します。

この設定は再起動後に有効になります。

IPv6の無効化

自宅のサーバにIPv6は不要なので、NetworkManagerからIPv6を無効化します。

$ nmcli -f ipv6 connection show eth0
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.replace-local-rule:                -1 (default)
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.required-timeout:                  -1 (default)
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     default
ipv6.ra-timeout:                        0 (default)
ipv6.mtu:                               auto
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.auto-route-ext-gw:                 -1 (default)
ipv6.token:                             --

赤文字の通り、autoが設定されていて、DHCPでネットワークが動いています。

$ sudo nmcli connection modify eth0 ipv6.method disabled
$ nmcli -f ipv6 connection show eth0
ipv6.method:                            disabled
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.replace-local-rule:                -1 (default)
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.required-timeout:                  -1 (default)
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     default
ipv6.ra-timeout:                        0 (default)
ipv6.mtu:                               auto
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.auto-route-ext-gw:                 -1 (default)
ipv6.token:                             --

IPv6の無効化(カーネル編)

bookworm(Debian12)では、カーネルがIPv6のモジュールをロードしているので無効化します。

$ sudo vi /boot/cmdline.txt

下記の通りrootwaitの前にipv6.disable=1を追加します。

console=serial0,115200 console=tty1 root=PARTUUID=b94234f0-02 rootfstype=ext4 fsck.repair=yes ipv6.disable=1 rootwait

行は必ず一行に書ききってください。スクロールバーを操作して確認ください。

改行を入れてはいけません。

再起動して確認

ネットワークの設定が終わったので、ここで再起動をして確認します。

$ sudo reboot

再起動後、下記コマンドで、IPv6が無効化(赤文字が表示されない事)されている事を確認します。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:91:31:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.101/24 brd 192.168.100.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever

NetworkManagerからDEVICEの状況を確認すると、IPv6もwifiも無くなっています。

$ nmcli
eth0: connected to eth0
        "eth0"
        ethernet (bcmgenet), DC:A6:32:91:31:FE, hw, mtu 1500
        ip4 default
        inet4 192.168.100.101/24
        route4 192.168.100.0/24 metric 100
        route4 default via 192.168.100.1 metric 100

lo: disconnected
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

DNS configuration:
        servers: 192.168.100.1 8.8.8.8
        interface: eth0

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.

wifiの状態は下記の通りで問題ありません。

$ sudo nmcli radio
WIFI-HW  WIFI      WWAN-HW  WWAN
missing disabled missing  disabled
タイトルとURLをコピーしました