IPv6 multiple addresses on an interface

I used to assign different IPv6 addresses for different services on the same server this way I can filter what can be accessed from where, which is improves network security.

I just realized that the only thing I might be doing wrong is that I choose these addresses from the same /64 prefix. It is not a problem to filter out connections from the outside world on the gateway, but the isolation may be bad between the server processes.

If I understand correctly, /64 is the smallest prefix that is recommended be assigned. If I want to disallow (using packet filter on the server) the services to communicate with each other then they should not be in the same subnet so I have to assign the addresses from different /64 prefixes.

Am I right in this?

Or it is no problem using serveral /120 prefixes for example to not needlessly waste the IP range?

Should it work as per standard, or the behavior is implementation-specific?

Thank you in advance!

0
задан 10 May 2017 в 20:48
2 ответа

Внутри вашей сети, я полагаю, технически вы можете делай что хочешь. Вы можете назначить / 120, если действительно хотите. Но не стоит.

Но есть ли проблема, которую вы пытаетесь решить здесь? При назначении нескольких адресов IPv6 с одного / 64 одному серверу не должно возникнуть проблем. Фактически, вы можете назначить весь / 64 или больше, если хотите (и есть причины, по которым вы захотите это сделать).

Теперь, когда все сказано и готово, похоже, что вас больше всего интересует внутрисерверная связь. Но вот в чем дело - даже если вы назначаете IP-адреса из разных сетей, внутрисерверная связь все равно будет работать. Потому что сервер будет маршрутизировать только к шлюзу по умолчанию (и, таким образом, проходить через межсетевой экран сетевого уровня), если у него нет маршрута к цели, но в вашем случае у него есть прямой маршрут к цели, потому что IP все адреса находятся на одной машине.

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

Самый распространенный способ обеспечить такое разделение - использовать виртуальные машины. Или контейнеры / тюрьмы.

1
ответ дан 4 December 2019 в 16:15

IPv6 основан на предположении, что / 64 (или больше) подсетей. Если вы сделаете подсети меньше этого размера, вам нужно действительно изучить, какие функции вы можете сломать. Некоторые производители кодируют реализации IPv6 так, чтобы в качестве базового размера принимали / 64.

Я также хотел бы добавить, что вам не нужно назначать подсеть для фильтрации IP. Вы правы, что связь между подсетями приведет к тому, что трафик будет маршрутизироваться через шлюз, но если все ваши службы находятся на одном компьютере, вы можете изучить правила iptables или аналогичные правила на этом компьютере для фильтрации межсервисного взаимодействия. Это может быть сделано на основе / 128 или для каждого хоста.

Последнее, на что следует обратить внимание, это то, что если эти службы необходимо разделить, они могут быть на отдельных машинах, виртуальных машинах или контейнерах (Docker).Это, вероятно, было бы моей рекомендацией, но это далеко от того, о чем вы просите.

0
ответ дан 4 December 2019 в 16:15

Теги

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