ВОЙТИ
    opened image

    ​​​​​​​

     

    В современных сетях все чаще используется IPv6, однако, бывают случаи, когда требуется отдавать предпочтение IPv4. В этой статье рассмотрены способы изменения приоритета с IPv6 на IPv4 для различных версий Ubuntu (20.04 и 22.04) и CentOS 7. Мы рассмотрим два метода: настройка файла gai.conf и использование параметров sysctl.

     

    Метод 1: Изменение приоритета через gai.conf

     

    Файл gai.conf (getaddrinfo configuration) используется для настройки предпочтений адресов при разрешении имен. Настройка этого файла позволит системе предпочитать IPv4-адреса перед IPv6.

     

    Ubuntu 20.04 и 22.04

    Шаг 1: Открытие и редактирование gai.conf

     

    1. Откройте терминал.

    2. Отредактируйте файл /etc/gai.conf с правами суперпользователя:

     

    sudo vim /etc/gai.conf

     

     

     

    Найдите строку, содержащую #precedence ::ffff:0:0/96 10. Если она закомментирована (начинается с #), удалите символ # и измените приоритетный вес на 100, чтобы активировать ее и повысить приоритет IPv4:

     

    precedence ::ffff:0:0/96  100

     

     

     

    Шаг 2: Сохранение изменений и перезагрузка сетевых служб

    1. Сохраните файл и закройте текстовый редактор (в nano: нажмите Ctrl+X, затем Y и Enter).

    2. Чтобы изменения вступили в силу, перезапустите сетевые службы или перезагрузите систему:

     

    systemctl restart systemd-networkd

     

     

     

    Автоматическое изменение строки через команду в консоли

    Для автоматического изменения строки используйте следующую команду:

     

    sudo sed -i 's/^#precedence ::ffff:0:0\/96  100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf

     

     

    Эта команда уберет символ # и изменит приоритетный вес на 100, чтобы система предпочитала IPv4-адреса.

     

    CentOS 7

     

    Шаг 1: Открытие и редактирование gai.conf

    1. Откройте терминал.

    2. Отредактируйте файл /etc/gai.conf с правами суперпользователя:

     

    ​​​​​​​sudo vim /etc/gai.conf

     

    Найдите строку, содержащую #precedence ::ffff:0:0/96 10. Если она закомментирована (начинается с #), удалите символ # и измените приоритетный вес на 100, чтобы активировать ее и повысить приоритет IPv4:

     

    precedence ::ffff:0:0/96 100

     

    Шаг 2: Сохранение изменений и перезагрузка сетевых служб

    1. Сохраните файл и закройте текстовый редактор.

    2. Перезапустите сетевые службы:

     

    systemctl restart systemd-networkd

     

    Автоматическое изменение строки через команду в консоли

    Для автоматического изменения строки используйте следующую команду:

     

    sudo sed -i 's/^#precedence ::ffff:0:0\/96  100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf

     

    Эта команда уберет символ # и изменит приоритетный вес на 100, чтобы система предпочитала IPv4-адреса.

     

     

    Метод 2: Использование sysctl для настройки приоритета IPv4

     

    Использование параметров sysctl позволяет управлять настройками ядра, что полезно для полного отключения IPv6 или изменения его поведения на уровне ядра.

     

    Ubuntu 20.04 и 22.04

     

    Шаг 1: Отключение IPv6 через sysctl

    1. Откройте терминал.

    2. Отредактируйте файл /etc/sysctl.conf с правами суперпользователя:

     

     

    sudo vim /etc/sysctl.conf

     

    Добавьте следующие строки в конец файла для отключения IPv6:

     

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1

     

     

    Шаг 2: Применение изменений

    1. Сохраните файл и закройте текстовый редактор.

    2. Примените изменения с помощью команды:

     

    sudo sysctl -p

     

     

    Перезапустите сетевые службы:

     

    Перезапуск systemd-networkd:

     

    sudo systemctl restart systemd-networkd

     

    Перезапуск NetworkManager:

    sudo systemctl restart NetworkManager

     

    CentOS 7

    Шаг 1: Отключение IPv6 через sysctl

    1. Откройте терминал.

    2. Отредактируйте файл /etc/sysctl.conf с правами суперпользователя:

     

     

    sudo vim /etc/sysctl.conf

     

    Добавьте следующие строки в конец файла для отключения IPv6:

     

    net.ipv6.conf.all.disable_ipv6 = 1
    
    net.ipv6.conf.default.disable_ipv6 = 1

     

    Шаг 2: Применение изменений

    1. Сохраните файл и закройте текстовый редактор.

    2. Примените изменения с помощью команды:

     

     

    sudo sysctl -p

     

     

    Перезапустите сетевые службы:

     

    Перезапуск network:

     

    sudo systemctl restart network

     

    Перезапуск NetworkManager:

     

    sudo systemctl restart NetworkManager

     

    Сравнение методов

     

    Использование gai.conf

    Преимущества:

    1. Не требует полного отключения IPv6, что может быть полезно в сетях, где IPv6 необходим.

    2. Простота настройки и минимальные изменения в системе.

    Недостатки:

    1. Изменения влияют только на порядок разрешения имен, не на весь стек сетевых протоколов.

    Использование sysctl

    Преимущества:

    1. Полное отключение IPv6 может упростить диагностику сетевых проблем и устранить конфликты.

    Недостатки:

    1. Полное отключение IPv6 может вызвать проблемы в сетях, где используется только IPv6.

    2. Требуется перезагрузка сетевых служб или системы для вступления изменений в силу.

     

    Заключение

     

    Изменение приоритета с IPv6 на IPv4 в Ubuntu и CentOS может быть достигнуто несколькими способами. Использование файла gai.conf позволяет изменять приоритет адресов при разрешении имен, тогда как настройка через sysctl может полностью отключить IPv6, принуждая систему использовать только IPv4. Оба метода имеют свои преимущества и недостатки, и выбор зависит от ваших конкретных требований и условий сети. Надеемся, что это руководство поможет вам в настройке вашей системы.