BGPフルビューで無料のIPv4を探しています

私たちは皆、IPv4アドレスがすでに 一度以上 終わったことを知っています。 最近では、 Habrahabrを含め、議論に非常に人気のあるトピックでした 。彼らは計画予測を行い損失を計算しました 。 2016年ですが、IPv4はまだ運用中です。

4月21日、RIPE NCCはIPv4アドレスの枯渇に関する短い技術ニュースを公開しました。 実際、ニュースの意味は、 スケジュールが更新され、現在の位置が表示れ、RIPEが自由なアドレスを使用して現在の位置を示しているため、RIPEは/ 8のほぼ完全なブロックに対応しています。 APNICには半分/ 8しかありません。 おそらく、厳しいアドレス割り当てポリシーがその役割を果たし、この非常に最後の/ 8 RIRは非常に長く続きます。

しかし、これはすべて「紙」アドレスに関連しています。 また、インターネットへのルーティングに使用できる実際のアドレスの数は? より正確には、インターネットへのルーティングに使用可能なアドレスの数は使用されません。 これを計算するために、一意の生きている証人-BGPルーティングテーブルを使用します。

さらに、この計算の結果を計算する方法に関するいくつかの技術的な詳細。

BGPフルビューには、ルーティングに使用可能なすべてのアドレスが含まれており、現在約600,000のプレフィックスがあります。 アドレステーブルは次のようになります。

 * 1.1.8.0/24 216.221.157.162 0 0 0 40191 3257 4134 i
 * 1.1.8.0/24 147.28.7.2 0 0 0 3130 1239 4134 i
 * 1.1.8.0/24 185.44.116.1 0 0 0 47872 3356 4134 i
 * 1.1.8.0/24 80.91.255.137 0 0 0 1299 4134 i
 * 1.1.16.0/20 80.241.176.31 0 0 0 20771 47872 286 49597 i
 * 1.1.16.0/20 185.44.116.1 0 0 0 47872 286 49597 i
 * 1.1.16.0/20 134.222.87.1 750 0 0 286 49597 i
 * 1.1.20.0/24 85.114.0.217 0 0 0 8492 9304 18046 133948 e
 * 1.1.20.0/24 185.44.116.1 0 0 0 47872 9304 18046 133948 i

計算には、プレフィックス自体(最初の列)のみが必要です。

プレフィックスは昇順でソートされ、同じネットワークの短いプレフィックスは常に長いプレフィックスよりも先になります。 これにより、テーブル内のスペースの検索が大幅に簡素化されます。これは、次の3つの状況のみが可能なためです。

  1. 1つのプレフィックスに別のプレフィックスが含まれる(最初のプレフィックスに2番目のプレフィックスが含まれるが、その逆は含まれない)、またはそれらが等しい。
  2. プレフィックスは、短いマスクで1つにまとめられます。
  3. プレフィックスは連続していますが、累積的ではありません。

他のすべての場合、穴の接頭辞の間に、それを書き留める必要があります。

既製のソリューションを探していませんでした。おそらくipaddressを使用しても同じことができます。 私の実装では、スタックがメインの作業ツールとして使用されます。
for line in fileinput.input(): prefix = ipv4num(line) while len(ipstack): cur_prefix = ipstack.pop() sum_prefix = netsum(cur_prefix, prefix) if sum_prefix[0]: prefix = sum_prefix continue elif issubnet(cur_prefix, prefix): prefix = cur_prefix break elif isseq(cur_prefix, prefix): if prefix[1] <= cur_prefix[1]: ipstack[:] = [] break else: ipstack.append(cur_prefix) break else: for gapprefix, mask in subnets(cur_prefix[0] + ipaddrcount(cur_prefix[1]), prefix[0]): print "{}/{}".format(numipv4(gapprefix), mask) ipstack[:] = [] break ipstack.append(prefix) 

コード全体をGithubで取得できます。

入力で受信したプレフィックスは、上記の3つの条件のいずれかのスタックが満たされているという事実と比較されます。

  1. プレフィックスが合計される場合、合計を実行し、スタックの一番下に移動し続けます。既に合計されたプレフィックスと、再び合計できることを期待して上から取られた新しいプレフィックスを比較します。
  2. スタックのプレフィックスに入力のプレフィックスが含まれている場合、入力の次のプレフィックスに移動し、チェックされたプレフィックスをスタックの最上部に返します。
  3. プレフィックスが次々に移動し、入力からのプレフィックスマスクがスタックから取得されたものよりも長い場合、新しいプレフィックスを先頭に配置します(将来、入力からの他のプレフィックスと合計できます)。 マスクがそれより短いか等しい場合、以前のスタック全体を保持することは意味がありません。どの場合でも、それ以降のすべてのチェックは新しいプレフィックスのみで行われるためです。 スタックをクリアし、受け取った値を一番上に置きます。

