このトピックでは、Alibaba Cloud Linux 2を実行するElastic Compute Service (ECS) インスタンスでIPv6を有効または無効にする方法について説明します。
前提条件
IPv6をサポートするインスタンスタイプのインスタンスが作成されます。 IPv6をサポートするインスタンスタイプについては、「インスタンスファミリーの概要」をご参照ください。
インスタンスは、IPv6 CIDRブロックがサポートされ、IPv6仮想プライベートクラウド (VPC) が作成されるリージョンに存在します。 詳細については、「IPv6 CIDRブロックを使用したVPCの作成」をご参照ください。
背景情報
aliyun-2.1903-x64-20G-alibase-20190829.vhd
以前のバージョンのAlibaba Cloud Linux 2イメージでは、IPv6が無効になっています。 デフォルトでは、aliyun_2_1903_x64_20G_alibase_20200221.vhd
バージョン以降のAlibaba Cloud Linux 2イメージでIPv6が有効になっています。
IPv6の有効化
一時的にIPv6を有効にする
インスタンスのIPv6が一時的に有効になっている場合、インスタンスの停止または再起動後にIPv6を有効にする設定は無効になります。 作業は慎重に行ってください。
Alibaba Cloud Linuxでは、aliyun_2_1903_64_20G_alibase_20190619.vhd
バージョン以前のDHCP
パラメータの. ネットワークファイル内の/etc/systemd /ネットワーク /ディレクトリはipv4に設定されています。 ファイルを変更し、IPv6を一時的に有効にするには、次の操作を実行します。
IPv6を一時的に有効にするインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、/etc/systemd/network/ ディレクトリに移動します。
cd /etc/systemd/network/
を実行します。Run the
ls
コマンドをチェックする. ネットワークファイルを指定します。この例では、50-dhcp.netワークのファイルが使用されます。
50-dhcp.net作業ファイルの内容を変更します。
vi /etc/systemd/network/50-dhcp.network
Iキーを押して 、挿入モードに入ります。
[ネットワーク]
の下の情報を変更して、DHCP
をyesに設定します。説明Name
パラメーターがeth * に設定されている場合、すべてのネットワークインターフェイスのIPアドレスとルートはDHCPを介して設定されます。 DHCPを使用して特定のネットワークインターフェイスのみを設定する場合は、Name
パラメーターをネットワークインターフェイスの名前に設定します。 たとえば、[Name]
パラメーターをeth0に設定して、DHCP経由でeth0
ネットワークインターフェイスのみが設定されるようにします。 詳細については、. ネットワークファイルを参照してください。systemd.netワーク.[Match] Name=eth* [Network] DHCP=yes
変更後、Escキーを押して
:wq
と入力し、enterキーを押して変更を保存して終了します。次のコマンドを実行してIPv6を有効にします。
すべてのネットワークインターフェイスでIPv6を有効にします。
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 sudo sysctl -w net.ipv6.conf.de fault.disable_ipv6=0
特定のネットワークインターフェイスのIPv6を有効にします。 この例では、eth0ネットワークインターフェースが使用されます。
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
IPv6を完全に有効にする
IPv6を永続的に有効にするには、次の操作を実行します。 インスタンスの再起動後も設定は有効なままです。
IPv6を永続的に有効にするインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、
/etc/sysctl.conf
ファイルを変更します。vi /etc/sysctl.conf
Iキーを押して挿入モードに入ります。 次のいずれかの方法を使用して、ファイルの内容を変更します。
次の設定を削除します。
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.de fault.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
すべてのネットワークインターフェイスでIPv6を有効にするには、次の変更を行います。
net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.de fault.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0
特定のネットワークインターフェイスでIPv6を有効にするには、ネットワークインターフェイスに対応するdisable_ipv6パラメーターを0に設定します。 この例では、eth0ネットワークインターフェースが使用されます。
net.ipv6.conf.eth0.disable_ipv6 = 0
変更後、Escキーを押して
:wq
と入力し、enterキーを押して変更を保存して終了します。次のコマンドを実行して、
/etc/sysctl.conf
ファイルの設定が、initramファイルシステム (initramfs) の/etc/sysctl.conf
ファイルの設定と一致するかどうかを確認します。diff -u /etc/sysctl.conf <(lsinitrd -f /etc/sysctl.conf)
説明initramfsはAlibaba Cloud Linux 2用に設定されています。 initramfsの
/etc/sysctl.conf
ファイルの設定が/etc/sysctl.conf
ファイルの設定と一致しない場合、システムはinitramfsの /etc/sysctl.confファイルの設定を受け入れることがあります。2つの構成ファイルに矛盾がある場合は、次のコマンドを実行して新しいinitramfsを生成します。
sudo dracut -v -f
インスタンスを再起動します。
sudo reboot
を実行します。Run the
ifconfig
コマンドを実行し、IPv6が有効かどうかを確認します。IPv6を有効にすると、次のネットワーク設定が表示されます。
inet6 <Unicast address that starts with fe80::> inet6 <IPv6 address of the instance>
IPv6の無効化
IPv6を一時的に無効にする
次のコマンドを実行して、IPv6を一時的に無効にします。
インスタンスのIPv6が一時的に無効になっている場合、インスタンスの停止または再起動後にIPv6を無効にする設定は無効になります。 作業は慎重に行ってください。
すべてのネットワークインターフェイスでIPv6を無効にします。
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.de fault.disable_ipv6=1
特定のネットワークインターフェイスでIPv6を無効にします。
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
IPv6を完全に無効にする
IPv6を完全に無効にするには、次の操作を実行します。 インスタンスの再起動後も設定は有効なままです。 次のいずれかの方法でIPv6を無効にします。
次のいずれかのコマンドラインパラメーター設定を使用して、IPv6を完全に無効にします。
sudo grubby -- args="ipv6.disable_ipv6=1" -- update-kernel=/boot/vmlinuz-$(uname -r)
sudo grubby -- args="ipv6.disable=1" -- update-kernel=/boot/vmlinuz-$(uname -r)
説明ipv6を無効にするには、
-- args="ipv6.disale_ipv6=1"
または-- args="ipv6.disale=1"
設定を使用できます。-- args="ipv6.disale_ipv6=1"
設定を使用すると、ネットワークインターフェイスでのみIPv6を無効にできます。-- args="ipv6.disale=1"
設定は、カーネルモジュールでIPv6を無効にするために使用されます。 詳細については、LinuxカーネルIPv6をご参照ください。/etc/sysctl.confファイルを変更して、IPv6を完全に無効にします。
/etc/sysctl.conf
ファイルを作成します。vi /etc/sysctl.conf
Iキーを押して挿入モードに入ります。 以下のように設定を変更します。
net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.de fault.disable_ipv6=1
特定のネットワークインターフェイスでIPv6を無効にします。 例:
net.ipv6.conf.eth0.disable_ipv6=1
インスタンスを再起動します。
sudo reboot
を実行します。Run the
ifconfig
コマンドを実行して、IPv6が無効かどうかを確認します。IPv6が有効になっている場合、次のネットワーク設定は表示されません。
inet6 <Unicast address that starts with fe80::> inet6 <IPv6 address of the instance>
複数のIPv6アドレスの設定
複数のIPv6アドレスを設定するには、次の操作を実行します。
複数のIPv6アドレスを設定するインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、
/etc/systemd/network/
ディレクトリに移動します。cd /etc/systemd/network/
ls
コマンドを実行して、.network
ファイルをチェックします。この例では、10-eth0.netワークのファイルが使用されます。
cp
コマンドを実行して、設定ファイルをコピーします。この例では、e 20-dhcp.netワーク設定ファイルをコピーしてe 10-eth0.netワーク設定ファイルを作成します。
cp 10-eth0.network 20-dhcp.network
次のコマンドを実行して、e 20-dhcp.net作業設定ファイルを変更します。
sed -i 's/^Name.*$/Name=*/g' /etc/systemd/network/20-dhcp.network
systemd-networkdサービスを再起動して、設定を有効にします。
sudo systemctl restart systemd-networkd