Как и в любом десктопном 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