このいずれも発生しない場合は、便宜上、間隔の開始アドレスと終了アドレスを計算し、プレフィックス表記に変換します。

BPGを完全に表示するためだけに残ります。 手元にある最も近いBGPルーターを使用することは可能ですが、誰もがそのような機会を持っているわけではありません。 したがって、ここからデータを取得しますwww.routeviews.org-優れた研究、学術リソース。 インターネットルーティングテーブルがかなりの期間収集されるデータを含むアーカイブ自体は、ここarchive.routeviews.org/oix-route-viewsにあります。 4月20日のファイルを選択しました。

テーブルは、プライベートアドレス空間のアドレスと/ 32アドレスで少しノイズが多くなります。 したがって、すべてが接頭辞/ 24(実際の現実に対応する)にフィルターされ、繰り返される接頭辞が削除されました。 このために特別に発明されたものはありません-grepおよびuniqツールが使用されました。 10分間の最長プロセスでした。

その結果、元のテーブルには628105個のプレフィックスが含まれ、それらの半分以上は344704が/ 24を占めています。 私の意見では、不足の結果としてのアドレス不足の良い指標は、アドレス空間の断片化です。 8697のプレフィックスはRIRの管理下になく、RIRの形成前にプレフィックスを受け取った組織に属します。 表16で発表されている最短のプレフィックス/合計8、そのうち13はRIRの管轄ではありません。

画像
レガシー-RIRの管理下にないアドレス。

ソースデータ
合計アリン熟したAPNICアフリカ人ラクニックレガシー
/ 2434470412058081055926328293358946250
/ 236116820135175631397613737332789
/ 227258824472193661758717998803561
/ 2144,40911721135961114313766250323
/ 2040035133638312120067125320322
/ 1927055714069297131540522293
/ 1813300386831144229558146566
/ 17792824312145223525781050
/ 1613212556326003894315660180
/ 1518045025575065615627
/ 141052280276295581358
/ 125161231212333153
/ 1126996501011723
/ 103613914000
/ 913400009
/ 8162010013
/ 70000000
合計:62810521029315569316598315385720548697

ルーティングテーブルには、交​​差するプレフィックスが含まれています。 一部のデータを取得するには、さらに深くする必要があります。 これは行いません。ルーティングされないアドレスの数を計算することは、はるかに興味深いことです。

スクリプトを実行して結果を取得します。 この前から、プライベートアドレススペースのプレフィックスは元のテーブルからクリアされ、いくつかの特別なアドレスが再び表示されましたが、既にルーティング不可能なテーブル(プログラムの正しい動作を確認します)にありました。 再び掃除します。 それらを考慮に入れることは意味がありません-ほとんどの場合、ルーティングに使用されることはありません。 すべてのアドレスの1/16が固定されているブロック240.0.0.0/4に注意を向けます。

残っているアドレス空間のうち、合計79ブロック/ 8でルーティングされません。 ARINは39、APNIC 12、およびRIPE 7を占めます。実際、これから2番目のインターネットを構築できます。 RIPEは、未割り当てブロック/ 8についてのみ報告することを思い出しください

画像

無料のプレフィックス
合計アリン熟したAPNICアフリカ人ラクニックレガシー
/ 24273581422562135287401121121
/ 2318763102604159341925764820
/ 221517074693618336322147920
/ 21836645331684165013933624
/ 205312308181910697423633
/ 19335520114267015613625
/ 1819591254181397317620
/ 171194750127241224311
/ 1619071405168251244712
/ 155863816910611712
/ 1419311420388211
/ 127031917607
/ 11401919209
/ 1016414106
/ 98100007
/ 810100108
/ 71000001

/ 24に与えられる無料のプレフィックス
合計アリン熟したAPNICアフリカ人ラクニックレガシーADMINBY
/ 242735814225621352874011211219439
/ 2337526205208318683851412964013748
/ 226068029876144721345288419168021836
/ 21669283626413472132001112268819227104
/ 20849924929613104171041184377652837792
/ 191073606435213632224321792435280053760
/ 1812537680256115842540819844864128073024
/ 1715283296000162563084828165504140897664
/ 1648819235968043008642566144120323072396800
/ 153000321950723532854272563235846144229888
/ 1419763211673620480389128192204811264130048
/ 121433606348818432348161228801433694208
/ 1116384077824409636864819203686481920
/ 1013107232768819232768819204915257344
/ 913107216384000011468816384
/ 8327680327680032768026214432768
/ 76553600000655360
合計:2611468128550922658739645792095432715675491373727
/ 8の合計ブロック79.7039.236.9112.102.811.3217.3241.92

