今朝 2021/05/12 Salesforceで障害がありました。
SalesforceのCTOであるパーカーハリスさんは以下のようにtwitterでつぶやいていました(原文を意訳しています)。
「DNSの問題と信じていることが原因で我々のサービスに接続できなくなっており、Salesforceは大きな混乱を経験しています。我々は顧客への影響が大きいと認識しており、解決にむけて精力的に取り組んでいます。」
どうやらDNSの障害だったそうです。 DNSによる接続障害は過去にもいくつかのシステムで起こっています。有名な例でいうと過去には以下の障害もありました。
2019/5/3 連休中の「Azure」障害、原因は「DNSの設定ミス」
DNSと聞いても、何だろう?と思う人も多いと思います。ここではDNSの障害でなぜサービスにつながらなくなるのか、分かりやすく説明したいと思います。
※本障害に関してはSalesforceから正式な報告書がでています。何が起こったか正確に知りたい方は以下に詳細が記載されています。
「2021 年 5 月 12 日発生のマルチインスタンスサービス中断について」
DNSって何ですか?
DNSは人間が分かりやすいドメインをネットワーク上でコンピューターで管理している番号(IPアドレスと呼ぶ)に変換するための仕組みです。
ドメインって何ですか?
ホームページにアクセスする場合ブラウザのアクセスバーにhttps://www.google.com/などと打ち込むとおもいます。このgoogle.comがドメインです。www.google.comというのはgoogle.comというドメインのwwwというサーバという意味になります。このようにドメインは現実に存在する組織に紐付いています。たとえば弊社だとdmysd.netというドメインを取得しています。インターネット上にサーバを用意してドメインでアクセスできるようにしようとおもった場合には、まずはこのドメイン名を取得する必要があります。実際には自分で取得するのは大変なので代行業者に依頼してドメインを取得、管理してもらう形をとります。
IPアドレスって何ですか?
ドメインを取得して、インターネット上にサーバを用意しても、それだけではドメインでアクセスできるようになりません。今回の主役であるDNSにサーバのドメイン名とIPアドレスを登録する必要があります。IPアドレスは現在IPv4と呼ばれる形式とIPv6と呼ばれる形式の両方が用いられています。両方とも数字(IPv6は16進数)で表されます。たとえばIPv4だと157.7.107.65などの0~255までの数字をドットで4つに区切ったものが用いられます。
なぜIPアドレスが必要なのですか?
IPアドレスはインターネット上の住所の役割を果たしています。インターネット上のコンピューター(ルータも含む)はIPアドレスが決まった場合にどこにデータを送れば良いかわかる仕組みをもっています。例えば157.7.107.65のコンピュータに通信を送るには、どこにデータを送信したら良いかという情報をもっています。これをルートテーブルと言います。以下はルートテーブルのサンプルです。このルートテーブルにしたがってデータを送信することでリレー方式でIPアドレスの宛て先までデータが送られるようになっています。
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 192.168.253.1 192.168.253.45 25
127.0.0.0 255.0.0.0 リンク上 127.0.0.1 331
127.0.0.1 255.255.255.255 リンク上 127.0.0.1 331
127.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
172.17.96.0 255.255.240.0 リンク上 172.17.96.1 5256
172.17.96.1 255.255.255.255 リンク上 172.17.96.1 5256
172.17.111.255 255.255.255.255 リンク上 172.17.96.1 5256
192.168.224.0 255.255.240.0 リンク上 192.168.224.1 5256
192.168.224.1 255.255.255.255 リンク上 192.168.224.1 5256
192.168.239.255 255.255.255.255 リンク上 192.168.224.1 5256
192.168.253.0 255.255.255.0 リンク上 192.168.253.45 281
192.168.253.45 255.255.255.255 リンク上 192.168.253.45 281
192.168.253.255 255.255.255.255 リンク上 192.168.253.45 281
224.0.0.0 240.0.0.0 リンク上 127.0.0.1 331
224.0.0.0 240.0.0.0 リンク上 192.168.253.45 281
224.0.0.0 240.0.0.0 リンク上 172.17.96.1 5256
224.0.0.0 240.0.0.0 リンク上 192.168.224.1 5256
255.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
255.255.255.255 255.255.255.255 リンク上 192.168.253.45 281
255.255.255.255 255.255.255.255 リンク上 172.17.96.1 5256
255.255.255.255 255.255.255.255 リンク上 192.168.224.1 5256
===========================================================================
このルートデーブルがどのように作成、更新されるか知りたい人は、ネットワーク(ルーティングプロトコル)について調べてみると良いとおもいます。つまり送信先のIPアドレスがわからない場合、どこにデータを送ってよいかわからないため、データを送ることができないということです。
Salesforceで障害が起きた理由
ここまでの説明で、カンの良い読者の方は障害が起きた理由がわかったのではないかとおもいます。コンピュータ同士が通信をおこなうためにドメイン名からIPアドレスを取得するのにDNSサーバを用います。今回のようにDNSサーバで何らかの障害(人的にミスも含む)が起きるとドメインをIPアドレスに変換できなくなります。IPアドレスがわからないため、コンピュータはどこに通信を送って良いかわからなくなります。そのため障害が発生したということです。
今回障害が発生したDNSサーバですが、Salesforceの内部で使われていたDNSサーバの障害なのか、外部ネットワークからの問い合わせを受け付けるDNSサーバだったのかはわかりません。DNSサーバは比較的容易に複数台構成にできるので、単純なハードウェアトラブルではなく、人的あるいはソフトウェアの障害の可能性もあります。
2021/06追記
ネットワークの設定(IP層)をおこなうソフトウェアによる不具合であり、DNS自体の不具合ではなかったことが報告されました。詳しく知りたい人は以下を参照してください。
「2021 年 5 月 12 日発生のマルチインスタンスサービス中断について」
まとめ
SalesforceのDNS障害がどういうものだったのか今後、報告があるでしょう。他山の石として、弊社でみるシステムはこのようなことがおこらないように、システムや運用の作り込みができればとおもいました。
Comment on this article
コメントはまだありません。
Send comments