Купить
 
 
Жанр: Учеба

SCO: Пособие администратора системы Unix

страница №31

------------------------------------------------------------
|uucp:x:4:uucp,nuucp,ubarn,upay4
+---------------------------------------------------------------

etc/systemid
+---------------------------------------------------------------
|gomer
|gomer
+---------------------------------------------------------------

etc/inttab
+---------------------------------------------------------------
|t4B:2:respawn:/etc/getty tty4B m
|t4b:2:respawn:/etc/getty tty4b m
|t4D:2:respawn:/etc/getty tty4D m
|t4d:2:respawn:/etc/getty tty4d m
+---------------------------------------------------------------

usr/lib/uucp/Devices
+---------------------------------------------------------------
|# Модем типа hayes с частотой 1200 бод для работы в диапазоне
|# от 300 до 1200 бод
|# Запись для прямого соединения tty4b для использования cu
|ACU tty4B - 300-1200 dialHA12
|Direct tty4b - 300-1200 dialHA12
|poker tty4d - 9600 direct
+---------------------------------------------------------------

- 11-72 -

usr/lib/uucp/Permissions
+---------------------------------------------------------------
|# Общая регистрация uucp только для почты
|# Разрешается посылать почту, передавать файлы в и получать из
|# uucppublic и получать распечатку содержимого каталога (ls)
|LOGNAME=nuucp MACHINE=OTHER \
| COMMANDS=rmail:ls \
| READ=/usr/spool/uucppublic:/usr/tmp \
| WRITE=/usr/spool/uucppublic:/usr/tmp \
| SENDFILES=yes REQUEST=yes
|# Личная регистрация uucp для почты и передачи файлов.
|# Только dingbat, ogre, grinch, ... могут использоваться в этой
|# регистрации
|LOGNAME=uucpbig VALIDATE=dingbat:ogre:grinch:gomer:blitzen \
| COMMANDS=rmail:ls:uucp:who:uux \
| READ=/ WRITE=/ \
| NOREAD=/etc \
| SENDFILES=yes REQUEST=yes
|# Локальное надежное подключение к gomer
|# Этой регистрацией может пользоваться только gomer
|LOGNAME=ubarn VALIDATE=gomer \
| COMMANDS=ALL \
| READ=/ WRITE=/ \
| SENDFILES=yes REQUEST=yes
+---------------------------------------------------------------

usr/lib/uucp/Systems
+---------------------------------------------------------------
|# Локальные вызовы
|dingbat Any ACU 1200 4444444 ogin:-BREAK-ogin:-BREAK-ogin: \
| uubig word: wetrot
|# Дальнее расстояние (вызов только в вечернее время)
|grinch Any1800-0700 ACU 2400 1888888 "" \r ogin:-BREAK-ogin: \
| -BREAK-ogin:nuucp
|unnet Any1800-0700 ACU 2400 170311111111 ogin:-BREAK-ogin: \
| -BREAK-ogin:xytpq sword: grm5q
|# Система, которая вызывается как nuucp (для почты), но НЕ
|# для выхода в сеть
| daboss Never
| sales Never
| guru2 Never
+---------------------------------------------------------------

- 11-73 -

Пример 1: Система dingbat

В состав следующей системы (dingbat) входят:

* Модем со скоростьб 2400 бод на tty1A.
* Имеется две допустимых регистрации uucp:
nuucp Регистрация общего пользования для электронной почты.
Пароль не требуется.
uubig Личная регистрация для электронной почты и передачи
файлов.
Все строки, начинающиеся со знака #, являются комментариями
и необязательны. В большинстве примеров приводятся только
части распечаток и могут содержать другие записи. Micnet НЕ установлена.
Модем сначала отвечает на скорости 2400 бод, а затем
настраивается на вызов и на передачу файлов.

etc/passwd
+---------------------------------------------------------------
|uucp:NOLGIN:4:4:Uucp admin:/usr/lib/uucp:
|nuucp::201:4:public:/usr/spool/uucppublic:/usr/lib/uucp/uucico
|uubig:*:202:4:private:/usr/spool/uucppublic:/usr/lib/uucp/uucico
+---------------------------------------------------------------

