OVHからパブリッククラウドVPSを購入し、ipv6をセットアップしようとしています。また、ドキュメントでipv6の設定方法について チュートリアル を見つけました。 VPSを再起動するまで機能します。
このチュートリアルでは、このファイル/ etc/sysconfig/network-scripts/ifcfg-eth0を更新するように求められていますが、そのファイル内には「インスタンスの起動時にcloud-initによって自動的に作成されます。編集しないでください」と表示されます。私もOVHのサポートに連絡しようとしましたが、彼らはそれについて私を助けることができないと答え、ここで尋ねることを提案しました。
誰かがこれを手伝ってくれる?私はcloud-initを使ったことがなく、ifcfg-eth0を生成する構成がどこにあるのかさえ知りません。
OS:Centos7
私の特定のケースでは、ルーターがDHCPを介してサーバーで実行されているVMにIPv6アドレスをリースしているため(前提として)、ハードコーディングしたり、IP構成を生成したりする必要はありません。動的に生成されたアドレスについてDNSサーバーに通知する必要があります。
以下のスニペット(私のcloud-config
スクリプトから)は/etc/sysctl.conf
を作成し、Centos7を実行しているVM)でIPv6を有効にします。また、現在のIPv6を更新するシェルスクリプトも作成します。アドレスを FreeDNS 15分ごとに、ダイナミックとしてマークされたAAAAレコードをセットアップするときに取得できるFQDNとDDNSキーが必要です。
local fqdn="vm.example.com"
local ddnspasswd='obtain-ddns-key-at-dns.he.net'
cat > user-data <<EOF
# configure IPv6
write_files:
- content: |
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
path: /etc/sysctl.conf
owner: root:root
permissions: 0600
- content: |
#!/bin/bash
function ddns_update_ipv4 {
local fqdn="${fqdn}"
local ddnspasswd="${ddnspasswd}"
/usr/bin/curl -4 "https://dyn.dns.he.net/nic/update" -d "hostname=\${fqdn}" -d "password=\${ddnspasswd}" >> /dev/null 2>&1
local STATUS=\$?
if [[ \$STATUS -ne 0 ]]; then
echo "IPv4 DNS update failed, return code: \$STATUS" >> /var/log/ddns.log
return 1
fi
return 0
}
function ddns_update_ipv6 {
local fqdn="${fqdn}"
local ddnspasswd="${ddnspasswd}"
/usr/bin/curl -6 "https://dyn.dns.he.net/nic/update" -d "hostname=\${fqdn}" -d "password=\${ddnspasswd}" >> /dev/null 2>&1
local STATUS=\$?
if [[ \$STATUS -ne 0 ]]; then
echo "IPv6 DNS update failed, return code: \$STATUS" >> /var/log/ddns.log
return 1
fi
return 0
}
ddns_update_ipv6
path: /sbin/ddns-update
owner: root:root
permissions: 0500
# Update IPv6 on FreeDNS (http://dns.he.net/) every 15 mins
runcmd:
- systemctl stop network && systemctl start network
- echo "0,15,30,45 * * * * /sbin/ddns-update" | tee -a /etc/crontab
- crontab -u root /etc/crontab
EOF
インスタンスの起動時にIPv6を有効にするためにEC2ユーザーデータを渡す方法については、こちらの回答をご覧ください。
これに対する答えはOVHのガイドにはありませんが、次のように機能します。
/etc/cloud/cloud.cfg.d/99-custom-networking.cfg
に:追加
network:
version: 2
ethernets:
eth0:
dhcp: true
dhcp6: false
match:
name: eth0
addresses:
- "ADDRESS"
gateway6: "GATEWAY"
ゲートウェイを設定していることを確認してから、Sudo cloud-init clean -r
を使用して再起動して構成を再読み込みしてください