[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive]
Свободные мысли о свободном софте
[an error occurred while processing this directive]
Logo CitForum CITForum на CD Форумы Газета Море(!) аналитической информации!
[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

22.07.2019

Google
WWW CITForum.ru
[an error occurred while processing this directive]

Новости мира IT:

Архив новостей

[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive]
Пятнадцатая техническая конференция «Корпоративные базы данных-2010»
Москва, 22–23 апреля
С Новым годом!

Генеральный спонсор
Техническая конференция
Корпоративные базы данных – 2008
Москва, 24–25 апреля
При поддержке РФФИ

Спонсор
[an error occurred while processing this directive] [an error occurred while processing this directive]
На правах рекламы
2004 г

Система доменных имен

Материалы книги П.Б. Храмцова
iнфоцентр

Программа интерактивного тестирования серверов DNS - nslookup

В данном материале рассматриваются различные режимы работы программы nslookup - одного из основных средств тестирования работы сервера доменных имен.

Среди средств тестирования системы доменных имен nslookup подвергается наибольшей критике. Во всяком случае, авторы bind рекомендуют использовать dig вместо nslookup, как написано в руководстве по BIND 9 - "из-за загадочности пользовательского интерфейса и часто противоречивого поведения" последней. Тем не менее, nslookup - это одно из самых популярных средств тестирования DNS. Эта программа есть в большинстве версий Unix-систем.

Программа позволяет работать пользователю в двух режимах: интерактивном и режиме неинтерактивном режиме. В первом случае пользователь, попав в командную строку nslookup, имеет возможность исполнять команды nslookup, во втором случае отчеты получают, задавая аргументы командной строки интерпретатора (shell или любого другого командного интерпретатора) nslookup.

Сначала рассмотрим неинтерактивный режим работы. Как уже было сказано, он используется для получения информации из системы DNS непосредственно из командной строки интерпретатора. В аргументах командной строки nslookup можно указывать значения опций, имя или адрес хоста для которого производится поиск, и сервер доменных имен.

% nslookup www.ru
Server:  polyn.net.kiae.su
Address:  144.206.160.32


Non-authoritative answer:
Name:    www.ru
Address:  194.87.0.50


%

В данном случае мы просто используем сервер доменных имен из resolv.conf для поиска IP-адреса www.ru. Из отчета видим, что этот сервер не является авторитативным для искомого имени.

Для того, чтобы понять выполняет ли nslookup перебор доменных имен, который характерен для библиотеки resolver, зададим имя несуществующего хоста:

% nslookup gaga.ru
Server:  polyn.net.kiae.su
Address:  144.206.160.32


Name:    gaga.ru.net.kiae.su


%

За нашим именем появилась вставка net.kiae.su, которая взята из resolv.conf. Вот его (resolv.conf) содержание:

% more /etc/resolv.conf
nameserver 144.206.160.32
nameserver 144.206.192.10
search net.kiae.su polyn.kiae.su .
%

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

% nslookup -debug gaga.ru
;; res_mkquery(0, 32.160.206.144.in-addr.arpa, 1, 12)
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 22021, rcode = NOERROR
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 3,  additional = 3


    QUESTIONS:
        32.160.206.144.in-addr.arpa, type = PTR, class = IN
    ANSWERS:
    ->  32.160.206.144.in-addr.arpa
        name = polyn.net.kiae.su
        ttl = 3600 (1 hour)
    AUTHORITY RECORDS:
    ->  160.206.144.in-addr.arpa
        nameserver = polyn.net.kiae.su
        ttl = 3600 (1 hour)
    ->  160.206.144.in-addr.arpa
        nameserver = ns.spb.su
        ttl = 3600 (1 hour)
    ->  160.206.144.in-addr.arpa
        nameserver = ns.ussr.eu.net
        ttl = 3600 (1 hour)
    ADDITIONAL RECORDS:
    ->  polyn.net.kiae.su
        internet address = 144.206.160.32
        ttl = 49698 (13 hours 48 mins 18 secs)
    ->  ns.spb.su
        internet address = 193.124.83.69
        ttl = 49556 (13 hours 45 mins 56 secs)
    ->  ns.ussr.eu.net
        internet address = 193.125.152.3
        ttl = 3083 (51 mins 23 secs)


------------
Server:  polyn.net.kiae.su
Address:  144.206.160.32


;; res_mkquery(0, gaga.ru, 1, 1)
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 22022, rcode = NXDOMAIN
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0


    QUESTIONS:
        gaga.ru, type = A, class = IN
    AUTHORITY RECORDS:
    ->  ru
        ttl = 10530 (2 hours 55 mins 30 secs)
        origin = ns.ripn.net
        mail addr = hostmaster.ripn.net
        serial = 4005295
        refresh = 7200 (2 hours)
        retry   = 900 (15 mins)
        expire  = 2592000 (30 days)
        minimum ttl = 345600 (4 days)


------------
;; res_mkquery(0, gaga.ru.net.kiae.su, 1, 1)
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 22023, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0


    QUESTIONS:
        gaga.ru.net.kiae.su, type = A, class = IN
    AUTHORITY RECORDS:
    ->  kiae.su
        ttl = 10530 (2 hours 55 mins 30 secs)
        origin = ns.kiae.ru
        mail addr = noc-dns.relarn.ru
        serial = 650127450
        refresh = 28800 (8 hours)
        retry   = 3600 (1 hour)
        expire  = 604800 (7 days)
        minimum ttl = 86400 (1 day)


------------
Name:    gaga.ru.net.kiae.su


%

О чем говорит этот отчет. Сначала производится поиск по обратной зоне имени сервера доменных имен, который имеет IP-адрес 144.206.160.32. Затем производится поиск gaga.ru, а затем gaga.ru.net.kiae.su. По идее, следовало бы выполнить и другие подстановки, но nslookup этого не сделала. И вообще, в данном случае программа ведет себя несколько не так, как это предписано для системы resolver.

В данном случае аргумент -debug - это опция командной строки, которая позволяет управлять объемом и типом информации в отчетах nslookup при неинтерактивном режиме работы.

Вот еще один пример применения опционного аргумента:

% nslookup -type=SOA ru.
Server:  polyn.net.kiae.su
Address:  144.206.160.32


Non-authoritative answer:
ru
        origin = ns.ripn.net
        mail addr = hostmaster.ripn.net
        serial = 4005295
        refresh = 7200 (2 hours)
        retry   = 900 (15 mins)
        expire  = 2592000 (30 days)
        minimum ttl = 345600 (4 days)


Authoritative answers can be found from:
ru      nameserver = NS2.NIC.FR
ru      nameserver = ns.ripn.net
ru      nameserver = NS2.ripn.net
ru      nameserver = SUNIC.SUNET.SE
ru      nameserver = NS.UU.net
ru      nameserver = NS1.RELCOM.ru
NS2.NIC.FR      internet address = 192.93.0.4
ns.ripn.net     internet address = 194.85.119.1
NS2.ripn.net    internet address = 194.226.96.30
SUNIC.SUNET.SE  internet address = 192.36.125.2
NS.UU.net       internet address = 137.39.1.3
NS1.RELCOM.ru   internet address = 193.125.152.3
%

В данном случае мы просим доставить нам информацию о записи SOA зоны ru. Точка в конце имени зоны указана для определенности. Сервер выдает не авторитативный ответ и сообщает, где можно получить авторитативные ответы.

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

Опции можно также указать в файле .nslookuprc, который может быть размещен в домашнем каталоге пользователя. Каждая опция должна занимать отдельную строку. Ниже приведен пример содержания этого файла:

% more .nslookuprc
type=NS
db2
%

Первая строка задает тип записей описания зоны, которые ищутся. В данном случае это записи NS. А вторая запись задает уровень подробности отчета (отладка - debug второго уровня).

До сих пор мы рассматривали работу nslookup с сервером доменных имен, который определен в resolv.conf. Имя сервера доменных имен, который будет выполнять рекурсивные запросы, можно задать в качестве последнего аргумента командной строки nslookup:

% nslookup -type=A www.ru. ns.relarn.ru.
Server:  ns.relarn.ru
Address:  194.226.65.3


Non-authoritative answer:
Name:    www.ru
Address:  194.87.0.50


%

В данном случае мы посылаем рекурсивный запрос не серверу умолчания из resolv.conf, а ns.relarn.ru, который присылает нам неавторитативный ответ.

Теперь разберем интерактивный режим работы nslookup. В него попадают двумя способами. Во-первых, просто введя nslookup в командной строке интерпретатора:

% nslookup
Default Server:  polyn.net.kiae.su
Address:  144.206.160.32


>

В данном случае, в качестве сервера доменных имен программа использует сервер доменных имен умолчания, который указывается в файле настройки resolver (resolv.conf).

Во-вторых, в интерактивный режим можно попасть, задав nslookup c двумя аргументами: символом "-" и именем или IP-адресом сервера доменных имен, который будет использоваться для выполнения рекурсивных запросов:

% nslookup - 144.206.192.10
Default Server:  IRIS.polyn.kiae.su
Address:  144.206.192.10


>

Для того, чтобы покинуть интерактивный режим nslookup и вернуться в командную строку интерпретатора следует выполнить команду exit:

% nslookup
Default Server:  polyn.net.kiae.su
Address:  144.206.160.32
> exit
%

Вообще говоря, у nslookup довольно большое множество команд интерактивного режима, но мы их все рассматривать не будем. Для этого существуют руководства и система man. Рассмотрим только наиболее часто используемые случаи.

Самый простой из них - это поиск IP-адреса по доменному имени:

> quest.polyn.kiae.su.
Server:  polyn.net.kiae.su
Address:  144.206.160.32


Name:    quest.polyn.kiae.su
Address:  144.206.192.2


>

Лучше всего задавать на конце доменного имени символ ".". По умолчанию nslookup включает перебор доменных имен, а работает он не совсем корректно, как мы уже убедились выше.

Теперь попробуем найти обратное соответствие:

> 144.206.192.11
Server:  polyn.net.kiae.su
Address:  144.206.160.32


Name:    www.kiae.ru
Address:  144.206.192.11


>

Как мы видим из полученного отчета, этому адресу соответствует имя www.kiae.ru. Увеличим подробность отчета:

> set debug
> 144.206.192.11
Server:  polyn.net.kiae.su
Address:  144.206.160.32


;; res_mkquery(0, 11.192.206.144.in-addr.arpa, 1, 12)
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 31436, rcode = NOERROR
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 2,  authority records = 3,  additional = 2


    QUESTIONS:
        11.192.206.144.in-addr.arpa, type = PTR, class = IN
    ANSWERS:
    ->  11.192.206.144.in-addr.arpa
        name = www.kiae.ru
        ttl = 3600 (1 hour)
    ->  11.192.206.144.in-addr.arpa
        name = kiae.polyn.kiae.su
        ttl = 3600 (1 hour)
    AUTHORITY RECORDS:
    ->  192.206.144.in-addr.arpa
        nameserver = polyn.net.kiae.su
        ttl = 3600 (1 hour)
    ->  192.206.144.in-addr.arpa
        nameserver = ns.spb.su
        ttl = 3600 (1 hour)
    ->  192.206.144.in-addr.arpa
        nameserver = ns.ussr.eu.net
        ttl = 3600 (1 hour)
    ADDITIONAL RECORDS:
    ->  polyn.net.kiae.su
        internet address = 144.206.160.32
        ttl = 46562 (12 hours 56 mins 2 secs)
    ->  ns.spb.su
        internet address = 193.124.83.69
        ttl = 46420 (12 hours 53 mins 40 secs)


------------
Name:    www.kiae.ru
Address:  144.206.192.11


>

Подробность отчета мы увеличиваем командой set debug. Из полученного отчета видно, что nslookup производит поиск в обратной зоне, предварительно преобразовав соответствующим образом введенную нами строку IP-адреса.

Обратим внимание еще на один момент. Если при поиске IP-адреса тип запроса был A, то, как видно из выше приведенного примера, в случае поиска доменного имени по IP-адресу мы посылаем запрос на указатель (PTR).

Среди ответов мы находим два имени, которые соответствуют IP-адресу: www.kiae.ru и kiae.polyn.kiae.ru. Это отражает тот факт, что в описании обратной зоны 192.206.144.in-addr.arpa у нас есть что-то похожее на:

11              IN      PTR     www.kiae.ru.
                IN      PTR     kiae.polyn.kiae.su.

Если теперь мы захотим получить параметры SOA записи для этой обратной зоны, то нам следует заказать именно эту запись описания зоны:

> set type=soa
> 192.206.144.in-addr.arpa.
Server:  polyn.net.kiae.su
Address:  144.206.160.32


192.206.144.in-addr.arpa
        origin = polyn.net.kiae.su
        mail addr = paul.kiae.su
        serial = 80
        refresh = 3600 (1 hour)
        retry   = 300 (5 mins)
        expire  = 9999999 (115 days 17 hours 46 mins 39 secs)
        minimum ttl = 3600 (1 hour)
192.206.144.in-addr.arpa        nameserver = polyn.net.kiae.su
192.206.144.in-addr.arpa        nameserver = ns.spb.su
192.206.144.in-addr.arpa        nameserver = ns.ussr.eu.net
polyn.net.kiae.su       internet address = 144.206.160.32
ns.spb.su       internet address = 193.124.83.69
ns.ussr.eu.net  internet address = 193.125.152.3
>

На самом деле мы получили не только параметры записи SOA, но и информацию о серверах доменных имен, которые эту зону поддерживают.

Приведенный выше отчет ни чем не отличается от того, который мы получили бы, если вместо обратной зоны использовали имя прямой зоны, например, polyn.kiae.su:

> set type=soa
> polyn.kiae.su.
Server:  polyn.net.kiae.su
Address:  144.206.160.32


polyn.kiae.su
        origin = polyn.net.kiae.su
        mail addr = paul.kiae.su
        serial = 80
        refresh = 3600 (1 hour)
        retry   = 300 (5 mins)
        expire  = 9999999 (115 days 17 hours 46 mins 39 secs)
        minimum ttl = 3600 (1 hour)
192.206.144.in-addr.arpa        nameserver = polyn.net.kiae.su
192.206.144.in-addr.arpa        nameserver = ns.spb.su
192.206.144.in-addr.arpa        nameserver = ns.ussr.eu.net
polyn.net.kiae.su       internet address = 144.206.160.32
ns.spb.su       internet address = 193.124.83.69
ns.ussr.eu.net  internet address = 193.125.152.3
>

Внимательный читатель обнаружит в приведенных выше примерах чудовищно большое время автономной работы для slave серверов для обеих зон (Устанавливается в SOA записи). Лучше всего следовать рекомендациям RIPE-203.

Рассмотрим еще два параметра интерактивного режима: server и lserver. Они нужны для изменения сервера доменных имен, которому nslookup посылает рекурсивные запросы (текущий сервер):

origin 16% nslookup
Default Server:  IRIS.polyn.kiae.su
Address:  144.206.192.10


>

В данном случае в nslookup работает в качестве клиента и посылает рекурсивные запросы на сервер IRIS.polyn.kiae.su (144.206.192.10). Мы можем изменить этот сервер при помощи команд server или lserver:

> server 144.206.160.32
Default Server:  polyn.net.kiae.su
Address:  144.206.160.32


>

В данном случае мы меняем адрес текущего сервера, используя текущий же сервер. Но текущий сервер может не отвечать:

> server 144.206.130.137
Default Server:  [144.206.130.137]
Address:  144.206.130.137


> 144.206.160.1
Server:  [144.206.130.137]
Address:  144.206.130.137

В этом месте мы "залипли", т.к. по адресу 144.206.130.137 до сервера доменных имен мы достучаться не можем (он там когда-то был, но сейчас его уже там нет). Нам нужно поменять текущий сервер, т.е. тот, которые мы используем для рекурсивных запросов:

> lserver 144.206.160.32
Default Server:  polyn.net.kiae.su
Address:  144.206.160.32


> 144.206.160.1
Server:  polyn.net.kiae.su
Address:  144.206.160.32


*** polyn.net.kiae.su can't find 144.206.160.1: Non-existent host/domain
>

Перед тем, как выдать команду мы вернулись в режим командной строки (^c) и потом выдали команду на изменение текущего сервера доменных имен.

Следует признать, что отклик nslookup на наш запрос не очень информативен. На самом деле просто в обратной зоне нет записи, которая бы устанавливала соответствие между IP адресом 144.206.160.1 и доменным именем. Впрочем, и более "свежие" программы тестирования DNS не более информативны. Вот пример отчета команды host:

> host 144.206.160.32
32.160.206.144.IN-ADDR.ARPA domain name pointer polyn.net.kiae.su
> host 144.206.160.1
Host not found.
>

В случае присутствия PTR записи, она выдается, при ее отсутствии - "хост не найден".

Теперь рассмотрим еще один важный момент тестирования - передачу зоны. В этом случаи nslookup выступает как slave сервер, которые "срисовывает" зону с master сервера. Делается это при помощи команды интерактивного режима ls:

> ls bard.kiae.ru
[IRIS.polyn.kiae.su]
$ORIGIN bard.kiae.ru.
@                       1H IN A         144.206.192.32
mail                    1H IN A         144.206.192.32
www                     1H IN A         144.206.192.32
>

На самом деле по команде ls в данном случае мы получили в отчете только адресные записи. Для того, чтобы получить все записи нужно указать либо флаг "-d", либо "-t any":

> ls -d bard.kiae.ru
[IRIS.polyn.kiae.su]
$ORIGIN bard.kiae.ru.
@                  1H IN SOA       ns.polyn.kiae.ru. paul.polyn.kiae.su. (
                                        7               ; serial
                                        1H              ; refresh
                                        5M              ; retry
                                        16w3d17h46m39s  ; expiry
                                        1H )            ; minimum


                        1H IN NS        polyn.kiae.ru.
                        1H IN NS        iris.polyn.kiae.su.
                        1H IN MX        10 mail
                        1H IN MX        20 iris.polyn.kiae.ru.
                        1H IN A         144.206.192.32
mail                    1H IN A         144.206.192.32
                        1H IN MX        10 mail
www                     1H IN A         144.206.192.32
@                  1H IN SOA       ns.polyn.kiae.ru. paul.polyn.kiae.su. (
                                        7               ; serial
                                        1H              ; refresh
                                        5M              ; retry
                                        16w3d17h46m39s  ; expiry
                                        1H )            ; minimum


>

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

Следует еще раз напомнить, что nslookup считается не самым лучшим средством тестирования работы системы DNS и настройки серверов. Тем не менее, эта программа есть на любой Unix-платформе, и по этой причине ее применяют достаточно часто.

Рекомендованная литература:

  1. P. Mockapetris. RFC-1034. DOMAIN NAMES - CONCEPTS AND FACILITIES. ISI, 1987. (http://www.ietf.org/rfc/rfc1034.txt?number=1034)
  2. P. Mockapetris. RFC-1035. DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION. ISI, 1987. (http://www.ietf.org/rfc/rfc1035.txt?number=1035)
  3. Альбитц П., Ли К.. DNS и BIND. - Пер. с англ. - СПб: Символ-Плюс, 2002. - 696 с.

Полезные ссылки:

  1. Peter Koch. Ripe-203. Recommendations for DNS SOA Values. 1999. (http://www.ripe.net/docs/ripe-203.html)
  2. http://tom.imm.uran.ru/cgi-bin/man?nslookup(8) - страница man по nslookup.

Назад Оглавление Вперед

[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive]

Планирование сроков проекта и вопросы осуществления лидерством проекта рассматриваются на сайте по управлению проектами.

[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Размещение рекламы — тел. +7 495 6608306, ICQ 232284597

[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Редакция рекомендует:

Последние комментарии:

Что мы знаем об iPhone 4G? (7)
16 июля, 20:25

Подписка на новости CITForum.ru

Новые публикации:

7 июля

  • Управление параллелизмом с низкими накладными расходами для разделенных баз данных в основной памяти

  • Рекурсивные запросы в Oracle

  • Жесткий диск WD10EARS с сектором 4 КБ. Подготовка к эксплуатации в Linux.

    Обзоры журнала Computer:

    Газета:

  • Московские пробки - исследование IBM

  • От Osborne до iPad: эволюция портативных компьютеров

    19 мая

  • Прозрачный механизм удаленного обслуживания системных вызовов

  • Система моделирования Grid: реализация и возможности применения

    Газета:

    Майкл Стоунбрейкер:

  • Ошибки в системах баз данных, согласованность "в конечном счете" и теорема CAP

  • Дискуссия по поводу "NoSQL" не имеет никакого отношения к SQL

    29 апреля

  • Материалы конференции "Корпоративные Базы Данных-2010"

  • Разные облики технологии баз данных (отчет о конференции)

    14 апреля

  • MapReduce: внутри, снаружи или сбоку от параллельных СУБД?

  • Научные вызовы технологиям СУБД

    Обзоры журнала Computer:

    31 марта

  • Рационализация согласованности в "облаках": не платите за то, что вам не требуется

  • Взаимные блокировки в Oracle

  • Архитектура среды тестирования на основе моделей, построенная на базе компонентных технологий

  • Объектное представление XML-документов

    Газета:

  • Microsoft для российских разработчиков: практика с элементами фундаментальности

    10 марта

  • HadoopDB: архитектурный гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузок

  • Классификация OLAP-систем вида xOLAP

  • BGP. Три внешних канала. Балансировка исходящего и входящего трафиков

    Газета:

  • Что мы знаем об iPhone 4G?

    17 февраля

  • MapReduce и параллельные СУБД: друзья или враги?

  • Объектно-ориентированное программирование в ограничениях: новый подход на основе декларативных языков моделирования данных

  • Системологический подход к декомпозиции в объектно-ориентированном анализе и проектировании программного обеспечения

    Газета:

  • Эволюция Wine

    3 февраля

  • Дом на песке

  • Реальное переосмысление "формальных методов"

  • Интервью с Найджелом Пендзом

    Газета:

  • iPad. Первый взгляд на долгожданный планшет от Apple

  • Я не верю в iPad [an error occurred while processing this directive]

    20 января

  • SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями

  • Данные на лету: как технология потокового SQL помогает преодолеть кризис

    Обзоры журнала Computer:

    2 декабря

  • Сергей Кузнецов. Год эпохи перемен в технологии баз данных

    18 ноября

  • Генерация тестовых программ для подсистемы управления памятью микропроцессора

  • Сравнительный анализ современных технологий разработки тестов для моделей аппаратного обеспечения

    Все публикации >>>


    [an error occurred while processing this directive]
  • [an error occurred while processing this directive] [an error occurred while processing this directive]
    Купить сотовые телефоны в М.Видео
    Отличные цены на сотовые телефоны. Бесплатная доставка. Заказ в интернет-магазине и по телефону (495) 644-28-51
    www.mvideo.ru [an error occurred while processing this directive]

    Регистрация доменов в зонах .ru, .com, .net. Компания Rusonyx.

    IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    [an error occurred while processing this directive]
    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 6608306, ICQ 232284597 Пресс-релизы — pr@citforum.ru
    Послать комментарий
    Информация для авторов

    Редакция раздаёт котят!

    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2009 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...
    [an error occurred while processing this directive]


    [an error occurred while processing this directive] [an error occurred while processing this directive] реклама:
    Производство и продажа серверов | забронировать гостиницу Санкт Петербурга | платный хостинг | IBM Rational. Аналитика и инструменты
    [an error occurred while processing this directive] [an error occurred while processing this directive]