etc/group
+---------------------------------------------------------------
|uucp:x:4:uucp,nuucp,uuidig
+---------------------------------------------------------------

etc/systemid
+---------------------------------------------------------------
|dingbat
|dingbat
+---------------------------------------------------------------

- 11-74 -

etc/inttab
+---------------------------------------------------------------
|t1A:2:respawn:/etc/getty tty1A m
|t4a:2:respawn:/etc/getty tty1a m
+---------------------------------------------------------------

usr/lib/uucp/Devices
+---------------------------------------------------------------
|# Модем типа hayes с частотой 2400 бод для работы в диапазоне
|# от 300 до 2400 бод
|# Запись для прямого соединения для работы cu
|ACU tty1A - 300-2400 dialHA24
|Direct tty1A - 300-2400 dialHA12
+---------------------------------------------------------------

usr/lib/uucp/Permissions
+---------------------------------------------------------------
|# Общая регистрация uucp только для почты
|# Разрешается посылать почту, передавать файлы в и получать из
|# uucppublic и получать распечатку содержимого каталога (ls)
|LOGNAME=nuucp MACHINE=OTHER \
| COMMANDS=rmail:ls \
| READ=/usr/spool/uucppublic:/usr/tmp \
| WRITE=/usr/spool/uucppublic:/usr/tmp \
| SENDFILES=yes REQUEST=yes
|# Личная регистрация uucp для почты и передачи файлов.
|# В этой регистрации могут использоваться только
|# dingbat, ogre, grinch, ...
|LOGNAME=uucpbig VALIDATE=dingbat:ogre:grinch:gomer:blitzen \
| COMMANDS=rmail:ls:uucp:who:uux \
| READ=/ WRITE=/ \
| NOREAD=/etc \
| SENDFILES=yes REQUEST=yes
+---------------------------------------------------------------

- 11-75 -

usr/lib/uucp/Systems
+---------------------------------------------------------------
|# Локальные вызовы
|gomer Any ACU 1200 3333333 ogin:-BREAK-ogin:-BREAK-ogin: \
| upay4 word: dryrot
|# Дальнее расстояние (вызов только в вечернее время)
|grinch Any1800-0700 ACU 2400 1888888 "" \r ogin: \
| -BREAK-ogin:-BREAK-ogin:nuucp
|# Система, которая вызывается как nuucp (для почты), но НЕ
|# для выхода в сеть
| daboss Never
| damgr Never
| guru2 Never
+---------------------------------------------------------------

.te1Примеры команд

Посылка почты в другую систему и возврат ее обратно.
mail othersystem!mysystem!mylogin (Оболочка Борна/корн)
mail othersystem\!mysystem\!mylogin (Оболочка СИ)
Вывод полного почтового адреса вашей системы
echo "'uuname -l'\!'logname'" mail
Вывод списка систем, доступных вам для вызова
uuname
Прекращение вызова другой системы и сохранение в фоне
отладочного вывода
/usr/lib/uucp/uucico -r1 -x7 -Sother 2"\/tmp/uulog$$ &

- 11-76 -

СООБЩЕНИЯ ОБ ОШИБКАХ UUCP

В настоящем разделе приводится перечень сообщений об ошибках,
возникающих при работе UUCP. Существует два типа сообщений
об ошибках. Ошибки типа ASSERT регистрируются в файле
/usr/spool/uucp/.Admin/errors. Ошибки типа STATUS регистрируются
в индивидуальных файлах компьютеров, находящихся в каталоге
/usr/spool/uucp/.Status.

Сообщения об ошибках типа ASSERT

Если процесс завершается аварийно, в файл
/usr/spool/uucp/.Admin/errors записывается сообщение об ошибке
типа ASSERT. В этом сообщении указывается имя файла, sccsid,
номер строки и текст сообщения, приводимый ниже в таблице. В
большинстве случаев эти ошибки являются результатом неправильной
работы файловой системы. Для изучения проблемы необходимо
использовать номер ошибки "errno' (в тех случаях, когда он устанавливается.
Если этот код указывается в сообщении, он обозначается
скобками () в следующем списке сообщений.

Сообщение Описание/Действия
об ошибке
---------------------------------------------------------------------------

