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 アフリカ人 ラクニック レガシー
/ 24 344704 120580 81055 92632 8293 35894 6250
/ 23 61168 20135 17563 13976 1373 7332 789
/ 22 72588 24472 19366 17587 1799 8803 561
/ 21 44,409 11721 13596 11143 1376 6250 323
/ 20 40035 13363 8312 12006 712 5320 322
/ 19 27055 7140 6929 7131 540 5222 93
/ 18 13300 3868 3114 4229 558 1465 66
/ 17 7928 2431 2145 2235 257 810 50
/ 16 13212 5563 2600 3894 315 660 180
/ 15 1804 502 557 506 56 156 27
/ 14 1052 280 276 295 58 135 8
/ 12 516 123 121 233 31 5 3
/ 11 269 96 50 101 17 2 3
/ 10 36 13 9 14 0 0 0
/ 9 13 4 0 0 0 0 9
/ 8 16 2 0 1 0 0 13
/ 7 0 0 0 0 0 0 0
合計: 628105 210293 155693 165983 15385 72054 8697


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



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



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



画像



無料のプレフィックス
合計 アリン 熟した APNIC アフリカ人 ラクニック レガシー
/ 24 27358 14225 6213 5287 401 1211 21
/ 23 18763 10260 4159 3419 257 648 20
/ 22 15170 7469 3618 3363 221 479 20
/ 21 8366 4533 1684 1650 139 336 24
/ 20 5312 3081 819 1069 74 236 33
/ 19 3355 2011 426 701 56 136 25
/ 18 1959 1254 181 397 31 76 20
/ 17 1194 750 127 241 22 43 11
/ 16 1907 1405 168 251 24 47 12
/ 15 586 381 69 106 11 7 12
/ 14 193 114 20 38 8 2 11
/ 12 70 31 9 17 6 0 7
/ 11 40 19 1 9 2 0 9
/ 10 16 4 1 4 1 0 6
/ 9 8 1 0 0 0 0 7
/ 8 10 1 0 0 1 0 8
/ 7 1 0 0 0 0 0 1


/ 24に与えられる無料のプレフィックス
合計 アリン 熟した APNIC アフリカ人 ラクニック レガシー ADMINBY
/ 24 27358 14225 6213 5287 401 1211 21 9439
/ 23 37526 20520 8318 6838 514 1296 40 13748
/ 22 60680 29876 14472 13452 884 1916 80 21836
/ 21 66928 36264 13472 13200 1112 2688 192 27104
/ 20 84992 49296 13104 17104 1184 3776 528 37792
/ 19 107360 64352 13632 22432 1792 4352 800 53760
/ 18 125376 80256 11584 25408 1984 4864 1280 73024
/ 17 152832 96000 16256 30848 2816 5504 1408 97664
/ 16 488192 359680 43008 64256 6144 12032 3072 396800
/ 15 300032 195072 35328 54272 5632 3584 6144 229888
/ 14 197632 116736 20480 38912 8192 2048 11264 130048
/ 12 143360 63488 18432 34816 12288 0 14336 94208
/ 11 163840 77824 4096 36864 8192 0 36864 81920
/ 10 131072 32768 8192 32768 8192 0 49152 57344
/ 9 131072 16384 0 0 0 0 114688 16384
/ 8 327680 32768 0 0 32768 0 262144 32768
/ 7 65536 0 0 0 0 0 65536 0
合計: 2611468 1285509 226587 396457 92095 43271 567549 1373727
/ 8の合計ブロック 79.70 39.23 6.91 12.10 2.81 1.32 17.32 41.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 アフリカ人 ラクニック レガシー
/ 24 19270 10418 4089 3725 246 789 3
/ 23 14019 7864 2978 2435 189 547 6
/ 22 10221 5683 2251 1634 183 459 11
/ 21 6728 3637 1533 1090 104 356 8
/ 20 4899 2625 903 853 63 430 25
/ 19 3068 1751 485 554 52 210 16
/ 18 1876 1165 221 330 39 106 15
/ 17 1186 710 148 224 20 73 11
/ 16 2069 1503 179 309 14 54 10
/ 15 672 424 65 147 9 18 9
/ 14 280 147 22 80 8 14 9
/ 12 129 54 11 41 8 9 6
/ 11 73 30 7 22 4 3 7
/ 10 27 9 4 7 1 1 5
/ 9 17 3 3 3 1 2 5
/ 8 16 3 2 0 1 2 8
/ 7 2 1 0 0 0 0 1


/ 24 2011に付与された無料のプレフィックス
合計 アリン 熟した APNIC アフリカ人 ラクニック レガシー ADMINBY
/ 24 19270 10418 4089 3725 246 789 3 6335
/ 23 28038 15728 5956 4870 378 1094 12 9642
/ 22 40884 22732 9004 6536 732 1836 44 14232
/ 21 53824 29096 12264 8720 832 2848 64 19240
/ 20 78384 42000 14448 13648 1008 6880 400 29760
/ 19 98176 56032 15520 17728 1664 6720 512 43776
/ 18 120064 74560 14144 21120 2496 6784 960 64192
/ 17 151808 90880 18944 28672 2560 9344 1408 86272
/ 16 529664 384768 45824 79104 3584 13824 2560 436480
/ 15 344064 217088 33280 75264 4608 9216 4608 250368
/ 14 286720 150528 22528 81920 8192 14336 9216 171008
/ 12 264192 110592 22528 83968 16384 18432 12288 135168
/ 11 299008 122880 28672 90112 16384 12288 28672 135168
/ 10 221184 73728 32768 57344 8192 8192 40960 65536
/ 9 278528 49152 49152 49152 16384 32768 81920 65536
/ 8 524288 98304 65536 0 32768 65536 262144 131072
/ 7 131072 65536 0 0 0 0 65536 0
合計: 3469168 1614022 394657 621883 116412 210887 511307 1663785
/ 8の合計ブロック 105.87 49.26 12.04 18.98 3,55 6.44 15.60 50.77


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



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



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



All Articles