null

Конфигурируем статический IP в openSUSE

Как и в любом десктопном Linux'е по-умолчанию в openSUSE включен NetworkManager, который для системы со статическим IP-адресом является скорее обузой, чем пользой. К счастью, openSUSE не забыла свои корни (я о SuSE Linux Enterpise) и умеет также конфигурироваться через ifup.

Конфигурируем через YaST

Даже те, кто ни разу не использовал openSUSE знают, что почти все здесь можно сделать через панель управления YaST. Итак, выберем элемент Network Settings в разделе Network Devices:

В первую очередь надо переключиться в режиме ifup на вкладке "Global options":

Теперь нужно перейти на вкладку Overview, выбрать интерфейс и нажать на кнопку Edit:


Выбираем Static assigned IP address, и заполняем соответствующие поля. Subnet mask можно также записать через 4 октета:


Также нужно настроить статические маршруты на вкладке Routing и DNS-сервера. После нажатия на кнопку OK, YaST сам обновит необходимые конфиги и перезапустит сервисы.

Используем текстовые конфигурационные файлы

Все то же самое можно проделать и через текстовые конфигурационные файлы. Они располагаются в директории /etc/sysconfig/network

Большинство настроек хранится в файле config, в частности там нужно отключить NetworkManager:
NETWORKMANAGER="no"

Также здесь располагаются настройки DNS, NIS и NTP, в частности:
NETCONFIG_DNS_STATIC_SEARCHLIST="tune-it.ru"
NETCONFIG_DNS_STATIC_SERVERS="192.168.48.1"


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

Статический маршрут задаются в файле routes:
default 192.168.48.1 - eth0

Собственно настройки интерфейсов хранятся в файлах ifcfg-<имя интерфейса>, а файл ifcfg.template содержит шаблон такого файла со всеми возможными параметрами и комментариями.

В моем случае YaST сгенерировал следующий конфиг:
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='192.168.48.44/24'
MTU=''
NAME='88E8040 PCI-E Fast Ethernet Controller'
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'


После этого перезапускаем сетевую службу (в openSUSE начиная с версии 12.1 используется systemd, в более ранних придется использовать команды service и chkconfig):
# systemctl restart network.service

Кроме того можно управлять отдельными интерфейсами через команды /sbin/ifup, /sbin/ifdown, /sbin/ifstatus

Собираем грабли

Допустим, что вы правильно сконфигурировали файлы или использовали YaST. После перезапуска сервиса, вы неожиданно обнаружите интерфейс в состоянии down:
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:1d:09:46:28:08 brd ff:ff:ff:ff:ff:ff


Если запустить команду ping, то можно будет видеть, что сеть появляется на несколько секунд, а потом исчезает.

Можно предположить, что сервис network зачем-то говорит ifdown, но как оказалось всему виной третья сила - демон avahi. В логах вы обнаружите следующую запись:
Nov 14 12:27:52 localhost avahi-daemon[877]: Withdrawing address record for 192.168.48.44 on eth0.

Выключаем avahi, и вуаля - сеть доступна!
# systemctl disable avahi-daemon.service

К списку статей

 

Интересуюсь по большей части системным анализом программного обеспечения: поиском багов и анализом неисправностей, а также системным программированием (и не оставляю надежд запилить свою операционку, хотя нехватка времени сказывается :) ). Программированием увлекаюсь с 12 лет, но так уж получилось, что стал я инженером.

Основная сфера моей деятельности связана с поддержкой Solaris и оборудования Sun/Oracle, хотя в последнее время к ним прибавились технологии виртуализации (линейка Citrix Xen) и всякое разное от IBM - от xSeries до Power. Учусь на кафедре Вычислительной Техники НИУ ИТМО.

See you...out there!

http://www.facebook.com/profile.php?id=100001947776045
https://twitter.com/AnnoyingBugs