Как назначить несколько адресов IPv6-алиасов одному сетевому интерфейсу

Вопрос или проблема

У меня есть диапазон IPv6, который я пытаюсь назначить на сервере CentOS 6. Я обновил свои файлы для настройки IPv6:

[root@test ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=test.techsuccor.com

[root@test ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
HWADDR=82:d7:5d:50:c9:86
TYPE=Ethernet
UUID=8ea314f3-d89a-4a5c-9ede-64b6675cae71
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=180.149.X.X
NETMASK=255.255.255.0

DNS2=206.183.X.X
GATEWAY=180.X.X.X
DNS1=206.X.X.X
IPV6INIT=yes
USERCTL=no
IPV6ADDR=2001:0df3:3cXX::X/64
IPV6_DEFAULTGW=2001:0df3:3cXX::1
[root@test ~]# 

С указанной выше конфигурацией я могу пинговать основной IPv6-адрес внутрь и наружу.

Используя опцию IPV6ADDR_SECONDARIES, я также могу добавлять адреса-алиасы и пинговать их внутрь и наружу.

IPV6ADDR_SECONDARIES="2001:0df3:3cXX::X1/64 \
2001:0df3:3cXX::X2/64 \
2001:0df3:3cXX::X3/64 \
2001:0df3:3cXX::X4/64 \
2001:0df3:3cXX::X5/64"

Что мне действительно нужно сделать, так это назначить полный диапазон IPv6 для одного сетевого интерфейса в качестве адресов-алиасов за один раз. Я могу сделать это с помощью команды ниже.

[root@test ~]# for ip in {4..10}; do /sbin/ifconfig eth0:1 inet6 add 2001:0df3:3c00::${ip}/64; done

Также после выполнения этой команды я вижу свои IPv6 адреса с помощью команды ifconfig, как показано ниже, но только основной IPv6 отвечает на пинг, и ни один из адресов-алиасов не отвечает снаружи. Кроме того, после перезагрузки сети все IP-адреса исчезают.

[root@test ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 82:D7:5D:50:C9:86  
          inet addr:180.149.XX.XX  Bcast:180.149.XX.XX Mask:255.255.255.0
          **inet6 addr: 2001:df3:3c00::10/64 Scope:Global
          inet6 addr: 2001:df3:3c00::1/64 Scope:Global
          inet6 addr: 2001:df3:3c00::3/64 Scope:Global
          inet6 addr: 2001:df3:3c00::4/64 Scope:Global
          inet6 addr: 2001:df3:3c00::5/64 Scope:Global
          inet6 addr: fe80::80d7:5dff:fe50:c986/64 Scope:Link
          inet6 addr: 2001:df3:3c00::6/64 Scope:Global
          inet6 addr: 2001:df3:3c00::7/64 Scope:Global
          inet6 addr: 2001:df3:3c00::8/64 Scope:Global
          inet6 addr: 2001:df3:3c00::9/64 Scope:Global**
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:312539319 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1808219 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22772397919 (21.2 GiB)  TX bytes:312003644 (297.5 MiB)
          Interrupt:165 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16406 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16406 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2295915 (2.1 MiB)  TX bytes:2295915 (2.1 MiB)

В теории, выглядит так, что IPV6ADDR_SECONDARIES должен поддерживать диапазон в формате initscripts-ipv6:

3ffe:ffff::1f-2a

установит диапазон от "3ffe:ffff::1f" до "3ffe:ffff::2a"

(документация)

На практике, NetworkManager от Redhat, похоже, не поддерживает этот формат.

Я думаю, что можно достичь этой цели, добавив несколько вторичных IPv6 адресов. Пожалуйста, отредактируйте ваш файл, как вы делали раньше, откройте файл vi /etc/sysconfig/network-scripts/ifcfg-eth0 и добавьте в таком формате (удалите ***)

IPV6ADDR_SECONDARIES="2001:0df3:3cXX::X1/64 \
2001:0df3:3cXX::X2/64 \
2001:0df3:3cXX::X3/64 \
2001:0df3:3cXX::X4/64 \
2001:0df3:3cXX::X5/64"

Если проблема все еще остается, пожалуйста, создайте виртуальные адаптеры для этого, и надеюсь, это решит вашу проблему.

Ответ или решение

Чтобы назначить несколько адресов IPv6-алиасов на один сетевой интерфейс в CentOS 6, выполните следующие шаги.

Шаг 1: Конфигурация интерфейса

  1. Откройте файл конфигурации сетевого интерфейса для редактирования. В вашем случае это ifcfg-eth0:

    vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. Убедитесь, что у вас есть следующие строки (замените значения на ваши собственные):

    IPV6INIT=yes
    IPV6ADDR=2001:0df3:3cXX::X/64
    IPV6_DEFAULTGW=2001:0df3:3cXX::1
    IPV6ADDR_SECONDARIES="2001:0df3:3cXX::X1/64 \
    2001:0df3:3cXX::X2/64 \
    2001:0df3:3cXX::X3/64 \
    2001:0df3:3cXX::X4/64 \
    2001:0df3:3cXX::X5/64"

    Параметр IPV6ADDR_SECONDARIES позволяет указать несколько адресов алиасов. Каждому алиасу необходимо задать свой уникальный адрес в определённом диапазоне.

Шаг 2: Перезапуск сетевых служб

После изменения конфигурации обязательно перезапустите сетевые службы для применения изменений:

service network restart

Шаг 3: Проверка работы адресов

После перезапуска службы проверьте, что все адреса правильно назначены, с помощью команды:

ifconfig

Вы должны увидеть все ваши назначенные IPv6-адреса, включая алиасы.

Решение проблем

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

  2. В некоторых случаях система может не сохранять алиасы после перезапуска, особенно при использовании NetworkManager. Если это так, вам может потребоваться создать виртуальные адаптеры.

Примечание по Virtual Adapters

Если вышеуказанное решение не решает проблему, создание виртуальных интерфейсов может помочь. Это можно сделать следующим образом:

  1. Создайте новый файл конфигурации, например, ifcfg-eth0:1, для виртуального интерфейса:

    vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
  2. Вставьте туда следующие строки (замените на свои значения):

    DEVICE=eth0:1
    BOOTPROTO=none
    ONBOOT=yes
    IPV6ADDR=2001:0df3:3cXX::X1/64
  3. Повторите для других алиасов (в создании дополнительных файлов ifcfg-eth0:2, ifcfg-eth0:3 и так далее).

Заключение

Следуя приведённым выше инструкциям, вы сможете назначить несколько IPv6-алиасов на один сетевой интерфейс и обеспечить их функционирование при перезагрузке. Если после выполнения всех шагов у вас остаются вопросы или проблемы, рекомендуется проверить журналы системы на наличие ошибок.

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

Капча загружается...