CIDR действует для всего, кроме RFC1918

12

Я ищу список блоков CIDR для «Интернета», то есть все от 0.0.0.0 до 223.255.255.255, за исключением адресного пространства RFC1918 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 (да, я знаю, что есть много маленьких сетей, которые являются особыми, например, 192.0.0.0/24, но я действительно не забочусь о них). Я полагаю, что этот список должен существовать где-то в Интернете, но мой гугл-фу меня подводит, поэтому я решил спросить здесь, прежде чем сам составить диапазон.

Редактировать: я забыл действительно важную часть этого вопроса: он мне нужен в наименьшем количестве записей.

И если вы хотите знать, что я делаю с этим, мы вводим статические потоковые моды, чтобы обойти некоторые неприятные проблемы в контролируемой OpenFlow сети, в которой в настоящее время происходит значительное количество проблем, и нам нужно уменьшить количество Временные записи потока, поэтому мы не превышаем доступное пространство в таблицах потоков и заставляем все рушиться в течение нескольких минут, пока он восстанавливает соединение с контроллером.

Джед Дэниелс
источник

Ответы:

34

Позвольте мне показать мою работу здесь ...

Вам нужно минимальное количество блоков CIDR для покрытия:

  • 0.0.0.0-9.255.255.255
  • 11.0.0.0-172.15.255.255
  • 172.32.0.0-192.167.255.255
  • 192.169.0.0-223.255.255.255

Чтобы превратить эти диапазоны в минимальные блоки CIDR, вы можете просто использовать netmask(швейцарский армейский нож адресации), вот так:

$ netmask -c 0.0.0.0:9.255.255.255
    0.0.0.0/5
    8.0.0.0/7
$ netmask -c 11.0.0.0:172.15.255.255
   11.0.0.0/8
   12.0.0.0/6
   16.0.0.0/4
   32.0.0.0/3
   64.0.0.0/2
  128.0.0.0/3
  160.0.0.0/5
  168.0.0.0/6
  172.0.0.0/12
$ netmask -c 172.32.0.0:192.167.255.255
 172.32.0.0/11
 172.64.0.0/10
172.128.0.0/9
  173.0.0.0/8
  174.0.0.0/7
  176.0.0.0/4
  192.0.0.0/9
192.128.0.0/11
192.160.0.0/13
$ netmask -c 192.169.0.0:223.255.255.255
192.169.0.0/16
192.170.0.0/15
192.172.0.0/14
192.176.0.0/12
192.192.0.0/10
  193.0.0.0/8
  194.0.0.0/7
  196.0.0.0/6
  200.0.0.0/5
  208.0.0.0/4

Эй, Престо, Боб - любовник твоей тети.

ombble
источник
1
Человек, я хотел бы дать вам больше, чем один плюс один. Я скажу всем своим друзьям, чтобы плюс один это.
Джед Дэниелс
Я стремлюсь, пожалуйста.
womble
Исходный код home для "netmask", по-видимому, находится здесь: trap.mtview.ca.us/~talby/netmask_2.4.tar.gz
wfaulk
@ womble. Вы рассчитываете cidrs, используя маску сети, только те, которые могут быть выделены интернет-реестрами?
user2689877
2
Вы, сэр, заслуживаете сидра.
Арон
3

Я понятия не имею, для чего вы планируете использовать это, но здесь вы идете:

http://bgp.potaroo.net/as2.0/bgptable.txt

Просто общий дамп таблицы маршрутизации BGP.

Джейсон Берг
источник
0

Не с наименьшим количеством возможных записей; но я думаю, что это полный список.

0.0.0.0/1
0.0.0.0/5
8.0.0.0/7
11.0.0.0/8
12.0.0.0/6
16.0.0.0/4
32.0.0.0/3
64.0.0.0/2
128.0.0.0/1
128.0.0.0/2
128.0.0.0/3
160.0.0.0/5
168.0.0.0/6
172.0.0.0/12
172.128.0.0/9
172.32.0.0/11
172.64.0.0/10
173.0.0.0/8
174.0.0.0/7
176.0.0.0/4
192.0.0.0/2
192.0.0.0/9
192.128.0.0/11
192.160.0.0/13
192.169.0.0/16
192.170.0.0/15
192.172.0.0/14
192.176.0.0/12
192.192.0.0/10
193.0.0.0/8
194.0.0.0/7
196.0.0.0/6
200.0.0.0/5
208.0.0.0/4
224.0.0.0/3
Раджан Патель
источник
1
Как раз 0.0.0.0/1и 128.0.0.0/1достаточно, чтобы охватить все адресное пространство IPv4. Также обратите внимание, что вы ответили на очень старый вопрос, который сейчас несколько устарел. В вопросе не упоминается, как он обрабатывает адреса RFC 6598 (что имеет смысл, поскольку вопрос был написан до публикации этого RFC). Кроме того, никто в здравом уме не считает адресное пространство IPv4 всем Интернетом.
Касперд