CAN'T OPEN Ошибка при выполнении open() или fopen(). Следует
проверить наличие файла или разрешения на доступ
к нему.
CAN'T WRITE Ошибка при выполнении write(), fwrite(), fprint()
и т.п. Следует проверить наличие файла или раз-
решения на доступ к нему.
CAN'T READ Ошибка при выполнении read(), fgets() и т.п. Сле-
дует проверить наличие файла или разрешения на
доступ к нему.
CAN'T CREATE Ошибка при вызове create(). Следует проверить на-
личие разрешения на доступ к файлу.
CAN'T ALLOCATE Ошибка при выполнении динамического распределения.
CAN'T LOCK Ошибка при попытке образования файла LCK (блоки-
ровки). В некоторых случаях эта ошибка может
оказаться критической.
CAN'T STAT Ошибка при вызове stat(). Следует проверить на-
личие файла или разрешения на доступ к нему.
CAN'T CHMOD Ошибка при вызове chmod(). Следует проверить на-
личие файла или разрешения на доступ к нему.

- 11-77 -

CAN'T LINK Ошибка при вызове link(). Следует проверить на-
личие файла или разрешения на доступ к нему.
CAN'T CHDIR Ошибка при вызове chdir(). Следует проверить на-
личие файла или разрешения на доступ к нему.
CAN'T UNLINK Ошибка при вызове unlink().
WRONG ROLE Внутренняя логическая ошибка.
CAN'T MOVE TO Попытка пересылки плохих файлов типа C. или X. в
CORRUPTDIR каталог /usr/spool/uucp/.Corrupt заканчивается
ошибкой. Есть вероятность, что каталог отсутству-
ет или имеет неправильный режим доступа или вла-
дельца.
CAN'T CLOSE Ошибка при вызове close() или fclose().
FILE EXISTS Предприянта попытка образования файлов типа C.

или D., но файл уже существует. Это происходит в
том случае, если имеется проблема с файлами
последовательного доступа. Обычно указывает на
наличие ошибки в программном обеспечении.
No uucp server Предприянта попытка вызова tcp/ip, однако
спецпроцессора для UUCP отсутствует.
BAD UID В файле etc/passwd не обнаруживается иденти-
фикатор пользователя. Ошибка в файловой системе
или в файле /etc/passwd противоречивые данные.
BAD LOGIN_UID То же, что и предыдущее.
ULIMIT TOO Величина ulimit слишком мала для текущего процесSMALL
са пользователя. Возможна ошибка передачи файла,
поэтому попытки передачи не предпринимается.
BAD LINE В файле Device имеется неправильная строка;
на одной или более строк не хватает аргументов.
FSTAT FAILED Имеется какая-то некорректность в среде ethernet.
IN EWRDATA
SYSLST Переполнение внутренней таблицы gename.c. ПредOVERFLOW
принята попытка запроса big/strange.
TOO MANY SAVED То же, что и предыдущее.
C FILES
RETURN FROM Произошла ошибка с ioctl, которая никогда не порfixline
ioctl тится. Имеются проблемы, связанные с системным
драйвером.

- 11-78 -

BAD SPEED В файлах Device/Systems указана неправильная
скорость шины (поле Class).
PERMISSIONS Неправильная строка или опция в файле
file: BAD Permissions.
OPTION
PKCGET READ Возможно отключение удаленного компьютера. Ника-
ких действий не требуется.
PKXSTART Аварийное прекращение работы удаленного компьюте-
ра, не позволяющее восстановления. В общем случае
игнорируется.
SYSTAT OPEN Имеется проблема с режимами в
FAIL /usr/lib/uucp/.Status или имеется файл с
плохими режимами в каталоге.
TOO MANY Ошибка программного обеспечения !
LOCKS
XMV ERROR Имеется какая-то ошибка, связанная с файлом или
каталогом. Скорее всего с каталогом общего поль-
зования, т.к. режимы файла назначения считаются
уже проверенными до того, как будет предпринята
эта обработка.
CAN'T FORK Ошибка при попытке образования параллельного про-
цесса или выполнения команды. Текущее задание не
должно теряться; его выполнение откладывается
(uuxqt). Никаких действий не требуется.

