Как настроить автоконфигурацию IP V6

Я только начинаю разбираться в IP v6 и столкнулся с проблемой на моем виртуальном хосте.

Сетевой интерфейс хостов (eth0) в настоящее время настраивается со статическим IPv4-адресом. В / etc / network / interfaces нет ничего, указывающего, как настроен IP V6, поэтому я предполагаю, что по умолчанию используется автоматическая конфигурация без сохранения состояния, как если бы я указал

iface eth0 inet6 auto 

Если я получил 2/64 IPV6-адресов, теперь я вижу 2 IPv6-адреса и один IPV4-адрес, настроенный на eth0.

Я хотел бы использовать второй адрес для своих контейнеров докеров, поэтому я считаю, что мне нужно настроить этот адрес в /etc/docker/daemon.json, но мне также нужно, чтобы моя система не назначала его eth0.

Итак, вопрос:

Могу ли я настроить свою систему так, чтобы назначать eth0 только один IPv6-адрес, чтобы другой оставался доступным для докера?

Или мне нужно вернуться к статической конфигурации IPV6?

Также в режиме без сохранения состояния IPV6-адрес представляет собой комбинацию префикса и моего MAC-адреса. Должен ли я указывать полный IP-адрес в статическом режиме или можно автоматически настроить MAC-адрес?

Заранее спасибо Томас

1 ответ
1

Я хотел бы использовать второй адрес для своих контейнеров докеров, поэтому я думаю, что мне нужно настроить этот адрес в /etc/docker/daemon.json

Конфигурация Docker не принимает адрес — она ​​принимает сетевой префикс (другими словами, целую подсеть). Ему нужен уникальный адрес для каждый контейнер, не только для Docker в целом.

И пока Docker управляет собственной изолированной сетью, он должен имеют выделенный префикс — как в IPv4, так и в IPv6 он нет просто заставить два интерфейса использовать один и тот же префикс подсети (т. е. адреса маршрутов, которые должны напрямую принадлежать вашей подсети).

Независимо от того, хотите ли вы «совместно использовать» IPv4 / 24 или IPv6 / 64, проблема в том, что ваш маршрутизатор и все остальные в подсети будут ожидать запросов ARP (NDP) и получения ответов — но этого не произойдет, если адрес сбрасывается с eth0 и маршрутизируется куда-то дальше.

Чтобы действительно заставить такой «общий» префикс работать, вам необходимо:

  • напрямую прикрепить контейнеры к eth0 (например, используя режим моста macvlan в Docker) или
  • запустите Proxy-NDP на хосте (например, ndppd), чтобы ваш хост выдавал ответы NDP от имени адресов, которые он маршрутизирует, или
  • отбросьте эту идею и настройте отдельный / 64 для docker0.

Могу ли я настроить свою систему так, чтобы назначать eth0 только один IPv6-адрес, чтобы другой оставался доступным для докера?

С самого начала в этом нет никакого смысла. Не думайте об этом как о «необходимости держать другой адрес доступным». Доступен весь / 64, и если вам нужен адрес, вы можете буквально взять третий адрес из того же / 64.

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

В автоконфигурации IPv6 без сохранения состояния хост получает только сетевой префикс — нет квоты для адресов на хост, действительно, один из двух адресов, которые вы сейчас видите, скорее всего, помечен как « временный » и заменяется новым каждые несколько часы. Также не существует специального протокола для запроса / аренды адреса, поэтому он назван автоконфигурацией без сохранения состояния.

Также в режиме без сохранения состояния IPV6-адрес представляет собой комбинацию префикса и моего MAC-адреса. Должен ли я указывать полный IP-адрес в статическом режиме или можно автоматически настроить MAC-адрес?

Вы указываете полный IP-адрес; однако вы можете выбрать любой суффикс. Он не обязательно должен основываться на вашем MAC-адресе, он просто должен быть уникальным и находиться в пределах префикса подсети.

Другие хосты всегда будут использовать NDP (ARP для IPv6) для обнаружения вашего адреса уровня 2, в этом отношении для IPv6-адресов на основе MAC нет специальной обработки.

(Ну, если оператор сети действительно не настаивает на этом — но тогда ваш eth0 не будет работать с этими два В любом случае адреса IPv6, так как только один из них основан на MAC — другой генерируется случайным образом.)

Различные операционные системы полностью прекратили использование MAC-адресов даже для автоконфигурации без сохранения состояния, заменив их бессмысленными адресами на основе хешей (например, согласно RFC 7217).

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *