Openvpn: iroute для всех теоретически доступных [публичных] IP-адресов
Я тестирую создание принудительного маршрута по умолчанию только публичного пространства IPv4 через OpenVPN. OpenVPN не поддерживает
'iroute 0.0.0.0 0.0.0.0'из коробки, потому что он содержит код, который отклоняет его. Но если вы удалите этот код и заставите работать 0.0.0.0, логически через какое-то время истечет время соединения, так как OpenVPN запутается.
Я обнаружил, что минимальная дальность полета - это /4. Поэтому, если вы хотите разделить все пространство IPv4 на блоки / 4, вы получите 16 блоков в диапазоне от 0.0.0.0 до 255.255.255.255. Но он содержит все маршрутизируемые и не маршрутизируемые IP-адреса... поэтому список необходимо дополнительно разграничить.
Из-за нестандартной настройки я не могу использовать вещи перенаправления-шлюза. Вот почему я ищу как можно более короткий список подсетей существующих диапазонов публичных IP-адресов. Список должен исключать зарезервированные диапазоны (и общедоступный IP/32 моего собственного сервера). По сути, я хотел бы получить список противоположностей RFC 5735 (стр. 6).
Существует ли такой список и / или как его можно создать?
3 ответа
Почему вы используете iroute
? У меня просто есть "push "route 0.0.0.0 0.0.0.0"в моей конфигурации сервера OpenVPN, и он отлично работает (ну, мне нужно отключить маршрут по умолчанию, который идет от DHCP, но это тривиально).
Обновление, я решил написать программу для решения проблемы инвертирования списка блоков 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 Ranges для всего, кроме RFC1918.
netmask -c 1.0.0.0:9.255.255.255
Я не обработал полный список, но, попробовав несколько диапазонов, я предполагаю, что в нем будет около 60 записей.
Эта проблема в баге:
https://community.openvpn.net/openvpn/ticket/726
И для временного решения я использую этот контент ccd: https://community.openvpn.net/openvpn/attachment/ticket/726/ccd_tmp_fixed_content