Сообщения об ошибках UUCP типа STATUS

Сообщения об ошибках состояния являются сообщениями, которые
накапливаются в каталоге /usr/spool/uucp/.Status. Этот
каталог содержит отдельные файлы для каждого удаленного компьютера,
с которыми ваша система пытается установить связь. Эти
индивидуальные файлы содержат информацию о состоянии предпринятой
попытки установить связь, была ли она успешной, или нет.
Далее следует перечень сообщений о наиболее общих ошибках, которые
можно встретить в этих файлах.

- 11-79 -

OK Все нормально.
NO DEVICES В текущий момент нет устройств, доступных для
AVAILABLE вызова. Провеpьте наличие подходящих устройств в
файле Devices для конкретной системы. Прове-
рьте наличие в записях файла Systems устройс-
тва для вызова этой системы.
WRONG TIME Вызов помещен в систему во время, отличное от
TO CALL указанного в файле Systems.
TALKING Самоочевидное.
LOGIN FAILED Ошибка при входе в указанный компьютер. Причиной
может быть неправильная последовательность регис-
трации или пароль, неправильный номер, низкая
скорость компьютера или ошибка в сценарии
dialer-token.

CONVERSATION После успешного запуска возникла ошибка преобраFAILED
зования. Обычно это означает, что один из абонен-
тов отключился, произошло аварийное завершение
программы или произошел обрыв линии (связи).
DIAL FAILED Удаленный компьютер никогда не отвечает.
Возможна неисправность наборного устройства или
неправильный телефонный номер.
BAD LOGIN/ Компьютер вызывает нас по имени регистрации/комMACHINE
пьютера, не совпадающему с файлом Permissions.
COMBINATION Это может быть попыткой несанкционированного входа
в систему.
DEVICE LOCKED Вызывающее устройство, которое должно использова-
ться, в данный момент заблокировано и используется
другим процессом.
ASSERT ERROR Произошла ошибка типа ASSERT. Проверьте файл
/usr/spool/uucp/.Admin/errore на наличие в нем
сообщений об ошибках и получите необходимую инфор-
мацию в разделе "Сообщения об ошибках типа ASSERT".
SYSTEM not in Система не описана в файле Systems.
Systems

- 11-80 -

CAN'T ACCESS Устройство, с которым предпринимается попытка раDEVICE
боты, не существует или имеет неправильные режимы.
Проверьте соответствующие записи в файлах Systems
или Devices.
DEVICE FAILED Ошибка при открытии устройства.
WRONG MACHINE Вызываемый компьютер отвечает именем, отличным от
NAME ожидаемого.
CALLBACK Вызываемый компьютер в свою очередь запрашивает
REQUIRED вызов вашей системы.
REMOTE HAS Удаленный абонент имеет файл блокировки для вашей
A LCK FILE системы. Кто-то может попытаться вызвать ваш комFOR
ME пьютер. Если он имеет более старую версию UUCP,
процесс, выполняющий диалог с вашим компьютером,
может окончиться ошибкой, в результате чего оста-
нется файл LCK. Если этот пользователь имеет новую
версию UUCP и не устанавливает связь с вашей сис-
темой, процесс, получивший файл LCK зависает.
REMOTE DOES Удаленный компьютер не имеет имени вашего узла
NOT KNOW ME для вашей системы в файле Systems.
REMOTE REJECT Регистрационная последовательность, используемая
AFTER LOGIN вашей системой для входа в систему не соответст-
вует тому, что ожидал удаленный компьютер.
REMOTE REJECT, Удаленный компьютер отвергает связь с вашей сисUNKNOWN
темой по непонятной причине. На удаленном компьюMESSAGE
тере может использоваться нестандартная версия
UUCP.
STARTUP Регистрация прошла нормально, однако произошла
FAILED ошибка в аппаратурной поддержке инициализации.
Проверьте параметры связи: размер слова данных,
четность, разряды остановки и т.п.
CALLER SCRIPT Обычно причина та же, что и для DIAL FAILED.
FAILED Однако если такая ситуация возникает часто,
проверьте сценарий наборного устройства в файле
dialers. Для проверки используйте uutry.

Глава 12


