IPv6 IPsec между двумя собственными сетями IPv6

Предположите, что у меня есть две сети, A и B, на сайтах любая сторона земного шара. Оба имеют собственный IPv6 и используют (гипотетически) просто IPv6. IPv4 больше не существует. Они могут и получить доступ к Интернету исходно как к IPv6 и использовать хосты IPv6. Их адреса IPv6 все глобально routable. Так, несмотря на правила брандмауэра, каждый хост в сети A может достигнуть каждого хоста в сети B и наоборот.

Как я настроил бы IPSec для обеспечения трафика между теми двумя сетями?

В мире IPv4 я создал бы туннель IPSec между двумя брандмауэрами на каждом сайте или использовал бы Туннелирование GRE или подобный.

Но как я сделал бы это в мире все-IPv6? Действительно ли там что-то внутренне в IPv6, который делает это легче? Идеально я хочу настроить это только на брандмауэрах/маршрутизаторах на каждом сайте. Я не хочу должным быть настраивать способ транспортировки IPSec на каждом хосте в каждой сети.

FWIW, я использую OpenBSD для своих потребностей routing/firewalling/ipsec, таким образом, любые специфические особенности с этим были бы полезны, но общий ответ на то, как IPv6 / соглашение IPSec с этим сценарием также будет хорош.

2
задан 23 September 2015 в 00:54
2 ответа

Вы можете использовать точно такую же технику, как и IPv4. Я думаю, что в OpenBSD не хватает технологии VTI/st, так что gre или gif было бы просто отлично. И да, есть одна вещь, которая делает это проще - адреса локального scope на интерфейсах (однако, вы можете использовать любые адреса). В мире IPv4 вам нужно назначать AF_INET адреса на каждом конце, чтобы маршрутизация работала, но в мире IPv6 маршрутизация работает просто отлично, используя адреса локального scope, включая OSPF. Это рабочий рецепт, я использую IPv6 gre на FreeBSd уже несколько лет.

Схема IPSec тоже должна работать, но да, сейчас она устарела из-за осложнений маршрутизации, которые она вызывает.

.
0
ответ дан 3 December 2019 в 14:38

Я не тестировал это, но не вижу разницы между IPv4 и IPv6. Отсутствие частных IP-адресов может сбить вас с толку, но в противном случае это должно быть то же самое. Думаю, вы устанавливаете туннель с енотом, так что я это пропущу. Остальное можно сделать под Linux с помощью ipsec-tools/setkey.

С верхней части моей головы, я думаю, что вам нужно две записи SPD, один входящий и один исходящий. Что-то подобное должно делать работу:

spdadd 2a01:1111:2222:3333::/64 2a01:1111:2222:3334::/64 any -P out ipsec
    esp/tunnel/2a01:1111:2222:1::1-2a01:1111:2222:1::2/require ;


spdadd 2a01:1111:2222:3334::/64 2a01:1111:2222:3333::/64 any -P in ipsec
    esp/tunnel/2a01:1111:2222:1::1-2a01:1111:2222:1::2/require ;

Где:

  • 2a01:1111:2222:3333::/64 - это ваша локальная сеть
  • 2a01:1111:2222:3335::/64 - это ваша удаленная сеть
  • 2a01:1111:2222:1::1 - это ваша локальная конечная точка
  • 2a01:1111:2222:1::2 - это ваша удаленная конечная точка

p. s. Убедитесь, что вы прошли -6, если вы используете имена хостов

.
0
ответ дан 3 December 2019 в 14:38

Теги

Похожие вопросы