Главная » Несъедобные грибы » Но мне просто надо, чтобы все работало и чтобы я имел возможность ручного изменения конфигурационных файлов.

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

Начиная с EL6, поставщик ПО принял решение убрать boot.iso из директории /images и поставлять его, как отдельный независимый носитель. Из-за большого размера этого образа мы решили сделать тоже самое. На текущий момент образ диска сетевой установки называется netinstall.iso и располагается в директории isos/ вместе с остальными установочными образами.

2. Почему для того, чтобы моя сетевая Ethernet-карта заработала, мне необходимо залогиниться и самому её задействовать?

И почему, если сравнивать с распостранённой практикой, имена сетевых интерфейсов названы "неверно"? Ведь это нарушает правило Unix "не изменять ожиданиям".

Поставщик ПО добавил NetworkManager к конфигурации по умолчанию, и сетевые интерфейсы (каким-то необъяснимым образом) по умолчанию неактивны. Это можно исправить во время процесса установки на этапе, когда установщик предлагает вам настроить язык/клавиатуру/устройство хранения/ПО в основном окне установщика, сделав вашу сетевую карту активной. Для этого вам необходимо нажать "Network & Hostname" ("Сеть и имя хоста"), выбрать то сетевое Ethernet соединение, которое вы хотите изменить, и нажать кнопку "Off" в верхнем правом углу. Если исходить из того, что вы можете использовать DHCP, то ваше сетевое соединение перейдёт в состояние получение сетевого адреса. Если же вам необходимо вручную задать сетевые настройки, нажмите "Configure", после чего введите и сохраните нужные значения. Для того, чтобы изменения вступили в силу, скорее всего будет необходимо отключить, а потом включить только что настроенный сетевой интерфейс. Нажмите "Done". Помимо вышеуказанного способа, сетевое соединение после установки можно настроить при помощи "NetworkManager " (располагается в "System; Preferences; Network Connections", либо нажмите ПКМ по маленькому значку сети в области уведомлений, после чего - "Edit Connections").

Если же вы не используете NetworkManager , то аналогичный результат можно достигнуть, измененив файл конфигурации соответствующего сетевого интерфейса (как правило это /etc/sysconfig/network-scripts/ifcfg-eth0): "ONBOOT=no" на "ONBOOT=yes". В случае использования DHCP может потребоваться добавить строку "BOOTPROTO=dhcp". Для статического IP потребуется "BOOTPROTO=static".

Если предположить, что имя сетевого устройства - eth0, то изменение строчки ONBOOT может быть осуществленно (от имени root) следующим образом:

# cd /etc/sysconfig/network-scripts/ # sed -i -e "s@^ONBOOT="no@ONBOOT="yes@" ifcfg-eth0

Касательно "изменённых ожиданий": в предыдущем примере используется "традиционное" именование сетевого интерфейса: eth0 . Однако возможны и другие названия, как например em1 , p3p1 и пр. Нравится это или нет, но эта концепция именования - дальнейший пусть развития Linux. Это было описано раннее в "тестовом дистрибутиве" вендора ПО. Смотрите так же Dell"s writeup и blog post

3. А что, если я хочу вернуть старое именование?

Для этого существует 3 необходимых шага:

  • добавить "inet.ifnames=0" и "biosdevname=0" -параметры ядра загрузчика grub;
  • изменить конфиг файл для вашего сетевого интерфейса, расположенный в /etc/sysconfig/network-scripts/, переименовав его в "ifcfg-ethX";
  • в том случае, если у вас есть несколько сетевых интерфейсов и вы хотите управлять именованием каждого из них вместо того, чтобы позволить ядру делать это, замените файл /usr/lib/udev/rules.d/60-net.rules файлом /etc/udev/rules.d/60-net.rules

4. Но мне просто надо, чтобы все работало и чтобы я имел возможность ручного изменения конфигурационных файлов

Большинству вариантам установки не требуется чрезмерная сложность, обусловленная взаимодействия с NetworkManager , достаточно ручного изменения конфигурационых файлов. Ниже приведён фрагмент настройки сетевого интерйеса с использованием DHCP без участия NetworkManager :

# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO=dhcp NM_CONTROLLED="no" PERSISTENT_DHCLIENT=1 ONBOOT="yes" TYPE=Ethernet DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME="eth0" #

или обычная настройка с использованием "статики":

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" HWADDR="00:21:70:10:7E:CD" NM_CONTROLLED="no" ONBOOT="yes" BOOTPROTO=static # BOOTPROTO=dhcp IPADDR=10.16.1.106 NETMASK=255.255.255.0 # # the GATEWAY is sometimes in: /etc/sysconfig/network GATEWAY=10.16.1.1

после чего можно добавить другие распостранённые свойства, как например hostname или DNS-сервера:

$ cat /etc/sysconfig/network HOSTNAME=acme.example.com DNS1=10.16.1.112 DNS2=8.8.8.8 ## DNS2=76.242.0.28 SEARCH=example.com

