Что выбрать для настройки нескольких сетевых карт на сервере

Поскольку через rc.conf теперь не настроишь несколько сетевых, то вопрос: что надежнее всего использовать? Есть эдакий сервачок, на котором работает много виртуальных машин, на которых мы все новое тестируем. На сервере 2 сетевых, одна - для него самого (т.к. хост-система является файловой шарой), вторая - расшарена для виртуалок (kvm). Вот хочу наконец обновить хост систему, вопрос: на базе чего настраивать сетки (netcfg, wicd, может еще что-то? NetworkManager не хочу, весь связанный с ним опыт - отрицательный), чтобы потенциально проблем не было?

P.S. Судя по всему, wicd не умеет сразу подключатся, долго думает, прежде чем зацепится, в отличие от netcfg, поэтому пока в приоритете он. Но если почитать интернет, то жалуются понемногу на любую утилиту :(
При чем здесь rc.conf?
Все можно настроить, в вашем случае, используя netcfg+iproute2.
Тем более в случае с сервером.
Netcfg поднимает столько профилей (карт), сколько вам нужно.
Наоборот, использование netcfg, скажем так, упростило и упорядочило настройку.
NetworkManager это вообще не для сервера, а только для ленивых юзеров на десктопе :)
Netcfg можно попробовать, но тут посоветовать ничего не могу, не пользовался.
Лично я ещё со Слаки предпочитаю не изучать использование чужих скриптов, а писать свои – так надёжнее и понятнее для самого себя.
В данном случае можно написать скрипт для /etc/rc.d/ , который по start выполняет команды поднятия интерфейсов, прописывания их параметров и создания всех надобных роутов, а по stop соответственно всё это очищает и отключает. У меня на домашней машине это выглядит так:
#!/bin/sh
. /etc/rc.conf
. /etc/rc.d/functions
ifc="eth0"
gw="via 10.3.10.1"
d_start() {
 stat_busy "Starting localnet"
 ip link set $ifc up
 ip addr add 10.3.10.2/24 brd 10.3.10.255 dev $ifc
 ip addr add 192.168.5.2/16 brd 192.168.255.255 dev $ifc
 ip route add айпи.впн.сервера $gw
 ip route add default $gw tab default
 add_daemon localnet
 stat_done
}
d_stop() {
 stat_busy "Stopping localnet"
 ip addr flush dev $ifc
 ip link set $ifc down
 rm_daemon localnet
 stat_done
}
case "$1" in
start) d_start
 ;;
stop) d_stop
 ;;
restart) d_stop ; d_start
 ;;
*)
 echo "usage $0 start|stop|restart" >&2
 exit 1
esac
exit 0
Вы можете заменить адреса и команды своими, можете сделать обе сетевых в одном скрипте, или сделать по одному на куждую.
При чем здесь rc.conf?
ну сейчас стоит 37ое ядро, и оба интерфейса просто в rc.conf прописаны (т.к. на обоих статические IP), далее уже на вторую повешен бридж - и в виртуалки.

Все можно настроить, в вашем случае, используя netcfg+iproute2.
ну я к этому и склоняюсь, просто решил перестраховаться - вдруг бы написали, что netcfg имеет какой-нить баг, из-за которого ненадежно работает. или отваливается, или там автоматом что-нибудь не поднимается, хотя должно.

Буду сегодня вечером пробовать netcfg, спасибо за отзывы.

Лично я ещё со Слаки предпочитаю не изучать использование чужих скриптов, а писать свои – так надёжнее и понятнее для самого себя.
ну это конечно вариант интересный, но я не любитель писать собственные велосипеды, т.к. не уверен, что мой велосипед окажется “велосипедистее” других :)
Ну вот. Походу netcfg не умеет поднимать интерфейс (настроенный статически!), если на том конце провода ничего нет. Вот это, братцы, маразм полнейший оО Я был в шоке, когда это обнаружил. Попахивает маразмом в духе Intel: “чтобы установить Windows 2008 на данную материнку, соедините обе сетевые карты патчкордом”. Походу и правда собственный скрипт надо писать.
Интерфейс в netcfg подымается (в статике) простой командой ip link dev up.
Вот образец из исходников (netcfg - скрипты bash)
bring_interface()
{
    local INTERFACE="$2"
    case "$1" in
        up)
            if ! ( eval $IFACE_UP ); then
                return 1
            fi
            ip link set dev "$INTERFACE" up &>/dev/null
            sleep "${UP_SLEEP:-2}"
        ;;
        flush|down)
            if ! ( eval $IFACE_DOWN ); then
                return 1
            fi
            ip addr flush dev "$INTERFACE" &>/dev/null
        ;;&
        down)
            ip link set dev "$INTERFACE" down &>/dev/null
        ;;
    esac
}

Обратите внимание на команду sleep. Как указано в комментариях, она используется для того, чтобы некоторые карты успевали отработать. (скрипт ethernet).
Отсюда можно сделать вывод, что указанная вами проблема отсутствия старта неподключенной карты связаны не с netcfg, но с iproute2.
Проблема может быть в карте, ну и, конечно в iproute.
Хотя зачем это нужно, не знаю.
Если “пустая” карта поднимается командой ip link set dev XXX up, то можно просто увеличить паузу в соответствующем скрипте.
Никогда не замечал такой проблемы в iproute2, тем более что сам он ничего не поднимает, просто даёт команду ядру.
Сейчас специально проверил – всё поднимается и прописывается даже при отключённом кабеле.
Хотя пока он отключён, ip link list и показывает интерфейс как DOWN, все адреса и роуты у него уже есть, и как только кабель будет подключён, состояние сменится на UP, и всё заработает без дополнительных телодвижений.
И да, никаких пауз я в свой скрипт не добавлял, да вы и сами его видели.
Привет, возникла необходимость подключить 2 сетевую карту ,и стал использоваться netcfg

при настройке профиля в /etc/network.d/examples/eth1

CONNECTION='ethernet'
DESCRIPTION='A basic static ethernet connection using iproute'
INTERFACE='eth1'
IP='static'
ADDR='192.168.100.11/24'
#ROUTES=('192.168.0.0/24 via 192.168.100.1')
#GATEWAY='192.168.100.1'
DNS=('192.168.100.1')
Далее
netcfg /etc/network.d/examples/eth1
> Profile “/etc/network.d/examples/eth1” does not exist
netcfg eth1
> Profile “eth1” does not exist

сам eth1 поднят
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
        inet6 fe80::226:5aff:fe76:5942  prefixlen 64  scopeid 0x20<link>
        ether 00:26:5a:76:59:42  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 238 (238.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17  base 0xe800  

пакет ifplugd также установлен
Я никогда не пользовался netcfg, но вики говорит, что профиль должен находиться в /etc/network.d/ а не в examples, где только примеры, которые разумеется, и не должны выполняться.
Спасибо друг,но не могу понять,как она понимает какая у меня маска,ладно в данном случае она у меня стандартная,а если мне надо использовать другую подсеть с короткой маской,например 16
 
Зарегистрироваться или войдите чтобы оставить сообщение.