ПОСТРОЕНИЕ ЛОКАЛЬНОЙ СЕТИ С MICNET

ВВЕДЕНИЕ 12-1
СОСТАВЛЕНИЕ СТРУКТУРЫ СЕТИ 12-2
Выбор имен компьютеров 12-2
Выбор топологии сети 12-2
Построение схемы топологии сети 12-3
Стратегия соединения сети 12-4
Назначение шин и скоростей 12-5
ПОСТРОЕНИЕ СЕТИ 12-8
Формирование файлов топологии сети Micnet 12-8
Сохранение файлов Micnet 12-11
Восстановление файлов Micnet 12-12
ПУСК СЕТИ 12-14
ТЕСТИРОВАНИЕ СЕТИ MICNET 12-15
Проверка соединений сети 12-15
Использование файла регистрации при диагностике 12-16
Останов сети 12-17
Изменение сети Micnet 12-18
- 12-1 -

ВВЕДЕНИЕ

Сеть Micnet позволяет устанавливать связь между двумя или
более независимыми системами UNIX. Эта сеть состоит из компьютеров,
подключенных через последовательные линии связи (т.е.
порты RS-232, соединенные кабелем). Каждый компьютер в сети
работает как независимая система, но позволяет пользователю
связываться с другими компьютерами в сети с помощью команд
mail, rcp, и remote. Эти команды передают такую информацию, как
почта, файлы и даже другие команды, из одного компьютера в
другой.
Образованием и обслуживание сети Micnet занимается специальная
задача системного администратора. Системный администратор
решает, как должны подключаться компьютеры, выполняет
реальное физическое соединение, а затем с помощью программы
netutil описывает и запускает сеть.
В настоящей главе объясняется, как планировать сеть, а затем
строить ее с помощью программы netutil. В частности, расматриваются
следующие вопросы:
* Как выбирать имена компьютеров
* Как строить топологию сети
* Как назначить последовательные шины (линии)
* Как образовывать файлы Micnet
* Как распространять файлы Micnet
* Как тестировать сеть Micnet.
---------------------------------------------------------------------------

Замечание
Для подключения компьютеров в сети Micnet следует использовать
кабель пустого модема. Контакты 2, 3 и 7 должны
соединяться напрямую с контактами 2, 3 и 7.
---------------------------------------------------------------------------
- 12-2 -

СОСТАВЛЕНИЕ СТРУКТУРЫ СЕТИ

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

Выбор имен компьютеров

Сеть Micnet требует, чтобы каждый компьютер сети имел уникальное
"имя компьютера" (машинное имя). Имя компьютера позволяет
отличать один ПЭВМ от других, имеющихся в сети. Это имя
лучше всего выбирать на начальной стадии планирования сети. Это
исключает возможные противоречия в дальнейшем, когда вы начинается
строить сеть с помощью netutil.
Имя компьютера должно отражать местоположение компьютера
или или лица, работающего на нем. Кроме того, вы можете использовать
имя, какое захотите. Имя должно быть уникальным и состоять
из букв и цифр. Программы Micnet используют только первые
восемь знаков имени, поэтому проверяйте, чтобы они были уникальными.

Программа netutil сохраняет машинное имя компьютера в файле
etc/systemid. Для каждого компьютера образуется свой файл.
После того как вы построите сеть и запустите ее, вы можете найти
машинное имя используемого вами компьютера, выведя его содержимое.


Выбор топологии сети

Топология сети представляет собой описание того, как
компьютеры сети соединяются между собой. В любой сети Micnet
имеются две общие топологии, из которых можно конструировать
другие. Это - "звездообразная" и "линейная".
В звездообразной топологии все компьютеры напрямую соединяются
с центральным компьютером. Все связи проходят через
центральный компьютер и далее к месту назначения.

- 12-3 -

