IPv6 и баг YUM в CentOS

15 Oct 2018 | Автор: anchous |

Натолкнулся тут на занятный баг пакетного инсталлера yum для CentOS. Связан он с использованием системой IPv6. Надо заметить, что лечиться он должен одной строкой в конфиге yum. Но это в теории.

На деле же все выглядело несколько иначе.

Понадобилось тут поставить один пакет на сервер где крутились прокси IPv6. Много прокси. Штук так 100тыщ. Так что сервер немного был под напряжением, причем со слов владельца этого хозяйства, останавливать процесс было сложно.

При попытке сказать yum install установщик начинал дико материться
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release error was
14: PYCURL ERROR 7 – “Failed to connect to 2a02:2498:1:3d:5054:ff:fed3:e91a: Network is unreachable”
Error: Cannot find a valid baseurl for repo: base

и дальше сыпал ошибками, говорящими о том, что он не может получить пакеты при обращении по адресу IPv6.

Тут надо заметить, что до этого сервер работал с полгода и никаких проблем с установкой доп.пакетов не возникало. А тут вдруг что то перестал корректно работать.

Причем, при пинге указанных хостов, они резолвились IPv4 адресами, т.е гуглеDNS указанный в /etc/resolv.conf отрабатывал нормально.

Маны говорят о том, что конфиг установщика /etc/yum.conf необходимо прописать директиву использование IPv4
ip_resolve=4
и возможно кому то это помогает, но только не мне, т.к ошибка оставалась как при запуске простого yum, так и с принудительным указанием конфига
# yum –config=/etc/yum.conf
т.к закралась мыcль, что возможно он просто не отрабатывается.

Помимо этого перепробовал прописывать репы в hosts, менять настройки реп, но это ничего не помогало. Так что оставался единственный вариант – отрубить IPv6 на системе.
Делается это через добавление в ядро двух директив
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
либо добавлением в /etc/sysctl.conf и его рестарте sysctl -p или же путем добавления сразу в ядро:
# sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
# sysctl -w net.ipv6.conf.default.disable_ipv6 = 1

но что интересно, в моем случае, yum не работал до того момента, как я не стопарнул все процессы прокси, т.к не смотря на то, что все маршруты и IPv6 выгрузились, yum возвращал ту же самую ошибку по IPv6.

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Теги:

Ваш отзыв