Вопросы по CentOS-7

1. Раньше для сетевой установки я использовал образ boot.iso. Куда он делся?

Начиная с 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 необходимых шага:

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

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

[root@example ~]# 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"
[root@none ~]#

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

[username@hostname]$ 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-сервера:

[username@hostname]$ 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.

ru/FAQ/CentOS7 (last edited 2017-02-27 18:49:58 by IlyaDorokhov)