В линейной топологии компьютеры образуют цепочку, в которой
каждый из них соединяется напрямую не более чем с двумя
другими. Все связи проходят через все компьютеры, расположенные
между абонентами сети.
Сеть может быть строго звездообразной, строго линейной или
представлять собой комбинацию звездообразной и линейной. Единственным
ограничением является запрет на образование колец.
Например, вы не можете замыкать линейную часть соединением двух
компьютеров на каждом конце.
Тип выбираемой вами топологии определяется числом компьютеров,
которые вам необходимо соединить, скоростью, которую вы
хотите поддерживать при связи и тем распределением задач, которое
вы предполагаете осуществлять. Звездообразная топология
дает высокую скорость связи компьютеров, однако требует и больших
затрат машинного времени центрального компьютера, и большего
числа последовательных шин на центральной ЭВМ. Линейная топология
равномерно распределяет бремя связи на всех, требуя
лишь две последовательные шины на каждый компьютер, однако оказывается
слишком медленной при большой длине цепочки (связь
между компьютерами может занимать несколько минут). Зачастую
наиболее удобным решением оказывается комбинация звездообразной
и линейной топологий. В любом случае вам предстоит сделать выбор,
являющийся по вашему мнению лучшим. Если вы приходите к
выводу, что сделанный вами выбор оказался не самым удачным, вы
можете в любой момент перестроить сеть.

Построение схемы топологии сети

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

a ----------- b -----------c

При вычерчивании проверяйте, чтобы между любыми двумя
компьютерами сети получалось не более одного соединения. Более
того, следите, чтобы не образовывалось колец (кольцо - это ряд
соединений, образующих замкнутый круг). Многократные соединения
и кольца не допускаются.
- 12-4 -

Стратегия соединения сети

Построив схему топологии сети, вы можете определить, какие
последовательные порты использовать для соединения компьютеров.
Так как каждое соединение между компьютерами в сети требует в
точности два порта (по одному на каждый компьютер) и один последовательный
проводник, вам нужно очень аккуратно назначать шины.
Составьте список последовательных портов (называемых также
портами TTY) пригодных для использования на каждом из компьютеров
сети. Вы можете вывести список последовательных портов
компьютера при просмотре файла /etc/inittab. Порт считается
доступным, если к нему не подсоединено никакое устройство типа
терминала или модема. Например, в показанной выше топологии
компьютер b имеет два сетевых соединения, одно с компьютером a,
другое с компьютером c. Вам понадобится выделить два порта tty
на компьютере b и по одному на компьютерах a и c.
Имеется ограничение на использование имен tty, которые
можно применять в сети Micnet. По сети не должен повторяться ни
один номер tty. Большинство компьютеров имеют одинаковую схему
нумерации tty (tty1a, tty2a, tty3f и т.д.). Это означает, что
на каждом компьютере вашей сети последовательные порты имеют
одинаковые имена. Например, если вы соединяете порт tty1b в
компьютере a с портом tty5d в компьютере b, вы не можете назначить
tty1b в компьютере ни одному компьютеру сети. Причиной
этого ограничения является то, что программы Micnet не различают
компьютера в сети и вы должны указывать порты, используемые
в каждом из компьютеров для связи. Следовательно, если программа
обнаруживает в файле топологии два tty с одинаковыми именами,
сеть не может правильно работать. Мы рекомендуем вам некоторую
стратегию, позволяющую вам легко манипулировать
соединениями Micnet.


- 12-4а -

Мы советуем вам выбрать интервал номеров, которые не используются
в вашей системе и сделать их несуществующими портами
для связей Micnet. Мы рекомендуем использовать номера tty начиная
с 40 или 50. Верхнего предела для этой нумерации нет и вы
можете иметь столько "виртуальных" tty, сколько понадобиться
использовать в файле топологии. Например, т.к. ни одна пара
компьютеров не может использовать одно и то же имя tty в топологии,
укажите в файле топологии, что компьютер a использует
tty50 для соединения с tty51 компьютера b. Так как такие tty не
существуют ни в одной из ваших систем, вы можете быть уверены,
что в сети не будет дублирования имен.
Для того, чтобы установить соответствие между новыми именами
виртуальных tty и реальными tty в вашем компьютере, следует
использовать команду ln(C), которая связывает имена файлов
получаемых вами в вашей топологии с реальными tty в вашей системе.
Если вы используете ln(C), для установления

Список страниц

Закладка в соц.сетях

Купить

☏ Заказ рекламы: +3805044-68-872

© Ассоциация электронных библиотек Украины

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