Эти параметры являются опциональными, т.к. DHCP-сервер сам может оперировать ими. Initscript -ы могут определять такие параметры как Имя компьютера при помощи PTR-записей в правильно настроенной DNS-среде, но некоторым пользователям может потребоваться вручную изменять параметры. Полную документацию по initscript-ам можно найти при помощи:

Rpm -qd initsсripts

даже в той среде, где отсутствует man -пакет и его зависимости.

5. Как отключить IPv6?

Один из работников Вендора ПО рекомендует оставлять модуль IPv6 включенным, т.к. отключение может повлиять на работу SELinux и других компонентов. Вместо этого предлагается добавить следующие строки в /etc/sysctl.conf:

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

А чтобы отключить IPv6 на запущенной системе:

Echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

Sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1

Замечание 1 : При отключенном IPv6 могут возникнуть проблемы с пробросом X-ов через ssh. Для решения этого необходимо изменить /etc/ssh/sshd_config следующим образом: либо измениить

#AddressFamily any

AddressFamily inet

("inet" соответствует "ipv4 only", "inet6" - ipv6)

Либо удалить значёк "#" перед строчкой

#ListenAddress 0.0.0.0

и перезапустить ssh

Замечание 2 : Если при отключенном IPv6 наблюдаются проблемы запуска Postfix, то либо измените /etc/postfix/main.cf - закомментируйте часть с "localhost" и замените на ipv4 loopback:

#inet_interfaces = localhost inet_interfaces = 127.0.0.1

либо уберите строку с ipv6 localhost из файла /etc/hosts.

Замечание 3 : Для того, чтобы отключить RPCBIND ipv6 (rpc, rpc.mountd, rpc,statd), закомментируйте строки с "udp6" и "tcp6" в файле /etc/netconfig:

Udp tpi_clts v inet udp - - tcp tpi_cots_ord v inet tcp - - #udp6 tpi_clts v inet6 udp - - #tcp6 tpi_cots_ord v inet6 tcp - - rawip tpi_raw - inet - - - local tpi_cots_ord - loopback - - - unix tpi_cots_ord - loopback - - -

6. Где я могу скачать 32-битную версию?

32-х битная версия CentOS 7 располагается тут: http://mirror.centos.org/altarch/7/isos/i386/

7. Куда делись ifconfig/netstat?

Т.к. утилиты ifconfig и netstat в man-страницах для CentOS-5 и CentOS-6 помечаяются как устаревшие вот уже на протяжении десятилетия, то RedHat приняла решение не ставить по умолчанию net-tool пакет в CentOS-7. Одна из причин для этого, например, что ifconfig не отображает всей информации по IP-адресу интерфейса - используйте вместо этого комманду "ip". Утилиты, которые пришли взамен - "ss" и "ip". Однако, если вам на самом деле необходимы утилиты ifconfig и netstat, вы можете установить пакет net-tools: yum install net-tools.

Post describes procedure to disable IPv6 on CentOS/RHEL 7. There are 2 ways to do this:
1. Disable IPv6 in kernel module (requires reboot)
2. Disable IPv6 using sysctl settings (no reboot required)

To verify if IPv6 is enabled or not, execute:

# ifconfig -a | grep inet6 inet6 fe80::211:aff:fe6a:9de4 prefixlen 64 scopeid 0x20 inet6::1 prefixlen 128 scopeid 0x10

1. Disable IPv6 in kernel module (requires reboot)

1. Edit /etc/default/grub and add ipv6.disable=1 in line GRUB_CMDLINE_LINUX, e.g.:

# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet" GRUB_DISABLE_RECOVERY="true"

2. Regenerate a GRUB configuration file and overwrite existing one:

# grub2-mkconfig -o /boot/grub2/grub.cfg

3. Restart system and verify no line “inet6” in “ip addr show” command output.

# shutdown -r now

# ip addr show | grep net6

2. Disable IPv6 using sysctl settings (no reboot required)

1. Append below lines in /etc/sysctl.conf:

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

2. To make the settings affective, execute.

Как известно протокол IPv6 появился в качестве альтернативы для протокола IPv4, в виду того что позволяет использовать больше адресов, нежели его предшественник. Однако переход с IPv4 на IPv6 продолжается и по сегодняшний день, и поддержка IPv6 не везде присутствует. Для поддержки IPv6 требуется поддержка, как операционной системы, так и сетевой инфраструктуры в целом. По этой причине если данный протокол не поддерживается на вашем сервере, то его лучше отключить, чтобы сеть работала по функционирующим протоколам. При включенном но не работающем IPv6 могут возникать задержки связанные с маршрутизацией, например при поиске домена, попытках подключиться к адресам IPv6, а так же проявляться проблема может в различных программах использующие сетевые подключения.
Рассмотрим несколько способов отключения IPv6 в Linux CentOS 7. Для этих целей нам понадобится доступ к консоли сервера с правами суперпользователя.

Способ первый
Отключаем протокол IPv6 для всех интерфейсов операционной системы, для этого нам необходимо внести изменения в файл /etc/sysctl.conf. Открываем файл во встроенном :

Vi /etc/sysctl.conf

Добавляем следующие строки:

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

