23 нояб. 2009 г.

Знакомство со SCO UnixWare 7

Ради интереса я решил поставить SCO UnixWare 7. Никакой практической ценности в таком мероприятии, конечно, нет; просто интересно стало глянуть на одну из самых древних UNIX. Да еще и принадлежащую теперь компании с такой сомнительной известностью (ее иски против Linux за вроде как принадлежащий им код все должны помнить).

Проблем с получением образов установочных дисков не возникает: все лежит на ftp-сервере разработчиков ftp.sco.com. Если нет желания разбираться со структурой его каталогов, все ссылки можно найти на http://www.sco.com/download/. Функциональность пробных версий вроде почти не ограничена, только время использования.

Установка системы

Ставить это чудо враждебной техники на физическую машину у меня не было никакого желания, поэтому ставил в виртуальную. Для начала решил попробовать VirtualBox, но встретился с неприятностями. Установщик падал с не особо информативными ошибками. Примерно вот так:

Судя по найденному в google, там есть некая проблема с работой UnixWare c IDE контроллерами. Разбираться, как ее исправить, опять же никакого желания, поэтому просто пробую QEMU. Может быть, это проблема VirtualBox, но нельзя исключить, что на близком к эмулируемому им оборудовании она поведет себя примерно так же.

Как ни странно, в QEMU никаких проблем не возникает, и установщик успешно запускается. Предварительно показав заставку.

Если во время загрузки нажать любую клавишу, выкинут в командную оболочку. Оболочкой там стоит ksh, да и ничего хорошего оттуда сделать нельзя. Но если подождать загрузки, то все же пускают в установщик.

Мне не предлагают ни русский язык, ни поддержку русской клавиутары, ни даже Unicode. Из системных кодировок только серия Latin. Кроме английской клавиатуры почему-то поддерживается только японская.

Зато предлагают ввести номер лицензии. Если его не вводить, обещают пробную лицензию на 60 дней, чего для поиграться вполне хватит.

Еще в процессе установки предлагали вручную настроить драйверы, но я предпочел автоматическую настройку. К счастью, она сработала. Это же касается автоматического разбиения диска — интерфейс для ее настройки не отличается удобством. Зато из него ясно, что используется некая собственная файловая система vxfs. Теперь вводим имя пользователя и пароль, затем пароль для root'а.

Несколько необычно, что прямо из текстового установщика мне предлагают настроить мышь. Хотя настроек там и не много. Прямо оттуда же можно протестировать ее работоспособность:

Выбираем устанавливаемые компоненты. Можно заметить, что для вышедшей в 2008 году система необычно компактна.

После этого остается только смотреть на установку системы. Прогресс установки каждого компонента показывают отдельно, в результате у меня нет ни малейшего представления о том, когда все это кончится. Кстати, устанавливается она необычно долго для своего размера.

Но все когда-нибудь заканчивается, о чем нас и оповещает установщик:

Перезагружаю виртуальную машину, отключаю ее CD. Наблюдаю всю ту же заставку, несколько сообщений в консоли. Некоторое время система занимается собственной настройкой.

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

И на всякий случай предлагает все таки заплатить ей денег:

Вот теперь установка действительно закончена, можно перезагружать машину. И тут снова неприятности. Она пытается запустить X-сервер, и даже запускает его, но все, что я вижу, это черный экран. Виртуальных консолей у нее нет, поэтому зайти в систему с текстовой консоли и разобраться, что пошло не так, возможности тоже нет. Я не ценитель подобного супрематизма, поэтому пришлось поискать обходной путь. Помогло указание QEMU опции «-vga std».

Что внутри?

После этого мы нормально загружаемся в графическую оболочку. Наблюдаем экран входа в систему:

Меня успешно пускают под тем пользователем, который был создан при установке. После чего нас встречает CDE (Common Desktop Environment, некогда стандарт в UNIX). Какая прелесть! Без тени иронии, она мне правда нравится (хотя мало кто разделяет мое мнение).

Запустим терминал, и посмотрим, для убедительности, вывод uname. Оболочкой по умолчанию там все тот же ksh. Который даже банальное автодополнение не умеет (по крайней мере, из коробки). Кстати, обратите внимание, что она считает себя ни чем иным, как SystemV release 5.

В корневом каталоге редкостная помойка:

Зато имеется графический инструмент администрирования системы. С не особо большими возможностями, надо признать.

Немного походив по каталогам (как же это неудобно без автодополнения!) обнаруживаем, что в качестве ssh-сервера там OpenSSH, а веб-сервера — Apache. Еще в качестве браузера там Mozilla 1.2.1. Настройки лежат в не особо привычных местах. Опции команд тоже ни на что не похожи.

