Вопросы по CentOS-7
Contents
- Раньше для сетевой установки я использовал образ boot.iso. Куда он делся?
- Почему для того, чтобы моя сетевая Ethernet-карта заработала, мне необходимо залогиниться и самому её задействовать?
- А что, если я хочу вернуть старое именование?
- Но мне просто надо, чтобы все работало и чтобы я имел возможность ручного изменения конфигурационных файлов
- Как отключить IPv6?
- Где я могу скачать 32-битную версию?
- Куда делись ifconfig/netstat?
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 необходимых шага:
- добавить "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: {{{[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.