Скрипт для проброса портов на гостевой домен.
Иногда необходимо запустить несколько VDS, а IP адрес всего один. При этом необходимо чтобы эти VDS были доступны извне на определенных портах. К примеру для разделения сервисов: под DNS свой сервер, а под почту свой.
В этом случае можно использовать NAT для доступа из гостевых наружу, и DNAT в правилах PREROUTING цепочки nat для проброса необходимых портов.
Написан скрипт, решающий эти задачи, основанный на стандартном vif-nat, но с добавлением обработки необходимых параметров:
vif-nat-pfwd
Для использования этих возможностей необходимо добавить в описание интерфейса в файле конфигурации гостевого домена два параметра:
- ext_ip – указывает с какого внешнего адреса будут пробрасыватся порты
- ports – описывает, разделенные ‘-’, пары портов, разделенные ‘:’
Пример:
vif = [ 'ext_ip=1.2.3.4 ports=3422:22-25-80:8080-3306-53' ]
На адрес гостевого домена будут проброшены с внешнего адреса 1.2.3.4 порты 3422 на 22 порт для управления, 25 на 25 для почты, 80 на порт 8080 для сайта и 3306 и 53 на такие же порты гостевого домена.
Вместе с DHCP, это позволит не заботится о настройке сети внутри гостевых доменов. Внешне это будет выглядеть как один физический сервер, а внутри будет представлять собой несколько VDS, с четко ограниченными и выделенными для необходимого сервиса ресурсами.
Настройка сети для XEN с поддержкой NAT и DHCP.
При настройке серверов в продакшн, такая конфигурация встречается редко. Обычно каждому VPS/VDS выдается реальный IP и все поднимается с помощью (net-script network-bridge) и (vif-sсript vif-bridge) и жестко прописанных параметров для сети.
Но при ограниченном адресном ресурсе или как в моем случае, для изучения и тестирования схема с NAT и выдачей параметров сети по DHCP имеет право на жизнь. Тем более что с сетью в xen можно вытворять и не такие вещи
Читать дальше…
Установка Debian с USB-flash
Есть детально описанные способы инсталляции и в документации, и в wiki и еще много статей на блогах дебианщиков. Но мой случай мне ни разу не встретился.
Дело в том что у меня есть мультизагрузочная флешка созданная с помощью GRUB for DOS. С нее уже грузится и RIP Linux и DRWeb Live и Alkid WindowsXP и целая куча досовских дискет и еще несколько мелких вещей. Читать дальше…
Новейший способ установки Debian в DomU.
Раньше это было как с любым другим дистром. Создавался образ или выделялся раздел и примонтировав его к себе в файловую систему на него натравливался debootstrap.
Сейчас умный дядька Joey Hess, слабал конфигурационнай файл для гостевого домена таким образом что если в командной строке указать install=true, установка начнется автоматически. Будут подгружены необходимые ядро и initramfs, и с них начнется загрузка. Единственное, это что сам диск должен быть уже создан. Раздел это или образ не важно, главное что не понадобиться его потом монтировать и чтото изменять. Процесс становиться также прост как и обычная установка. Все гибко настраиваеться, но и дефолтные настройки абсолютно рабочие.
Читать дальше…
Ошибка сохранения состояния xend
Приблизительно вот такой лог я впервые увидал при переходе на lenny еще в марте:
[2009-03-27 13:24:22 4599] INFO (SrvDaemon:331) Xend Daemon started
[2009-03-27 13:24:22 4599] INFO (SrvDaemon:335) Xend changeset: unavailable.
[2009-03-27 13:24:22 4599] INFO (SrvDaemon:342) Xend version: Unknown.
[2009-03-27 13:24:22 4599] ERROR (SrvDaemon:353) Exception starting xend (no element found: line 1, column 0)
Traceback (most recent call last):
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/xend/server/SrvDaemon.py", line 345, in run
servers = SrvServer.create()
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/xend/server/SrvServer.py", line 251, in create
root.putChild('xend', SrvRoot())
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/xend/server/SrvRoot.py", line 40, in __init__
self.get(name)
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/web/SrvDir.py", line 82, in get
val = val.getobj()
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/web/SrvDir.py", line 52, in getobj
self.obj = klassobj()
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/xend/server/SrvNode.py", line 30, in __init__
self.xn = XendNode.instance()
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/xend/XendNode.py", line 709, in instance
inst = XendNode()
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/xend/XendNode.py", line 60, in __init__
saved_host = self.state_store.load_state('host')
File "/usr/lib/xen-3.2-1/bin/../lib/python/xen/xend/XendStateStore.py", line 104, in load_state
dom = minidom.parse(xml_path)
File "/usr/lib/python2.5/xml/dom/minidom.py", line 1915, in parse
return expatbuilder.parse(file)
File "/usr/lib/python2.5/xml/dom/expatbuilder.py", line 924, in parse
result = builder.parseFile(fp)
File "/usr/lib/python2.5/xml/dom/expatbuilder.py", line 211, in parseFile
parser.Parse("", True)
ExpatError: no element found: line 1, column 0
[2009-03-27 13:24:22 4597] INFO (SrvDaemon:219) Xend exited with status 1.
Прикладной софт.
Как вы знаете у Дебиан, есть ветки репозиториев stable, unstable и testing. Ветка testing в один прекрасный момент становиться unstable, а unstable становиться новой мастер весткой stable, и цикл начинаеться сначала. В принципе я не собирался садиться на тестируемую или нестабильную ветку, но будучи разработчиком и имея необходимость отслеживать последние новшества , это практически нереально и возможно только в первые несколько месяцев после выхода новой стабильной ветки. Для корпоративщиков и рабочих серверов, это недопустимо, и как правило они сидят на stable, немного устаревшем но стабильном софте. Большинство же десктопщиков используют unstable как основную. Так как я только перешел с винды, и на ней осталось еще очень много хвостов, то я расскажу об универсальных кросплатформенных программах, которые использовал под виндой, именно потому что они свободные, и в будущем позволят перейти на линукс не заботясь о совместимости. Читать дальше…
Миграция, запоздалое продолжение.
После моей первой заметки прошло более полугода
Я ее не окончил, потому сейчас немного вспомню, что тогда не дописал, а позже продолжу о опыте перехода на Lenny.
После того как я запустил полноценно xen, необходимо было ставить графическую оболочку.
Первая проблема которая возникла, это драйвера для встроенного видео Radeon X1250. Так как я с десктопом на Линуксе знаком слабо, потому пошел неправильным путем, а именно, скачав официальные проприетарные дрова с сайта ATI. В основном потому что лежащая на поставляемом диске версия была именно оттуда, но немного старая и она не устанавливалась. Новая также не устанавливалась, потому помучавшись я решил пока переключиться на вторую проблему. Читать дальше…
Миграция. Точка отправки.
Я админ, немного рулю нашей домовой сетью.
Я виндузятник. Опытный. Продвинутый можно сказать. Программист. Начинал с DOS. На XP так и не перешел. До последнего времени сидел на 2000. Хотя друзьям ставил и настраивал все что просили.
Я линуксоид. Консольный. Имею под управлением несколько различных серверов, роутеры FREESCO, хостинг-сервера под Debian и Fedora. Также управляю игровыми сервисами под CentOS. Начинал приблизительно во времена Slackware 2.x. Для разработок под никсы я использовал VMWare.
Главное, что хочу сказать, практического опыта работы в иксах не имею. Я бы и дальше сидел под Win2000, и рулил линуксами, но… Читать дальше…