ADMINBY- IANAによると、LEGACYステータスですが、RIRのいずれかに割り当てられています(RIRが管理)

ルーティング不可能な最大ブロックは28.0.0.0〜30.255.255.255です。 このドキュメントによって判断される2つの組織、 DSI-NorthおよびDefense Information Systems Agencyに属します。

RIRの管理下にあるアドレスブロックは、事後にそれらを取得する可能性があることに注意してください。 たとえば、ARINによって管理されるブロック7.0.0.0/8は、 whois ARINによって判断されるDoD Network Information Centerによって完全に所有され、ルーティングされません。 このようなブロック内のアドレスの総数は、接頭辞/ 8が付いた約42個のアドレススペースに対応します。

たとえば、 13.128.0.0 / 929.0.0.0/8などの連続したブロックには、inetnumおよびrouteオブジェクトが分散されていることがありますが、それでもグローバルには何も見られないことがあります。

場合によっては、会社には2.0.0.0/12などの大きな連続ブロックがありますが、明らかに無用であるため、このブロックの一部のみを発表しています。 ギャップは2.7.0.0/16および2.15.0.0/16で取得されます。 些細なことかもしれませんが、空きアドレスのピークは/ 16です。

少し振り返って2011年4月20日のデータを取得すると、次の図が表示されます。

画像

2011年の無料プレフィックス
合計アリン熟したAPNICアフリカ人ラクニックレガシー
/ 241927010418408937252467893
/ 23140197864297824351895476
/ 221022156832251163418345911
/ 2167283637153310901043568
/ 20489926259038536343025
/ 19306817514855545221016
/ 18187611652213303910615
/ 171186710148224207311
/ 1620691503179309145410
/ 15672424651479189
/ 1428014722808149
/ 12129541141896
/ 117330722437
/ 1027947115
/ 917333125
/ 816320128
/ 72100001

/ 24 2011に付与された無料のプレフィックス
合計アリン熟したAPNICアフリカ人ラクニックレガシーADMINBY
/ 2419270104184089372524678936335
/ 232803815728595648703781094129642
/ 2240884227329004653673218364414232
/ 21538242909612264872083228486419240
/ 20783844200014448136481008688040029760
/ 19981765603215520177281664672051243776
/ 181200647456014144211202496678496064192
/ 1715180890880189442867225609344140886272
/ 1652966438476845824791043584138242560436480
/ 153440642170883328075264460892164608250368
/ 1428672015052822528819208192143369216171008
/ 122641921105922252883968163841843212288135168
/ 112990081228802867290112163841228828672135168
/ 10221184737283276857344819281924096065536
/ 927852849152491524915216384327688192065536
/ 8524288983046553603276865536262144131072
/ 7131072655360000655360
合計:346916816140223946576218831164122108875113071663785
/ 8の合計ブロック105.8749.2612.0418.983,556.4415.6050.77

より多くのアドレスがあり、全体のほぼ3分の1でした。 この間、すべてのRIRはアドレスをあまり使用せず、一部はLACNICのように非常に多く使用しましたが、一般的には1/3から半分に費やしました。 直接管理されていないRIRアドレスは、現状のままであり、実際には完全に有効であることがわかります。 それどころか、一部のアドレスは解放されます。 インターネットの形成の夜明けには、まだ使用されていないすべてのアドレスの5分の1が配布されたことがわかりました。 より正確には、これらはローカルのどこかで使用できますが、実際にはBGPインターネットアクセスは存在しません。

BGPのフルビューでは、それほど多くのアドレスが表示されないことを期待していませんでした。 それらの多くは誰かに割り当てられましたが、まったく使用されていません。 もちろん、これは私を混乱させ、私は自分が間違っていた場所を探し始めました。 私は真剣に繰り返し繰り返しミスをしましたが、すべての修正を行った後、最終結果はあまり変わりませんでした。 たぶんすべてを見つけられなかったか、間違っていると思う。 最終的には、AFRINICに対応するすべてのブロックを手動でチェックして、BGPルーターのルーティングテーブルに存在するかどうかを確認し、少なくともこの場合は正しいと見なされるようにしました。

ルーティングテーブルの空きブロックをRIRベースと比較するという、あまりにも多くのアドレスを比較するという元のアイデアを放棄しなければなりませんでした。 受信したすべてのダンプを、プレフィックスのリスト内のスペースを計算するスクリプトの隣に配置します 。計算を繰り返すようにみんなに勧めます。 その間、私たちは開拓者にat望の念を抱いています。開拓者は、近い将来ではなく、確かにアドレスの不足によって脅かされていません。 調査は適切です:

Source: https://habr.com/ru/post/J282532/


All Articles