Показаны сообщения с ярлыком debian. Показать все сообщения
Показаны сообщения с ярлыком debian. Показать все сообщения

пятница, 4 мая 2012 г.

Обуздание неистового DHCP в Debian 6


Случаются ситуации, когда интрефейс, конфигурируемый по DHCP, не единственный в системе - и настройки маршрутизации и DNS, получаемые автоматически, не должны перезаписывать статических настроек с других интерфейсов. Ниже приводятся два способа, как можно побороться с этой проблемой в Debian 6:

Первый способ. Требует установки дополнительных пакетов.
Для того, чтобы маршрут по умолчанию не перезаписывал значение, сконфигурированное на другом интерфейсе, ставим пакет ifmetric - и в файле /etc/network/interfaces указываем для наших интерфейсов числовые значения metric. Чем значение ниже, тем выше приоритет маршрута через данный интерфейс.
Для того, чтобы DNS и доменное имя, полученные по DHCP, не перезаписывали насмерть файл /etc/resolv.conf, ставим пакет resolvconf - и в файле /etc/network/interfaces в разделе статического интерфейса добавляем строки:
  dns-nameservers A.A.A.A B.B.B.B
 dns-search mydom1.ru mydom2.ru

Второй способ. Правим файл /etc/dhcp/dhclient.conf
В нем есть длинная строчка, начинающаяся со слова request.
Удалив из нее слова: routers, domain-name, domain-name-servers, domain-search, host-name и rfc3442-classless-static-routes, мы как раз запретим запрос этих параметров по DHCP. Способ безусловно проще, но менее гибкий - в случае проблем со статическим интерфейсом мы остаемся вообще без DNS и без маршрута по умолчанию.

А если не лень чуть-чуть попрограммировать, можно изменять поведение DHCP-интерфейса с помощью скриптов, указываемых в соответствующем разделе /etc/network/interfaces в параметрах up и down. Например, нижеприводимый скрипт применяет маршрут, отдаваемый DHCP сервером как маршрут по умолчанию, только к определенному списку сетей:

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
mynet="10.0.0.0/8 172.16.1.0/24"
case "$MODE" in
start)
gw=`ip route show dev $IFACE | 
  awk '{if ($1 == "default") {print $3; exit(0)}}'`
if [ -n "$gw" ]
then
ip route delete default dev $IFACE
for n in $mynet
do
ip route add $n via $gw dev $IFACE
done
fi
;;
stop)
for n in $mynet
do
ip route delete $n dev $IFACE
done
;;
esac

вторник, 26 апреля 2011 г.

Нелегкая борьба с multipath


Имеется - блейд-сервер IBM HS22, единственным диском для которого является том на хранилище EMC CLARIION. Задача: настроить multipath-доступ к этому тому (по умолчанию, имея два оптических свича и два порта на каждом, мы видим этот том в виде 4 дисков /dev/sd[a-d]).
В CentOS 5.5 вроде имеется паспортное средство установки системы с multipath - надо при инсталяции ввести командную строку ядра linux mpath - но этот путь, мягко выражаясь, не совсем работает - т.е. система прекрасно устанавливается  на устройство /dev/mapper/mpath0, но грузиться с него отказывается - не может найти корневой раздел. 
В debian 6.0 дела чуть лучше - действуем так:
  1.  ставим систему, как обычно (я ставил на /dev/sda, но, вероятно, можно с тем же успехом ставить на любой другой диск).
  2. добавляем пакеты для multipath и пересобираем initrd:
    # apt-get install multipath-tools-boot multipath-tools firmware-qlogic
    # update-initramfs -u
  3. перегружаемся - и ищем имя multipath-устройств:
    $ ls /dev/mapper
    3600601600a02a004b0085add64e011
    3600601600a02a004b0085add64e011-part1
    3600601600a02a004b0085add64e011-part2
    control
    Имена, заканчивающиеся на part[12] и есть наши разделы. Прописываем их в /etc/fstab и в  /boot/grub/grub.cfg (там, где root=UUID=...) - вероятно, для второго действия есть более элегантный способ, но я плохо разбирась в grub2.

    После этого перегружаемся - и все должно работать. Состояние дискового массива можно посмотреть командой (и попроверять работоспособность, по очереди отключая питание на оптических свичах):

    # multipath -ll
     
 В итоге - мораль - если нужен беспроблемный мультипас из коробки, лучше ставить Vmware ESXI - тоже своего рода линукс...

    вторник, 23 ноября 2010 г.

    Установка debian-testing c USB stick

    Оговорюсь с порога: если вы желаете поставить с USB stick debian-stable, то описанная последовательность действий вам вовсе не интересна, ибо готовые LiveUSB образы лежат вот здесь: http://cdimage.debian.org/debian-cd/current-live/i386/usb-hdd/
    А вот с testing придется слегка повозиться. Предположим, что имеется установленная система Linux (вероятно, пойдет практически любая работоспособная) и 1 Гб флешка /dev/sdb - дальнейшее является творчески переработанными инструкциями из хорошей статьи  http://d-i.pascal.at/ (язык - англ.)
    Из пакетов, которые не всегда входят в дистрибутив, понадобится только syslinux.
    Поехали:
    # mkfs.msdos -I /dev/sdb
    # syslinux /dev/sdb
    # mount /dev/sdb /mnt
    Берем vmlinuz и initrd.gz напр. отсюда: http://ftp.fi.debian.org/debian/dists/testing/main/installer-i386/current/images/hd-media/ (зеркало debian не обязательно должно быть финским) и копируем их:
    # cp vmlinuz initrd.gz /mnt
    Берем понравившийся нам iso-образ отсюда: http://cdimage.debian.org/cdimage/weekly-builds/i386/iso-cd/ (мой выбор debian-testing-i386-xfce+lxde-CD-1.iso) и его тоже - туда же (не забудем, что syslinux не понимает длинных имен):
    # cp debian-testing-i386-xfce+lxde-CD-1.iso /mnt/netinst.iso
    И создаем следующий файл конфигурации загрузчика /mnt/syslinux.cfg:

    default vmlinuz
    append initrd=initrd.gz ramdisk_size=10240 \
     root=/dev/rd/0 devfs=mount,dall \
     rw DEBCONF_PRIORITY=medium
    (последние три строки - в реальности - одна, слешей не надо,  перенесено просто для убористости).
    Отмонтируем флешку - грузимся с нее - и наблюдаем привычный установщик debian.

    P.S. система почему-то установилась в какой-то достаточно скромной конфигурации (без менеджера рабочего стола), но решение этой проблемы едва ли затруднит средней руки дебианщика. На всякий случай для памяти:
    # mount /dev/sdb /mnt
    # mount -o loop /mnt/netinst.iso /media/cdrom
    # apt-get update
    # apt-get install lxde