Apple Push Notification Serviceによって使用されるすべてのIPアドレスの完全なリストを持っている人はいますか?
Appleはコンテンツ配信ネットワークを使用してこれらのリクエストを広げ、DNSルックアップはリクエスタの場所に近いサーバーを返します-私が抱えている問題は、コンテンツを処理するこれらすべてのサーバーを見つけることです。米国のため。
例えば:
$ nslookup gateway.Push.Apple.com
Non-authoritative answer:
canonical name = gateway.Push-Apple.com.akadns.net.
Address: 17.172.238.216
Address: 17.172.238.224
Address: 17.172.238.226
等.
このリストは、DNSをクエリするたびに変更されますが、すべてのアドレスが同じ17.172.238.xの範囲にあるように見えますが、明日または来週に別の範囲が表示される保証はありません。
ただし、テストプッシュサーバーの場合、別のサブネットで既に結果を取得しています。時々私は1セットのアドレスを取得します:
$ nslookup gateway.sandbox.Push.Apple.com
Non-authoritative answer:
canonical name = gateway.sandbox.Push-Apple.com.akadns.net.
Address: 17.149.34.66
Address: 17.149.34.65
その他の場合は、次のアドレスを取得します。
Address: 17.172.233.65
Address: 17.172.233.66
Appleプッシュ通知サービスを使用する私のサーバーは、企業のファイアウォールの背後にあり、本番ゲートウェイとテストゲートウェイ用にポート2195と2196を開く必要があります-ただし、私のファイアウォールチームには、ホスト名の代わりに特定のIPアドレスが必要です。
これまでに確認したIPアドレスを許可するようにファイアウォールチームに依頼した場合、DNSサーバーが別の範囲でサービスを提供することを決定したとき、サーバーは1日または1週間だけ機能しなくなります。
本番環境とテスト環境の両方の包括的なリストを持っている人がいれば、私はそれを感謝します。
pdate: AppleのIPブロック全体(17.0.0.0/8)を開くようにファイアウォールチームに依頼してみましたが、それらは私のためにそれを行いません-アドレスを絞り込む必要があります。若干。
最終更新-2016年10月16日
この質問は締め切られましたが、私は私の最終的な解決策を説明するメモを追加したいと思いました-答えを探している誰もが聞きたいものではありません。 CDNが使用する絶え間なく変化するアドレスに先んじることはできなかったので、ようやくあきらめて、Rackspaceから外部サーバーをリースしました。私は可能な限り最小のサーバーを手に入れました。そこで実行されているのは、2195と2916をリッスンしてAppleに接続を送信するポートフォワーダーだけです。
Rackspaceサーバーで単純なiptables構成を使用して、企業ゲートウェイからの2195/2916への接続のみを許可し、ファイアウォールチームに外部サーバーの静的IPアドレスへのパスを開かせました。ファイアウォールチームは単一のパスを実装することに満足しており、外部サーバーはAppleが使用する17.0.0.0/8の範囲全体に接続できます。
Appleのドキュメント から(興味深いビットが追加されたことを強調):
プッシュプロバイダー、iOSデバイス、およびMacコンピューターは、多くの場合ファイアウォールの背後にあります。通知を送信するには、TCPポート2195を開く必要があります。フィードバックサービスにアクセスするには、TCPポート2196を開く必要があります。デバイスとWi-Fi経由でプッシュサービスに接続するコンピューターは、TCPポート5223を開く必要があります。
プッシュサービスのIPアドレス範囲は変更される可能性があります。プロバイダーがIPアドレスではなくホスト名で接続することが期待されています。プッシュサービスは、同じホスト名に対して異なるIPアドレスを生成する負荷分散スキームを使用します。 ただし、17.0.0.0/8アドレスブロック全体がAppleに割り当てられているため、ファイアウォールルールでその範囲を指定できます
17.0.0.0/8は、17.0.0.1〜17.255.255.254のCIDR表記です。
残念ながら、公式の答えは公式の答えがないということです:)-すべてのトラフィックを17.0.0.0/8に単純に許可するというAppleのかなりずさんなアプローチを考慮しない限り。 Apple開発者サポートは、最初の回答のvcsjonesと同じドキュメントへのリンクを提供しました。
私の特定の状況では、過去数週間DNSを定期的にチェックした後、IPアドレスをこれらの範囲に絞り込んでいます。 AppleのCDNはクエリを実行するサーバーに最も近いアドレスのセットを返すため、これらは米国の中西部でのみ有効であることに注意してください。
Gateway.Push.Apple.comの場合、ファイアウォールで次のポート2195および2196を開いています。
17.149.35.0 / 24
17.172.238.0 / 24
Gateway.sandbox.Push.Apple.comの場合、ファイアウォールで次のポート2195および2196を開いています。
17.149.34.66
17.149.34.65
17.172.233.65
17.172.233.66
これらのアドレスは明らかに変更される可能性があるため、APNSサーバーに到達できなくなったとき(およびDNSを使用する代わりにこれらのアドレス範囲にフォールバック)を検出するための監視をアプリケーションに組み込みました。これは理想的なソリューションではありませんが、企業ネットワーク/ファイアウォールチームと一緒にソリューションを作成できるようになるまでは、今のところ機能します...