9

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 Push Notification Serviceを使用するサーバーは企業ファイアウォールの背後にあり、本番ゲートウェイとテストゲートウェイ用にポート2195と2196を開く必要がありますが、ファイアウォールチームはホスト名ではなく特定のIPアドレスを必要とします。

これまでに見たIPアドレスを許可するようにファイアウォールチームに依頼すると、DNSサーバーが別の範囲を提供することを決定したときに、サーバーが1日または1週間後に機能しなくなるのではないかと心配しています。

実稼働環境とテスト環境の両方の包括的なリストをお持ちの方がいらっしゃいましたら、よろしくお願いいたします。

更新: 私はファイアウォールチームに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の範囲全体に接続できます。

4

2 に答える 2

24

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表記です。

于 2012-05-21T16:22:40.437 に答える
8

残念ながら、公式の答えは公式の答えがないということです:)-すべてのトラフィックを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を使用する代わりにこれらのアドレス範囲にフォールバックします)。これは理想的なソリューションではありませんが、企業ネットワーク/ファイアウォールチームでソリューションを作成できるようになるまで、今のところは機能します...

于 2012-05-30T22:36:19.533 に答える