ПУСТЬ У ВСЕХ БУДЕТ ХОРОШО, А У МЕНЯ ЛУЧШЕ...

воскресенье, 22 февраля 2009 г.

Как победить OpenAFS и multihoming

Итак. представим себе сервер. такой замечательный офисный сервер.

у него 2 сетевухи
eth0 - локалка (через эту карту идет default gw на циску)
eth1 - внешний ип ( для доступа к серверу из внешки. используется полиси роутинг. т.е. ответы для tcp/icmp идут с этой же карты к клиенту. а не через default gw - использован ip ro/ru и rt_tables)

задача сервера - OpenAFS + Krb5 для клиентов внутри И снаружи (т.е. из инета)

модуль ядра свежий (из jaunty, без видимых проблем):
--------------------------------------------
cd /usr/src
wget http://mirrors.kernel.org/ubuntu/pool/universe/o/openafs/openafs-modules-source_1.4.8.dfsg1-2_i386.deb
mv modules modules.old
dpkg -i openafs-modules-source_1.4.8.dfsg1-2_i386.deb
m-a -t a-i openafs-modules-source
---------------------------------------------

известно что:
- openafs использует udp порты 7000-7009 для сетевых операций.
- openafs биндится на 0.0.0.0
- openafs использует dns для того чтобы найти ip по умолчанию - тот на котором указан default gateway
- openafs не отвечает в том же сокете, а инициирует с нуля "отправку пакета отправителю" (по его ипу) в другом сокете

особенность всего вышесказанного в следующем. в multihome окружении нормально будет работать только та сеть где находится openafs сервер

чтобы заставить openafs работать нормально и наружу и локально необходимо использовать функционал под названием rxbind

итак, первое: мы в днс (лучше в нашем нормальном глобальном) прописываем сам сервер (например так):

xxx.xxx.xxx.xxx afs.department.hostname.com
xxx.xxx.xxx.xxx kdc.department.hostname.com

где xxx.xxx.xxx.xxx это внешний ip нашего сервера.
дальше на сервере в конфигурации OpenAFS редактируем файлы:

файл /etc/openafs/BosConfig должен выглядеть примерно вот так (добавлен rxbind)

-------------------------------------------------
restarttime 11 0 4 0 0
checkbintime 3 0 5 0 0
bnode simple ptserver 1
parm /usr/lib/openafs/ptserver -rxbind
end
bnode fs fs 1
parm /usr/lib/openafs/fileserver -d 125
parm /usr/lib/openafs/volserver
parm /usr/lib/openafs/salvager
end
bnode simple vlserver 1
parm /usr/lib/openafs/vlserver -rxbind
end

-------------------------------------------------





создаем файл /var/lib/openafs/local/NetInfo
с строкой, содержащей наш внешний IP
-------------------------------------------------
xxx.xxx.xxx.xxx
-------------------------------------------------


редактируем файлы /etc/openafs/CellServDB и /etc/openafs/server/CellServDB
где прописываем следующее:
-------------------------------------------------
>department.hostname.com
xxx.xxx.xxx.xxx # afs.department.hostname.com
-------------------------------------------------

всё, вуаля :)


перезапускаем всё, и радуемся.

Комментариев нет:

Отправить комментарий

Ярлыки

Rambler's Top100