Заключение

Конечно, из такого поверхностного знакомства трудно делать какие-то выводы. Но из того, что я увидел, система не показалась мне ни удобной, ни современной. Да и с поддержкой оборудования явно проблемы. Учитывая это, и тот факт, что компания-владелец заявляла о своем банкротстве и сейчас находится в не вполне понятном состоянии, использовать это в реальности я бы не стал. Но в качестве прикосновения к классике было забавно.


Полный текст сообщения

13 нояб. 2009 г.

Vyatta 6.0 alpha доступна для загрузки

Сегодня стали доступны для загрузки образы alpha-версии Vyatta Community 6.0. Она представляет собой результат слияния веток community и subscription, и включает в себя все наработатки из Jenner, ранее доступные в виде готовых сборок только по платной подписке. Загрузить их, как и обычно, можно с официального сайта проекта.

Представлены образы LiveCD и виртуальных машин Xen и Citrix XenServer. В числе новых функций:

  • Поддержка wi-fi
  • Учет трафика NetFlow
  • Source-based routing
  • Улучшения в QoS
  • Межсетевой экран IPv6
  • Правила фильтрации трафика, основанные на зонах безопасности и времени
  • Поддержка OSPFv3

Отчет о тестировании будет позднее. Первоисточник новости здесь.


Полный текст сообщения

12 нояб. 2009 г.

Технические вопросы работы с «русскоязычными» доменами

Утро вчера началось с того, что Иван Тиуков отправил мне ссылку с новостью о начале предварительной регистрации доменов .рф (для владельцев торговых марок за неоправданную цену) и выразил свое негативное к этому отношение. Идею доменов на национальных языках я тоже считаю глупой, бессмысленной и порочной, но это субъективное мнение. А вот что работать с такими доменами с большой вероятностью придется — уже суровая правда жизни.

Поэтому я решил провести небольшое тестирование программного обеспечения на совместимость с русскоязычными доменными именами. Оно не претендует на полноту, но кажется мне достаточно показательным. В этой статье я и приведу его результаты.

Суть технологии

Конечно, внутреннее представление русскоязычных имен доменов существенно отличается от того, что видит пользователь. DNS все так же использует английский алфавит, дефис и цифры, а для хранения имен с отличными от этих символами был разработан метод представления unicode через них. Метод называется punycode, если кому-то интересны подробности, можно обратиться к первоисточнику — RFC 3492. Если вникать в подробности нет желания, то можно посмотреть на пример. Имя «сайт.пример.тест», которое мы будем использовать для тестирования, после перекодировки в punycode превращается в «xn--80aswg.xn--e1afmkfd.xn--e1aybc». Не слишком эстетично выглядит, и еще хуже воспринимается.

Тестовый сервер

Для тестирования мы используем существующий сервер моей локальной сети. На нем как раз уже установлены dns-сервер bind, веб-сервер Apache, ftp-сервер vsftpd и прокси-сервер squid. Для начала настроим наш тестовый домен. Ради интереса мы сделаем это через родной для SuSE инструмент yast2. Набираем в консоли yast2 dns-server и вводим имя нашего домена прямо как есть, русскими буквами. Примерно вот так:

Смотрим в файлы конфигурации, которые он сгенерировал. Как ни странно, он все понял и сам перекодировал в punycode.

Описание зоны:
zone "xn--e1afmkfd.xn--e1aybc" in {
 file "master/xn--e1afmkfd.xn--e1aybc";
 type master;
};

A-запись:
xn--80aswg      IN A            10.91.19.5

Что ж, уже неплохо. Теперь создадим virtual host в apache. Здесь, увы, придется писать уже перекодированное имя руками. Примерно так:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName xn--80aswg.xn--e1afmkfd.xn--e1aybc
    DocumentRoot /srv/www/htdocs/site.local
    HostnameLookups Off
    UseCanonicalName Off
    ServerSignature Off
    <Directory "/srv/www/htdocs/site.local">
 Order allow,deny
 Allow from all
    </Directory>
</VirtualHost>

Теперь положим ему в каталог в качестве index.html простейшую статическую страницу, и перейдем к тестированию браузеров. Squid и vsftpd никаких изменений конфигурации не требуют.

Тестирование браузеров

Посмотрим на все сколько-нибудь популярные браузеры. Специально для такой цели нашел компьютер с Windows XP. Сценарий везде будет одинаковый: сначала проверяем, что будет при вводе русскоязычного имени в адресную строку; а потом поймет ли он русскоязычный адрес прокси-сервера.

