Назад | Перейти на главную страницу

Openvpn: iroute для всех теоретически доступных [общедоступных] IP-адресов

Я тестирую создание принудительного маршрута по умолчанию только для общедоступного пространства IPv4 через OpenVPN. OpenVPN не поддерживает

'iroute  0.0.0.0  0.0.0.0'
out of the box, because it contains code that rejects it. But if you remove that code and get iroute 0.0.0.0 to work, logically the connection times out after a while because OpenVPN gets confused.

Я обнаружил, что минимальный диапазон для iroute составляет / 4. Итак, если вы хотите разделить все пространство IPv4 на / 4 блока, вы получите 16 блоков в диапазоне от 0.0.0.0 до 255.255.255.255. Но это содержит все маршрутизируемые и немаршрутизируемые IP-адреса ... поэтому список необходимо дополнительно разделить.

Из-за нестандартной настройки я не могу использовать шлюз перенаправления. Вот почему я ищу как можно более короткий список подсетей из существующих общедоступных диапазонов IP-адресов. Список должен исключать зарезервированные диапазоны (и публичный IP-адрес моего собственного сервера / 32). По сути, я хотел бы иметь список противоположностей RFC 5735 (стр. 6)

Существует ли такой список и / или как его создать?

Update, решил написать программу для решения проблемы инвертирования списка блоков cidr. Вы можете получить это от. https://github.com/plugwash/cidrinverse

Запуск программы в списке блоков из rfc 5735 дает список из 111 блоков cidr. Я не буду вставлять здесь полный список, но вы можете легко перезапустить программу самостоятельно, если хотите.


примечание: с момента выпуска этого документа было произведено несколько дополнительных специальных регистраций, а также некоторые "особые" диапазоны являются используется в общедоступном Интернете, например 192.88.99.0/24)

но в любом случае допустим, что мы хотим найти список масок cidr для всего пространства, которое rfc 5735 не считает специальным.

Список в rfc 5735 уже отсортирован, поэтому мы можем легко работать со списком и записывать диапазоны IP-адресов между ними.

  • 1.0.0.0 к 9.255.255.255
  • 11.0.0.0 к 126.255.255.255
  • 128.0.0.0 к 169.253.255.255
  • 169.255.0.0 к 172.15.255.255
  • 172.32.0.0 к 191.255.255.255
  • От 192.0.1.0 до 192.0.1.255
  • 192.0.3.0 к 192.88.98.255
  • 192.88.100.0 к 192.167.255.255
  • 192.169.0.0 к 198.17.255.255
  • 198.20.0.0 к 198.51.99.255
  • 198.51.101.0 к 203.0.112.255
  • 203.0.113.0 к 223.255.255.255

Мы можем преобразовать каждый из этих диапазонов в список масок CIDR с помощью инструмента командной строки "netmask", как предложено на Диапазон CIDR для всего, кроме RFC1918

netmask -c 1.0.0.0:9.255.255.255

Я не обработал полный список, но, попробовав пару диапазонов, думаю, у него будет где-то около 60 записей.

Почему вы используете iroute? У меня просто есть "push" route 0.0.0.0 0.0.0.0 "в моей конфигурации сервера OpenVPN, и он отлично работает (ну, мне нужно изменить маршрут по умолчанию, который исходит из DHCP, но это тривиально).

Эта проблема в ошибке:

https://community.openvpn.net/openvpn/ticket/726

И для временного решения я использую это содержимое ccd: https://community.openvpn.net/openvpn/attachment/ticket/726/ccd_tmp_fixed_content