AWSでDHCPv6を有効にする

AWSユーザーガイドのIPv6への移行 シナリオにしたがってCentOS7のDHCPv6を有効にした手順を未来の自分にメモします。

 まずインスタンス内から外に向けてping6 を打ってみます。

$ ping6 ipv6.google.com
connect: Network is unreachable

届きませんでしたね。そこで以下のカスタムファイルを作成して保存します。

# vi /etc/cloud/cloud.cfg.d/99-custom-networking.cfg
network: version: 1 config: - type: physical name: eth0 subnets: - type: dhcp - type: dhcp6

ここからifcfg-eth0を手動で編集します。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no ↓ IPV6INIT=yes
DHCPV6C=yes (追記 NM_CONTROLLED=no (追記

/etc/sysconfig/network を開いて以下の行を追記して保存します。

# vi /etc/sysconfig/network
NETWORKING_IPV6=yes (追記

続いて次のコマンドで/etc/sysctl.d 下のインターフェイス固有ファイルにaccept_ra=1を設定します。

# echo "net.ipv6.conf.eth0.accept_ra=1" > /etc/sysctl.d/enable-ipv6-ra.conf && sysctl -p /etc/sysctl.d/enable-ipv6-ra.conf

accept_ra = 1 と確定していればOKです。

# ssysctl -a | grep "net.ipv6.conf.eth0.accept_ra"
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1

最後にsystemctl restart network でインターフェイスを再起動してping6を確認します。

$ ping6 ipv6.google.com
PING ipv6.google.com(nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e)) 56 data bytes 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=1 ttl=104 time=2.32 ms 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=2 ttl=104 time=2.40 ms 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=3 ttl=104 time=2.35 ms 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=4 ttl=104 time=2.38 ms

今度はping6 が到達するようになりました。

参考サイト:

Amazon Virtual Private Cloud – ユーザーガイド

Crontis: AWS EC2 IPv6 not working

AWSのCentOS7にdnsmasqをインストールしてみた

Amazon EC2 Linux インスタンスでの DNS 解決の失敗を回避するにはどうすればよいですか? | aws.amazon.com

によるAmazon Linux2 のDNSキャッシュサーバーのチュートリアルを試してみたのですがCentOS7の場合は設定詳細が若干、違うようなのでGoogle先生に訊いたところミッションクリティカルな記事があったのでシェアしたいと思います。

AWS環境のRHEL7/8にDNSキャッシュ(dnsmasq)を設定してみた

# yum -y install dnsmasq
# groupadd -r dnsmasq # useradd -r -g dnsmasq dnsmasq

・・・confファイルを設定して /etc/resolv.dnsmasq のところで躓きましたがスクリプトをコンソールにコピペすれば良く自己解決しました。

DNSIP="$(awk -e '/^nameserver/{ print $2}' /etc/resolv.conf)"
echo $DNSIP

sudo bash -c "echo \"nameserver $DNSIP\" > /etc/resolv.dnsmasq"

systemctl status dnsmasq してサービスのステータスを確認、正常起動。

[root@www ~]# systemctl status dnsmasq
 dnsmasq.service - DNS caching server.
   Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-03-22 18:13:50 JST; 1h 31min ago
 Main PID: 17028 (dnsmasq)
   CGroup: /system.slice/dnsmasq.service
           mq17028 /usr/sbin/dnsmasq -k

Mar 22 18:13:50 www systemd[1]: Stopped DNS caching server..
Mar 22 18:13:50 www systemd[1]: Started DNS caching server..
Mar 22 18:13:50 www dnsmasq[17028]: listening on lo(#1): 127.0.0.1
Mar 22 18:13:50 www dnsmasq[17028]: started, version 2.76 cachesize 500
Mar 22 18:13:50 www dnsmasq[17028]: compile time options: IPv6 GNU-getopt D...fy
Mar 22 18:13:50 www dnsmasq[17028]: reading /etc/resolv.dnsmasq
Mar 22 18:13:50 www dnsmasq[17028]: using nameserver 10.0.0.2#53
Mar 22 18:13:50 www dnsmasq[17028]: read /etc/hosts - 2 addresses
Mar 22 18:49:59 www dnsmasq[17028]: reading /etc/resolv.dnsmasq
Mar 22 18:49:59 www dnsmasq[17028]: using nameserver 10.0.0.2#53
Hint: Some lines were ellipsized, use -l to show in full.
# dig aws.amazon.com @127.0.0.1 

してレコードを無事、引くことができました。

[root@www ~]# dig aws.amazon.com @127.0.0.1

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.4 <<>> aws.amazon.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53163
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;aws.amazon.com.                        IN      A

;; ANSWER SECTION:
aws.amazon.com.         39      IN      CNAME   tp.8e49140c2-frontier.amazon.com.
tp.8e49140c2-frontier.amazon.com. 39 IN CNAME   dr49lng3n1n2s.cloudfront.net.
dr49lng3n1n2s.cloudfront.net. 39 IN     A       143.204.75.74

;; Query time: 3 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 22 19:49:24 JST 2021
;; MSG SIZE  rcvd: 137

複数ルーターを使用したマルチホーミング

前回の続きでIPoE PPPoE の併用設定をしたRTX830にインターリンクの固定IPを接続しようとしましたが私の理解力では限界でした。

参考サイト:[RTX1100] 固定グローバル IP をセカンダリアドレスとして追加したらルーティング設定はどうなるのか? | 僕とガジェット

参考サイト:YAMAHA ルーターで2つあるネットワークセグメントに対しそれぞれIPマスカレードする方法 – Qiita

ルーターにVLAN設定をするか、nat descriptor を複数設定すればできそうな気もしますがLANインターフェイスが2つしかないRTX830では無理っぽいです。
おとなしく上位機能を持ったルーターを買っておけばと後悔しましたが、ゲートウェイに2つのルーターをぶら下げてPPPoEセッションを追加できないかと思い付き、余っていたRTX810 を初期化してPR-500MI に繋ぐと、インターリンクのプロバイダ設定することができたので途中経過をお知らせします。

作業用端末にIntel PRO1000 PT デュアルポート サーバーアダプタを追加して [コントロールパネル] の[ネットワークと共有センター] から[ネットワーク] アダプターを無効にして[ネットワーク 3] のみで接続できるか試したところWebにアクセスすることができました。