Internet Explorer 7

Адрес понимает, и даже корректно отображает.

Настраиваем ему прокси-сервер и смотрим результат. Чтобы убедится, что мы пошли именно через прокси, введем в адресной строке заведомо несуществующий адрес — если все в порядке, мы увидим сгенерированную прокси-сервером страницу с сообщением об ошибке.

Можно считать, что IE успешно выдержал испытание. В том числе и в режиме «Проводника»:

Firefox

Далее будут приводены только комментарии о результатах, потому как делать мы будем в точности одно и то же. Это Firefox 3.5.5 под Windows.

Теперь те же тесты с Firefox 3.0.9 на Linux.

Вывод: поддерживает, но в адресной строке отображает уже перекодированную строку. Неприятный недостаток, но на работоспособность не влияет.

Opera

Opera 10.1 под Windows Opera 9.64 под Linux Итог: Opera полностью прошла тест.

Safari под Windows

Mac OS X у меня под рукой, к сожалению, нет, поэтому тестировал только на Windows. Весьма вероятно, что результат там будет таким же.

Итог: поддерживает, но с той же проблемой, что в Firefox. Тоже показывает перекодированную строку в качестве адреса.

Google Chrome

Как видно, сначала он стал искать введенную в качестве адреса строку в Google, и скромно предложил перейти на перекодированный адрес. Какую реакцию это вызовет у тех самых неподготовленных пользователей, на которых ориентированы домены на национальных языках — судите сами. Тем не менее, после согласия перейти никаких проблем не возникло, как и с прокси-сервером.

Konqueror из KDE3

Им мало кто пользуется, но для комплекта пусть будет. Его версию для KDE4 не проверял, никакого желания его ставить у меня нет. Как видим, он вообще не понял, что от него хотят.

Вывод

Все распространенные браузеры такие адреса по крайней мере понимают, хотя и не без недостатков.

Еще некоторые программы для работы с сетью

Были проверены клиент обмена мгновенными сообщениями Pidgin, ftp-клиент FileZilla и клиент терминального доступа PuTTY. Никто из них адрес не воспринял вообще. Можно посмотреть на снимках экрана.

Диагностические утилиты

Пользователей это не особо касается, однако специалисты пользуются утилитами диагностики сети не один раз в день. Такими как ping, traceroute, host, dig и так далее. Их реализации ни под Windows, ни под Linux русскоязычные имена не понимают, и в обозримом будущем не будут. То есть, им каждый раз потребуется уже перекодированный в punycode адрес.

[baturin@zax ~]$ping сайт.пример.ру
ping: unknown host сайт.пример.ру
[baturin@zax ~]$traceroute сайт.пример.ру
сайт.пример.ру: Имя или служба не известны
[baturin@zax ~]$host сайт.пример.ру 
Host сайт.пример.ру not found: 3(NXDOMAIN)
[baturin@zax ~]$ping xn--80aswg.xn--e1afmkfd.xn--e1aybc
PING xn--80aswg.xn--e1afmkfd.xn--e1aybc (10.91.19.5) 56(84) bytes of data.
64 bytes from suse.tomsk.ru (10.91.19.5): icmp_seq=1 ttl=64 time=0.201 ms
^C
--- xn--80aswg.xn--e1afmkfd.xn--e1aybc ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.201/0.201/0.201/0.000 ms
[baturin@zax ~]$host xn--80aswg.xn--e1afmkfd.xn--e1aybc
xn--80aswg.xn--e1afmkfd.xn--e1aybc has address 10.91.19.5

Вывод

В настоящий момент использование «интернационализованных» доменных имен в целом возможно, но зачастую сопряжено с хотя и разрешимыми, но весьма неприятными проблемами. Причем проблемы эти коснутся как разработчиков и администраторов сервера, так и конечных пользователей. Работа с ними существенно менее комфортна, чем с традиционными, в виду отсутствия у многих программ поддержки перекодировки в punycode. Учитывайте это, если соберетесь регистрировать домен в зоне .рф или аналогичных.

Отдельно нужно сказать о доменах .ру, .орг, .нет и прочих. В отличии от .рф, который будет поддерживатся корневыми серверами, эти домены существуют только на серверах регистратора. Поэтому для их работы пользователям придеться явно указать, какие dns-сервера использовать, либо установить специальное программное обеспечение, иначе ничего работать не будет. Учитывая, что никто из пользователей в общем случае не будет этого делать, регистрировать их вовсе бессмысленно, разве что чтобы киберсквоттерам не достались.


Полный текст сообщения