Так же может потребоваться отключить протокол IPv6 для отдельных интерфейсов, предположим имя интерфейса enp0s3 , в этом случае добавляем такую строку:

Net.ipv6.conf.enp0s3.disable_ipv6 = 1

Сохраняем изменения в файле, после чего применяем изменения в конфигурации:

Sysctl -p

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

Echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

Введите команды поочередно, одну за другой, так же вы можете воспользоваться и такими командами:

Sysctl -w net.ipv6.conf.all.disable_ipv6=1

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

Проблемы с SSH после отключения IPv6
Если у вас появились проблемы с SSH после отключения IPv6, выполните следующие манипуляции. Откройте файл конфигурации /etc/ssh/sshd_config

Vi /etc/ssh/sshd_config

Найдите строку:

#AddressFamily any

Приводим к такому виду:

AddressFamily inet

Либо можно расскоментировать (убрать символ # в начале) строку:

Systemctl restart sshd

Проблемы с Posfix после отключения IPv6
Проблемы так же могут появиться и с Postfix после отключения IPv6, для исправления ситуации необходимо выполнить следующие действия.
Открываем файл конфигурации /etc/postfix/main.cf :

Vi /etc/postfix/main.cf

Находим строку inet_interfaces со значением localhost и закомментируем её, оставляем лишь строку со значением 127.0.0.1.

#inet_interfaces = localhost inet_interfaces = 127.0.0.1 systemctl restart postfix

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

IPv6 or Internet Protocol version 6 is the latest version of Internet Protocol (IP). IPv4 or Internet Protocol version 4 is already being widely used. But it has some limitations. The first one is that, IPv4 has 32-bit address scheme. That means only 4.3 billion unique address is possible with IPv4. That is quite limited in today’s world. These days we have many IoT (Internet of Things) devices, smartphones, computers, laptops, servers connected to the internet. Each of these devices need an IP address to communicate to the outside world. So the IPv4 address has shortage.

IPv6 address in the other hand is a 128-bit address. It means about 340,282,366,920,938,463,463,374,607,431,768,211,456 unique IPV6 address is possible in IPv6. That’s a huge number of IP addresses. It is said that, if IPv6 is used, every single device in the world can have its own unique IPv6 address and IPv6 would still be available for new devices. So IPv6 solves issues with limited IP address as in IPv4.

But at the time of this writing, IPv6 support is not available in many countries. It’s not even supported in my country. Though the world is moving to IPv6 slowly, still not everything is IPv6.

If your country has no support for IPv6 yet, there’s no need to keep it enabled on your operating system. So many people tend to disable IPv6 in their operating system.

In this article, I will show you how to disable IPv6 on CentOS 7.5. Let’s get started.

Check Whether IPv6 is Enabled

You can check whether IPv6 is enabled on your CentOS 7.5 operating system with the following command:

$ ip a | grep inet6

As you can see, I have IPv6 enabled.

If IPv6 is disabled, you should see no output if you run this command.

Disable IPv6 Using the Kernel Parameter

In this section, I will show you how to disable IPv6 permanently.

You can disable IPv6 when your computer boots by changing the kernel parameter.

First edit the GRUB configuration

$ sudo vim / etc/ default/ grub

You should see the following window.

First press i to go to INSERT mode.

Now add ipv6.disable=1 before crashkernel=auto in GRUB_CMDLINE_LINUX as marked in the screenshot below.

Now press and type in :wq! and then press to save the file.

Now update the GRUB configuration file with the following command:

$ sudo grub2-mkconfig -o / boot/ grub2/ grub.cfg

The GRUB configuration should be updated.

Now restart your computer with the following command:

$ sudo reboot

If you run the following command again, you should see no output.

$ ip a | grep inet6

Disable IPv6 Using /etc/sysctl.conf Configuration File

You can also disable IPv6 permanently using the /etc/sysctl.conf configuration file.

First open the /etc/sysctl.conf file with the following command:

Now add the following lines to it:

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

Now save the file and reboot your computer with the following command:

$ sudo reboot

IPv6 should be disabled.

Disable IPv6 of Specific Network Interface

You can also disable IPv6 of specific network interface.

First you have to find the network interface that you want to disable with the following command:

$ ip link show

You should see the network interface name as marked in the screenshot below.

Let’s say, you want to disable IPv6 for ens36 interface.

First open /etc/sysctl.conf file with the following command:

$ sudo vim / etc/ sysctl.conf

Now add the following line to the end of the file:

net.ipv6.conf.ens36.disable_ipv6 = 1

Disable IPv6 Temporarily Using sysctl Command

You can also disable IPv6 temporarily. That way IPv6 will be enabled once you reboot your system. This is good for testing whether everything on your CentOS 7.5 operating system works before disabling IPv6 permanently.

Run the following commands to disable IPv6 temporarily:

$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
$ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

IPv6 should be disabled.

That’s how you disable IPv6 on CentOS 7.5 permanently and temporarily. Thanks for reading this article.



Предыдущая статья: Следующая статья:

© 2015 .
О сайте | Контакты
| Карта сайта