10 нояб. 2009 г.

Vyatta и IPv6

Адреса IPv4 уже в обозримом будущем закончатся, поэтому мне весьма закономерно захотелось посмотреть на новую версию протокола, IPv6. К сожалению, сейчас почти никто из провайдеров не предоставляет его напрямую, однако способ его получить все таки есть. Ряд провайдеров предоставлют доступ поверх существующего IPv4-соединения через туннель.

В качестве такого провайдера мной был выбран Hurricane Electric (he.net). Для получения доступа достаточно зарегистрироваться на их сайте tunnelbroket.net. В комплект кроме туннеля входят также маршрутизируемая подсеть (/64 или /48) и возможность указать сервера имен для обратных зон.

При создании туннеля можно посмотреть примеры конфигураций для многих систем (Linux, Windows, Cisco IOS, JunOS и еще нескольких), но вот для Vyatta там ничего не было.

Настраиваем Vyatta для работы с Hurricane Electric

Тем не менее, ничего сложного настройка собой не представляет. Для инкапсуляции IPv6 в IPv4 у них применяется протокол SIT (Simple Internet Transition), который Vyatta поддерживает. Набор команд будет примерно таким:

configure                            # Входим в режим конфигурации
edit interfaces tunnel tun0          # Создаем новый интерфейс туннеля
set encapsulation sit                # Указываем протокол инкапсуляции SIT
set local-ip <IPv4-адрес>            # Адрес интерфейса, который смотрит в интернет
set remote-ip <IPv4-адрес>           # Адрес сервера доступа
set address <IPv6-адрес>/64          # Адрес интерфейса туннеля
set description "IPv6 tunnel"        # Описание, не является обязательным
exit
# Теперь укажем маршрут по умолчанию. ::/0 это аналог 0.0.0.0/0 в IPv4
set protocols static interface-route6 ::/0 next-hop-interface tun0
commit                               # Применяем изменения

Адрес сервера доступа и адрес нашей подсети скажут при регистрации. Возможно, непривычная запись «::» требует пояснений. Таким способом в IPv6 можно обозначить две или более группы нулей. Например, 2001:0470:aaaa:0bbb:0000:0000:0000:0001 может быть сокращен до 2001:470:aaaa:bbb::1. Как видно, незначащие нули тоже можно не писать. Посмотрим на получившуюся конфигурацию:

dmbaturin@rekki# show interfaces tunnel tun0 
 address 2001:470:xxxx:xxx::2/64
 description "Hurricane Electric IPv6 tunnel"
 encapsulation sit
 local-ip x.x.x.x
 remote-ip y.y.y.y
dmbaturin@rekki# show protocols static interface-route6 
 ::/0 {
     next-hop-interface tun0 {
     }
 }

Теперь осталось проверить, работает ли наше соединение. Для диагностики можно использовать аналоги привычных ping и traceroute для IPv6. Они называются ping6 и traceroute6 соответственно. Для проверки доступности с другой стороны можно воспользоваться looking glass провайдера, или любым другим аналогичным общедоступным сервером.

dmbaturin@rekki# ping6 he.net
PING he.net(he.net) 56 data bytes
64 bytes from he.net: icmp_seq=1 ttl=56 time=281 ms
64 bytes from he.net: icmp_seq=2 ttl=56 time=283 ms

dmbaturin@rekki# traceroute6 he.net
traceroute to he.net (2001:470:0:76::2), 30 hops max, 40 byte packets
 1  xxxxxx-1.tunnel.tserv6.fra1.ipv6.he.net (2001:470:xxxx:xxx::1)  144.294 ms  147.316 ms  151.028 ms
 2  gige-g2-4.core1.fra1.he.net (2001:470:0:69::1)  151.060 ms  151.086 ms  151.107 ms
 3  10gigabitethernet1-4.core1.ams1.he.net (2001:470:0:47::1)  159.030 ms  159.062 ms  159.107 ms
 4  10gigabitethernet1-4.core1.lon1.he.net (2001:470:0:3f::1)  167.319 ms  167.350 ms  167.357 ms
 5  2001:470:0:128::1 (2001:470:0:128::1)  238.403 ms 10gigabitethernet2-3.core1.nyc4.he.net (2001:470:0:3e::1)  238.100 ms  238.132 ms

Как видно, соединение проходит. Не желаете тоже прикоснуться к будущему Интернета?

Послесловие

После моего письма Hurricane Electric включили этот пример в свой генератор конфигураций и в тему на форуме. Как побочный эффект, может быть теперь больше людей узнают о Vyatta.


Полный текст сообщения