В этой лекции
Сервер электронной почты абсолютно бесполезен, если он не может общаться с другими серверами и клиентскими рабочими станциями. Для связи с внешним миром в почтовом сервере на базе ОС Linux используется два типа телекоммуникационных устройств.
Прежде всего почтовый сервер на базе ОС Linux должен установить соединение по протоколу IP с провайдером услуг сети Internet (ISP), чтобы производить обмен электронной почтой с Internet. Для установления последовательного соединения с провайдером используется модем. После того как соединение установлено, сервер электронной почты на базе ОС Linux для приема/передачи IP-пакетов может использовать протокол РРР (Point-to-Point Protocol). Более подробно это описано в лекции 8, "Протокол РРР".
Помимо Internet-соединения, сервер
электронной почты должен каким-то образом
передавать почту на рабочие станции и
давать им возможность отсылать почту в Internet.
Самое простое решение — подключить
почтовый сервер к локальной вычислительной
сети вашего офиса. В небольших офисах можно
организовать локальную вычислительную
сеть (ЛВС) несколькими способами.
Наибольшую популярность в последнее время
приобрела технология ЛВС — Ethernet.
Технология Ethernet позволяет объединять
рабочие станции в сеть со скоростью 10 или 100
Мбит/с с помощью интерфейсных сетевых карт (Network
В этой лекции обсуждаются вопросы конфигурирования сервера электронной почты для работы и с рабочими станциями в ЛВС, и с провайдером Internet. В начале лекции дается краткий обзор телекоммуникационных устройств, которые могут работать в ОС Linux. Затем описывается процесс установки и настройки сетевых адаптеров. В конце лекции обсуждается алгоритм установки и настройки различных типов модемов.
Модемы и интерфейсные сетевые карты — это аппаратные телекоммуникационные устройства, подключаемые к ПК (часто с использованием слотов на материнской плате). Вначале эти устройства должны быть опознаны операционной системой Linux, в противном случае они могут работать некорректно. Для нормального функционирования этих устройств в ОС Linux необходимы специальные драйверы и программное обеспечение. На рис. 3.1 представлено программное и аппаратное обеспечение, необходимое для нормальной работы телекоммуникационных устройств.
(рис 3.1) Уровни работы телекоммуникационных устройствКак видно из рис. 3.1, каждое телекоммуникационное устройство должно взаимодействовать с ядром ОС Linux. Как было сказано в предыдущей лекции, ядро отвечает за управление интерфейсами, которые назначаются телекоммуникационным устройствам. Как правило, это достигается с помощью загружаемых драйверов, которые называются модулями. Эти модули можно устанавливать при загрузке системы с помощью механизма сценариев. В свою очередь, ядру должны быть известны все параметры устройств в системе, чтобы оно могло работать с ними корректно.
После того как ядро системы обнаружило и сконфигурировало телекоммуникационные устройства, должна быть обеспечена возможность доступа к устройству, соответствующему программному обеспечению. Если же речь идет о сервере электронной почты, то программное обеспечение должно соответствовать протоколу TCP/IP.
Программное обеспечение TCP/IP для ОС Linux позволяет прикладным программам посылать пакеты TCP/IP через сетевой адаптер и модем удаленным устройствам на основе IP-адресов. Для нормальной работы стека протоколов TCP/IP необходим определенный набор параметров IP. Наиболее важными для организации IP-соединения являются:
IP-адрес является уникальным идентификатором почтового сервера на базе ОС Linux в IP-сети офиса. Маска подсети определяет размер IP-сети офиса. Это позволяет почтовому серверу правильно определять время пересылки IP-пакетов на маршрутизатор для дальнейшей их отправки удаленным узлам. Маршрутизатор обычно используется сервером электронной почты для передачи пакетов удаленным узлам.
Последним параметром для нормальной работы почтового сервера на базе ОС Linux является настройка сервера системы доменных имен — DNS. Адресация в сетях IP основана на числовых адресах. Система доменных имен DNS сопоставляет IP-адреса с символьными именами хостов. Благодаря этому пользователи и программы работают с пространством имен хостов, а не с длинной последовательностью чисел, представляющей IP-адрес. Сервер DNS возвращает IP-адрес на заданное имя хоста.
В следующем разделе описывается процесс установки и настройки сетевых адаптеров на почтовом сервере под управлением ОС Linux.
Операционной системой Linux поддерживается огромное количество различных сетевых адаптеров. Большинство дистрибутивов Linux при установке автоматически определяют установленный сетевой адаптер и соответствующим образом изменяет ядро. Если же сетевой адаптер устанавливается на систему с уже установленной ОС Linux, то придется сконфигурировать его в ядре вручную.
Для установки и настройки
сетевых адаптеров вручную в системе Linux
применяется программа ifconfig.
В некоторые дистрибутивы ОС Linux входит
графическая оболочка X Window, с помощью
которой установка параметров программы ifconfig
несколько облегчается. В Red Hat и Mandrake Linux для
настройки установленных сетевых адаптеров
используется программа netcfg.
В этом разделе будет рассмотрена
работа программы ifconfig
по обнаружению и настройке сетевых
адаптеров при начальной загрузке, а также
более подробно будет описана работа
программы netcfg.
После того как сетевой адаптер
был правильно настроен (вручную либо
автоматически), сервер на базе ОС Linux может
общаться с другими устройствами в офисной
локальной сети. Однако имеется одна
проблема: после перезагрузки сервера на Linux
вся информация о сетевом устройстве
теряется. Для внесения информации о сетевых
устройствах в специальную таблицу в ядре
применяется команда ifconfig.
Эта таблица создается в ядре при каждой
загрузке сервера на основе сценариев
конфигурации.
Программе ifconfig
требуется запустить в процессе загрузки
файл сценария, в котором задаются
необходимые команды ifconfig
для запуска сетевого адаптера. Во всех
версиях ОС Linux имеются файлы сценариев,
которые применяются при начальной загрузке
для запуска различных программ. К сожалению,
различные поставщики ОС Linux в своих
дистрибутивах используют различные методы
запуска для файлов сценариев. Так, в
дистрибутивах Linux Mandrake, Caldera и Red Hat
применяется метод init,
присущий системам UNIX Sys V, который мы здесь и
обсудим.
Метод инициализации Sys V довольно сложен и состоит из набора файлов сценариев. Сам процесс инициализации разделен на уровни запуска. На каждом уровне запуска выполняется набор файлов сценариев для инициализации определенных устройств, соответствующих данному уровню запуска. На рис. 3.2 дается обзор сценариев, используемых ОС Linux для загрузки конфигурационной информации об уровнях запуска в процессе начальной загрузки системы.
(рис 3.2) Процесс начальной загрузки в ОС LinuxКаталог /etc/rc.d
содержит сценарии, которые запускаются в
соответствии с уровнем запуска init в системе.
Как правило, сервер на базе Linux
функционирует либо на 3-м уровне запуска (в
режиме консоли), либо на 5-м уровне (в режиме X
Window). На том и другом уровнях запуска
используется один и тот же сценарий для
запуска сетевых устройств — S10network,
который находится в каталоге /etc/rc.d/rc3.d
или в /etc/rc.d/.
Сценарий S10network
запускает на сервере сетевые функции. Далее
им используется еще один сценарий — ifup,
который пытается запустить все возможные
сетевые интерфейсы, сконфигурированные в
процессе начальной загрузки. Сценарий ifup
находится в каталоге /etc/sysconfig/network-scripts.
Каждому сконфигурированному в ОС
Linux сетевому интерфейсу соответствует свой
файл в каталоге /etc/sysconfig/network-scripts.
Устройству /dev/eth0
соответствует файл ifcfg-eth0.
В листинге 3.1 показан пример файла,
созданного в ОС Linux для сетевого устройства eth0.
1 DEVICE=ethO 2 IPADDR=192.168.1.1 3 NETMASK=255.255.255.8 4 NETWORK=192.168.1.0 5 BROADCAST=158.18.1.255 6 ONBOOT=yes 7 BOOTPROTO=none
В файле ifcfg-eth0
описываются переменные окружения,
которые используются сценарием ifup
для запуска сетевых интерфейсов. Строка в
сценарии ifup,
которая обращается к этим переменным
выглядит примерно следующим образом:
ifconfig ${DEVICE} ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
Формат командной строки ifconfig
в сценарии ifup в
точности соответствует команде, вводимой
вручную из командной строки.
Если же вы вознамерились создать
собственный сценарий для нового сетевого
интерфейса, то он может и не быть столь
сложным и изощренным, как тот, что
генерируется в Red Hat Linux. Все, что вам нужно, —
это вписать необходимые строки ifconfig
для запуска сетевого интерфейса. Если имя
устройства и его IP-адрес известны, то вам не
придется использовать переменные
окружения и отдельно файлы конфигурации.
Достаточно лишь задать конфигурацию в
одной строке файла сценария S10network.
Программа ifconfig
является стандартной для операционной
системы Linux. Она используется для
идентификации и конфигурирования сетевых
устройств в системе Linux.
Эта программа может работать в двух режимах:
ifconfig [interface] ifconfig interface [aftype] options | address ...
Первый режим работы называется режимом отчета. Он позволяет администратору системы получать информацию о конфигурации от установленных сетевых устройств. Второй режим работы называется режимом конфигурирования. В нем системный администратор может устанавливать или изменять параметры конфигурации для сетевых устройств. Далее эти режимы рассмотрены более подробно.
В режиме отчета ifconfig
выводит информацию либо об одном сетевом
интерфейсе, либо обо всех имеющихся в
системе интерфейсах. Эта информация
включает в себя набор аппаратных и
программных параметров устройства, а также
данные о его текущем состоянии. Каждому
сетевому устройству для нормальной работы
требуется несколько параметров. На рис. 3.3
приведен пример сетевого устройства,
работающего в ОС Linux.
(рис 3.3) Компоненты сетевого устройстваКак видно из рис. 3.3, одним из наборов параметров сетевого устройства является набор для конфигурации аппаратных параметров. Аппаратное прерывание и базовый адрес ввода-вывода используются для идентификации сетевого адаптера в ОС Linux и должны быть уникальными. Еще один набор параметров — это программные параметры. Для нормальной работы ОС Linux в IP-сети, в ней должны быть правильно настроены параметры протокола IP. К ним относятся уникальный IP-адрес, маска подсети и широковещательный адрес для сети.
В листинге 3.2 приведен пример
работы команды ifconfig
в режиме отчета.
1 [alex@shadrach alex]$ /sbin/ifconfig 2 eth0 Link encap:Ethernet HWaddr 00:A0:24:9C:69:02 3 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 4 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 5 RX packets:7948525 errors:0 dropped:0 overruns:0 frame:0 6 TX packets:22003 errors:0 dropped:0 overruns:0 carrier:0 7 collisions:72 txqueuelen:180 8 Interrupt:11 Base address:0x8400 10 lo Link encap:Local Loopback 11 inet addr:l27.0.0.1 Mask:255.0.0.0 12 UP LOOPBACK RUNNING MTU:3924 Metric:1 13 RX packets:38 errors:0 dropped:0 overruns:0 frame:0 14 TX packets:38 errors:0 dropped:0 overruns:0 carrier:0 15 collisions:0 txqueuelen:0 16 17 [alex@shadrach alex]$
В строке 1 листинга 3.2 показана
команда ifconfig,
заданная в командной строке. Возможно,
понадобится указать полный путь для
выполнения этой команды, если вы находитесь
в системе не в качестве пользователя root.
Строки со второй по восьмую отображают
информацию о первом найденном в системе
сетевом устройстве. Первый сетевой адаптер
Ethernet обычно обозначается в системе как
устройство eth0. В
строке 2 показан аппаратный или как его еще
называют МАС-адрес сетевого адаптера.
Каждая сетевая карта имеет свой уникальный
МАС-адрес. Это позволяет устройствам
правильно идентифицировать другие
устройства в сети на уровне обмена пакетами
Ethernet. В строке 3 отображается IP-адрес
сетевого устройства. В нашем случае
сетевому адаптеру назначен IP-адрес 192.168.1.1
и маска подсети 255.255.255.0.
В строках 4–8 выдается
статистическая информация о сетевом
адаптере. Все приведенные здесь значения
часто бывают полезны при локализации
неисправностей, связанных с сетевым
адаптером. В строке 4 отображается общая
информация о состоянии сетевого устройства.
Если сетевое устройство работает нормально,
то в строке 4 Вы увидите сообщения UP
и RUNNING. Строки 5–7
также можно использовать при поиске
неисправностей. Если сетевой адаптер не
может работать с другими устройствами, но
при этом значения в счетчиках передачи TX
и приема RX
пакетов растут то, это означает, что сервер
все-таки подключен к сети, но, возможно,
неправильно указан его IP-адрес. Если
наблюдается большое количество ошибок и
столкновений (коллизий), то это верный
признак наличия проблемы, связанной с сетью
(поврежден кабель или сетевой концентратор
(хаб)).
В строках 10–15 отображается
информация о втором сетевом устройстве,
найденном в системе. Устройство lo
— это специальное устройство типа "петля". Устройство типа "петля"
используется в системе Linux для проверки
возможности связи операционной системы с
использованием стандартных сетевых
протоколов с самой собой. Адрес 127.0.0.1,
указанный в строке 11, является стандартным
IP-адресом для петельных устройств. Его
нельзя использовать в качестве сетевого
адреса в ЛВС. Он зарезервирован только для
технических целей.
Конфигурирование с помощью
программы ifconfig позволяет
модифицировать различные параметры
сетевых устройств. Вначале следует указать
интерфейс, который будет конфигурироваться.
Затем можно указать семейство адресов ( aftype ).
Семейство адресов используется для
отображения и декодирования всех адресов
протоколов в ifconfig. В
табл. 3.1 представлены все возможные
семейства адресов.
| Семейство адресов | Описание |
|---|---|
inet |
TCP/IP (семейство по умолчанию) |
inet6 |
IP версии 6 |
ax25 |
пакетные радиосети AMPR |
|
AppleTalk Phase 2 |
ipx |
Novell IPX |
netrom |
пакетные радиосети AMPR |
Если ни одно из семейств адресов
не указано, то по умолчанию принимается
семейство inet.
После семейства адресов при использовании ifconfig
можно указывать другие параметры. В табл. 3.2
представлен список параметров, которые
можно задавать в ifconfig.
| Параметр | Описание |
|---|---|
interface |
Указывает устройство для модификации |
up |
Переводит интерфейс в активное состояние |
down |
Переводит интерфейс в пассивное состояние |
[-]arp |
Разрешает (запрещает) использование протокола ARP |
[-]promisc |
Разрешает (запрещает) использование случайного режима |
[-]allmulti |
Разрешает (запрещает) использование циркулярной передачи |
metric N |
Определяет метрику для маршрутизации интерфейса |
mtu N |
Определяет максимальный размер передаваемого блока |
dstaddr |
Указывает IP-адрес пункта назначения при соединении "точка-точка" |
netmask addr |
Устанавливает маску подсети |
add addr/prefixlen |
Назначает IP-адрес версии 6 интерфейсу |
del addr/prefixlen |
Удаляет IP-адрес версии 6, назначенный интерфейсу |
tunnel a.b.c.d |
Создает новое |
irq addr |
Назначает устройству адрес прерывания IRQ |
io_addr addr |
Назначает устройству адрес ввода-вывода |
mem_start addr |
Задает устройству начальный адрес в памяти с совместным доступом |
media type |
Определяет тип физической среды, используемой устройством |
[-]broadcast [addr] |
Устанавливает широковещательный IP-адрес или устанавливает (либо очищает) широковещательный флажок для интерфейса |
[-]pointtopoint [addr] |
Разрешает (запрещает) режим обмена данными типа "точка-точка" IP-адресом пункта назначения addr |
hw class addr |
Устанавливает класс оборудования и адрес для устройства |
multicast |
Устанавливает флажок циркулярной передачи |
address |
Задает устройству IP-адрес |
txqueuelen length |
Устанавливает длину очереди передачи для устройства |
Как видно из табл. 3.2, при
конфигурировании сетевого устройства в
программе ifconfig можно
задавать множество различных параметров. В
одной командной строке можно задавать
несколько параметров.
Формат команды ifconfig
Программа ifconfig использует формат
немного отличающийся от того, к которому вы,
вероятно, привыкли. Заметьте, что все
параметры указаны без традиционного дефиса
перед ними ( - ).
С помощью ifconfig
в системе на базе ОС Linux необходимо
правильно сконфигурировать аппаратные
параметры сетевого адаптера, чтобы он был
опознан операционной системой. Если для
этой цели в сетевом адаптере используются
перемычки (иногда их называют джамперами от
англ.
Команда ifconfig,
задаваемая в командной строке, выглядит
примерно так:
ifconfig eth0 irq 9 io_addr 0x310
Указанная команда устанавливает
устройство /dev/eth0
как сетевой адаптер с прерыванием IRQ 9 и
базовым адресом ввода-вывода 310
(десятичное число). После того как эта
команда введена из командной строки, для
сетевого устройства в таблице ядра
создается запись, и система Linux обнаружит
сетевой адаптер. Для того чтобы система Linux
"запомнила" эти установки, данная команда
должна включаться в файл сценария
начальной загрузки, как это было описано
выше.
После того как аппаратные параметры были сконфигурированы, системе Linux для нормальной работы по сети требуется IP-адрес и маска подсети.
С помощью программы ifconfig можно назначить IP-адрес и маску подсети определенному интерфейсу. Вот пример такой команды:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
Этой командой назначается IP-адрес 192.168.1.1 устройству /dev/eth0, с маской
подсети 255.255.255.0.
Чтобы убедиться в том, что IP-адреса
назначены интерфейсам, просто наберите в
командной строке ifconfig
без параметров. При этом будет представлена
обновленная информация о сетевых
интерфейсах.
Итак, для системы на базе ОС Linux,
чтобы использовать аппаратные параметры
при последующих загрузках, необходимо
создать соответствующий сценарий загрузки
с командой ifconfig.
Не торопитесь писать собственный
сценарий для запуска программы ifconfig:
существует более легкий путь. В большинство
версий ОС Linux входит графическая оболочка X
Window, которая устраняет многие неудобства,
связанные с конфигурированием сетевых
интерфейсов и с написанием сценариев
загрузки. В Red Hat Linux и Mandrake Linux можно
использовать программу netcfg.
Те же самые функции в Caldera OpenLinux выполняет
Caldera Open Administrator System (COAS).
Формат команды netcfg
довольно прост:
netcfg
Да, это все. Нужно лишь помнить,
что при конфигурировании сетевых
интерфейсов вы должны обладать правами
пользователя root. На рис. 3.4 показано
главное окно программы netcfg.
(рис 3.4) Главное окно программы netcfgПервое окно, которое появляется
при вызове netcfg,
называется Имена (Names).
В этом окне вы можете изменить имя хоста,
домена и сервера DNS, ранее назначенные
системе. Системе могут назначаться
несколько серверов DNS. В ОС Linux можно
назначать до трех серверов имен.
Далее, щелкнув на кнопке Хосты (Hosts), можно вызвать окно, показанное на
рис. 3.5. В окне Хосты можно
изменять файл /etc/hosts
на сервере Linux. По умолчанию здесь
указываются адрес петли и локальный IP-адрес
сервера. Имя хоста localhost
является специальным для устройства типа "петля"
с IP-адресом 127.0.0.1.
Дополнительные имена хостов могут
добавляться из этого окна в файл /etc/hosts.
Если какие-нибудь имена хостов будут часто
использоваться клиентами вашей сети, можно
добавить их в файл /etc/hosts
для ускорения обработки DNS-запросов. В лекции 4, "DNS и доменные имена", функции файла /etc/hosts
описаны более подробно.
(рис 3.5) Окно Хосты программы netcfgЩелчком мыши на кнопке Интерфейсы (Interfaces) можно вызвать окно,
представленное на рис. 3.6. Окно Интерфейсы
позволяет добавлять, удалять и
редактировать сетевые интерфейсы в ОС Linux.
Первым в списке всегда выступает петельное
устройство. Щелчком мыши на кнопке Редактировать (Edit) выбранный интерфейс вызывается в
окно Редактировать
интерфейс Ethernet (Edit Ethernet/Bus Interface). В этом
окне устанавливается IP-адрес
и маска подсети для интерфейса. Здесь же
можно указать, нужно ли активировать данный
интерфейс при загрузке системы. Если в
вашей сети организовано автоматическое
распределение IP-адресов с помощью
протоколов ifcfg-eth0.
Более подробно его работа описана в разделе
"Конфигурирование сетевых адаптеров во
время начальной загрузки". Как видите,
настройка сетевых интерфейсов в X Window
намного легче, чем добавление сетевого
интерфейса вручную в файл сценария.
(рис 3.6) Окно "Интерфейсы" программы netcfg Для большинства серверов электронной почты на базе Linux модем сегодня является своеобразными воротами во внешний мир. Если имеется сервер электронной почты, подключенный к ЛВС, которая в свою очередь подключена к сети Internet, то вполне закономерно что для организации обмена электронной почтой потребуется подключение к провайдеру услуг сети Internet. Обычно такое соединение организуется с помощью модема. На сегодняшний день существует огромный выбор модемов. В этом разделе мы попытаемся рассказать, каким образом ОС Linux работает с модемными устройствами, и представим различные типы модемов, используемых с ОС Linux.
Сетевые администраторы знакомы с работой последовательных портов под управлением операционных систем Microsoft MS-DOS и Windows в IBM-совместимых ПК. Архитектура IBM-совместимых ПК поддерживает последовательные порты, известные как COM-порты. Эти порты нумеруются с первого по четвертый, и каждый из них имеет отдельное прерывание IRQ и свою пару адресов ввода-вывода.
ОС Linux обнаруживает СОМ-порты в
системе, но использует свою систему
нумерации. В ОС Linux они называются tty-устройствами.
Эти устройства находятся в /dev/ttySx,
где х обозначает
номер коммуникационного порта. К сожалению,
ОС Linux использует систему нумерации портов,
отличную от принятой компанией Microsoft. В ней
нумерация последовательных портов
начинается с 0, а не с 1. В табл. 3.3
приведена нумерация последовательных
портов в ОС Linux и в MS-DOS.
| MS-DOS | Linux | IRQ | Адрес ввода-вывода |
|---|---|---|---|
| COM 1 | ttyS0 | 4 | 0x3f8 |
| COM 2 | ttyS1 | 3 | 0x2f8 |
| COM 3 | ttyS2 | 4 | 0x3e8 |
| COM 4 | ttyS3 | 3 | 0x2e8 |
Мультипортовые платы
В ОС Linux также поддерживаются мультипортовые последовательные устройства. В таких платах совмещено несколько последовательных портов, которые могут совместно использовать одно прерывание IRQ. Для нормального функционирования они используют специальные программы-драйверы для разделения портов на плате. При использовании таких устройств ОС Linux выполняет нумерацию портов, начиная с ttyS4. Довольно часто этим устройствам требуются специальные драйверы для ядра Linux, которые обычно поставляются изготовителем мультипортовой платы.
В листинге 3.3 показаны устройства
ttyS x для стандартного IBM-совместимого
ПК под управлением Mandrake Linux с двумя СОМ
портами и модемом на порту СОМ4.
1 [alex@shadrach /dev]$ ls -al ttyS* 2 crw------- 1 root tty 4, 64 Nov 29 16:09 ttyS0 3 crw------- 1 root tty 4, 65 May 5 1998 ttyS1 4 crw------- 1 root tty 4, 66 May 5 1998 ttyS2 5 crw------- 1 root tty 4, 67 May 5 1998 ttyS3 6 [alex@shadrach /dev]$
Из листинга 3.3 видно, что, хотя в
данной системе используется только три СОМ-порта,
по умолчанию в операционной системе Linux
создаются записи для четырех основных
последовательных портов. Попытка
использовать устройство ttyS2
повлечет за собой появление ошибки.
В ОС Linux также поддерживается
набор зеркальных устройств с именами /dev/cuax для каждого устройства /dev/ttySx. Устройства
предназначены для того, чтобы упростить
создание управляющих программ. Устройства
позволяют прикладным программам
подключаться к портам, даже если не
представлен сигнал несущей (,
а устройства ttyS
предназначены только для входящих звонков.
Ниже в листинге 3.4 приведен список -устройств
для системы, рассмотренной в листинге 3.3, с
использованием Mandrake Linux.
[alex@shadrach /dev]$ ls -al cua* crw------- 1 root root 5, 64 May 5 1998 cua0 crw------- 1 root root 5, 65 May 5 1998 cua1 crw------- 1 root root 5, 66 May 5 1998 cua2 crw------- 1 root root 5, 67 May 5 1998 cua3 [alex@shadrach /dev]$
При одновременном использовании
программ для обслуживания исходящих и
входящих звонков возникает проблема с
блокировкой порта модема. Поэтому было
принято решение поддерживать разработку
управляющего программного обеспечения для
устройств ttyS. Это
оказалось намного легче, чем обслуживать
два различных имени устройств для одного и
того же физического устройства.
tty против cua
Избегайте использования
устройств , даже если они имеются в вашем
дистрибутиве ОС Linux. Многими программами
уже сегодня генерируется предупреждающее
сообщение, о прекращении поддержки
устройств с именем
в будущих ядрах ОС Linux. Лучше всего
обращаться к последовательным портам по
имени tty.
Еще одно специальное устройство,
с которым вам, возможно, придется иметь дело, —устройство /dev/modem. В принципе
это символическая связь с устройством ,
к которому подключен модем. Это устройство
призвано упростить обращение программ,
которым требуется работа с модемом, к
портам. Теперь таким программам нужно лишь
обратиться к стандартному устройству modem.
Большинство версий ОС Linux создают это
устройство еще при первой установке
системы. В Red Hat и Mandrake Linux, если вы хотите
установить модем позже, можно использовать
программу для среды X Window modemtool
для создания символической связи с
устройством /dev/modem.
На рис. 3.7 представлено окно программы modemtool.
(рис 3.7) Утилита modemtool Команда setserial
применяется для установки и настройки
отдельных последовательных портов в
системе на базе ОС Linux. Каждый порт,
используемый операционной системой Linux,
должен быть настроен командой setserial.
Как видно из листинга 3.3, по умолчанию в
системе на базе ОС Linux конфигурируются
четыре стандартных последовательных СОМ-порта.
Если имеющийся у вас модем использует
нестандартные прерывания IRQ и адреса ввода-вывода
или же используется мультипортовая плата,
то для правильного конфигурирования портов
в системе необходимо использовать
программу setserial.
Команда setserial
используется в двух форматах:
setserial [-abqvVW] device [parameter 1[arg] ] ... setserial -g [-abv] device ...
Опция -g
используется для запроса информации об
указанных в команде устройствах. В листинге
3.5 дается пример работы команды setserial
в ОС Linux.
1 [root@shadrach rich]$ /sbin/setserial -g /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 2 /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRO: 4 3 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3 4 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 5 /dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 3 6 [root@shadrach rich]$
В первой строке листинга 3.5
присутствует команда setserial с опцией -g,
с помощью которой на экран выводится
информация о конфигурации
последовательных портов. Запускать команду setserial следует
только с правами пользователя root. В строках
2–5 представлена информация о
последовательных портах для данной системы
на базе ОС Linux в ответ на запрос команды setserial.
В каждой строке представлена информация об
отдельном порте. Обратите внимание, что в
строке 4 не указан тип ttyS2, так как
этот порт не используется. Это может ввести
вас в заблуждение, поскольку порта просто
нет физически.
С помощью одной или нескольких
опций, введенных в командной строке с
командой setserial,
можно управлять выводом информации на
экран. По умолчанию вывод на экран с помощью
команды setserial
производится с опцией -v,
как это показано в листинге 3.5. Если задать
опцию -b, то
выводятся обобщенные данные. Например:
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A.
Здесь та же информация
представлена в компактном виде. Опция -a
используется для получения подробного
отчета о конфигурации порта. Например:
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000, closing_wait2: infinite Flags: spd_normal skip_test auto_irq session_lockout.
Опция -a
отображает значения всех параметров,
используемых операционной системой Linux для
управления портом. Все эти параметры можно
устанавливать, задавая команду setserial
в первом формате, как было показано выше. В
табл. 3.4 приведены параметры, которые
можно изменять с помощью команды setserial.
| Параметр | Описание |
port N |
Задает устройству номер порта ввода-вывода |
irq N |
Задает устройству номер прерывания IRQ |
|
Задает устройству тип порта |
autoconfigure |
Автоматическое назначение параметров последовательному устройству |
auto_irq |
Автоматически определить номер прерывания IRQ для последовательного устройства |
^auto_irq |
Не пытаться автоматически определять номер прерывания IRQ для последовательного устройства во время автоконфигурирования |
skip_test |
Пропустить тестирование |
^ skip_test |
Не пропускать тестирование |
baud_base |
Установить базовую скорость передачи для порта (как правило, тактовая частота, деленная на 16) |
spd_hi |
Работать со скоростью 57600 бит/с при запросе приложением 38400 бит/с |
spd_vhi |
Работать со скоростью 115200 бит/с при запросе приложением 38400 бит/с |
spd_cust |
Использовать наибольший общий делитель при запросе приложением 38400 бит/с; установить baud_base, деленное на делитель |
spd_normal |
Работать со скоростью 38400 бит/с при запросе приложением 38400 бит/с |
|
Устанавливает значение spd_cust |
sak |
Использовать клавишу "Break" в качестве секретной |
^sak |
Запретить использование клавиши "Break" в качестве секретной |
fourport |
Конфигурировать устройство в качестве адаптера (платы) AST Fourport |
^fourport |
Запретить конфигурировать устройство в качестве адаптера (платы) AST Fourport |
close_delay D |
Устанавливает интервал времени, в течение которого сигнал 50 ) |
closing_wait D |
Устанавливает интервал времени, в течение которого ядро должно ожидать пока данные поступят с последовательного порта после его закрытия, перед тем как приемник будет отключен, в сотых долях секунды. Отсутствует значение по умолчанию, ожидать до бесконечности |
closing_wait2 D |
Устанавливает интервал времени, в течение которого ядро должно ожидать пока данные поступят с последовательного порта после его закрытия, после того как приемник будет отключен, в сотых долях секунды. По умолчанию 30 |
session_lockouot |
Блокировать доступ к порту другим сеансам на время установки исходящего соединения ( |
^session_lockouot |
Не блокировать доступ к порту другим сеансам на время установки исходящего соединения |
pgrp_lockout |
Блокировать доступ к порту другим процессам на время установки исходящего соединения |
^pgrp_lockout |
Не блокировать доступ к порту другим процессам на время установки исходящего соединения |
hup_notify |
Посылать уведомление о том, что процесс ожидает установки исходящего соединения |
^hup_notify |
Не посылать уведомление о том, что процесс ожидает установки исходящего соединения |
split_termios |
Воспринимать параметры портов для входящих и исходящих соединений отдельно |
^split_termios |
Не воспринимать параметры портов для входящих и исходящих соединений отдельно |
callout_nohup |
Если порт открыт для исходящего соединения, не класть трубку при пропадании несущей |
^callout_nohup |
Если порт открыт для исходящего соединения, класть трубку при пропадании несущей |
Команде setserial
всегда нужно задавать устройство, с которым
она будет работать. Если используются
значения адресов ввода-вывода и номера
прерывания IRQ по умолчанию, то их можно не
указывать в командной строке. Далее все
параметры можно вводить в командной строке
в произвольном порядке. Например:
setserial /dev/ttyS3 autoconfigure auto_irq skip_test
Этой строкой мы пытаемся автоматически сконфигурировать последовательный порт СОМ4.
Сценарии для setserial
Так же, как и в случае программы ifconfig,
все настройки, сделанные программой setserial, при перезагрузке ядра
ОС Linux стираются. Таким образом, команду setserial
следует выполнять для
каждого СОМ-порта в системе при каждой
загрузке. Так как это довольно важная
функция, то большинство распространителей
ОС Linux включают в свои версии сценарии для
выполнения команды setserial
в процессе загрузки системы.
По умолчанию сценарии для setserial
находятся в файле /etc/rc.d/rc.setserial.
В большинство версий ОС Linux входит
обобщенная версия этого сценария, которую
затем можно конфигурировать под
определенный сервер. В этом сценарии
имеется много строк для специфических
ситуаций, таких как, например,
мультипортовые платы и специальные
модемные платы. В листинге 3.6 показан пример
сценария из файла rc.serial.
1 STD_FLAGS="session_lockout"
2 SETSERIAL=/sbin/setserial
3 WILD=false
4 SUMMARY=true
5
6 echo -n "Configuring serial ports...."
8 #################################################
9 #
10 # AUTOMATIC CONFIGURATION
11 #
12 # Uncomment the appropriate lines below to enable
13 # auto-configuration of a particular board.
14 #Or comment them out to disable them....
15 ################################################
16
17 # Do AUTOMATIC_IRQ probing
18 #
19 AUTO_IRQ=auto_irq
20
21 # These are the standard COM1 through COM4 devices
22 #
23 SetSerial /dev/ttyS0 ${AUTO_IRQ} skip_test autoconfig ${STD_FLAGS}
24 SetSerial /dev/ttyS1 ${AUTO_IRQ} skip_test autoconfig ${STD_FLAGS}
25 SetSerial /dev/ttyS2 ${AUTO_IRQ} skip_test autoconfig ${STD_FLAGS}
26 SetSerial /dev/ttyS3 ${AUTO_IRQ} autoconfig ${STD_FLAGS}
27
28 ###################################################
29 #
30 # MANUAL CONFIGURATION
31 #
32 # If you want to do manual configuration of one
33 # or more of your serial ports, uncomment
34 #and modify the relevant lines.
35 #
36 ###################################################
37
38 # These are the stahdard COM1 through COM4 devices
39 #
40 #SetSerial /dev/ttyS0 uart 16450 port 0x3F8 irq 4 ${STD_FLAGS}
41 #SetSerial /dev/ttyS1 uart 16450 port 0x2F8 irq 3 ${STD_FLAGS}
42 #SetSerial /dev/ttyS2 uart 16450 port 0x3E8 irq 4 ${STD_FLAGS}
43 #SetSerial /dev/ttyS3 uart 16450 port 0x2E8 irq 3 ${STD_FLASS}
44
45 echo "done."
46 ##################################################
47 #
48 # Print the results of the serial configuration process
49 #
50 ##################################################
51
52 if [ -n "$SUMMARY" ]; then
53 SetSerlal -bg /dev/ttyS?
54
55 if [ '/dev/ttyS??' != /dev/ttyS?? ]; then
56 SetSerial -bg /dev/ttyS??
57 fi
58 fi
Итак, в листинге 3.6 в строках с 23
по 26 команда setserial пытается
автоматически обнаружить и
сконфигурировать четыре последовательных
порта на сервере. Если по каким-либо
причинам вы не желаете, чтобы производилось
автоматическое обнаружение портов, просто
закомментируйте эти строки и уберите знаки
комментария со строк 39–42. В этих строках
команде setserial указывается
использовать специальное прерывание IRQ и
адрес ввода-вывода для каждого
последовательного порта. Если же в системе
используется модем с нестандартными
номером прерывания IRQ и адресами ввода-вывода,
то можно установить соответствующие
параметры в команде setserial.
На сегодняшний день на рынке предлагается огромное количество различных модемов, которые могут работать с ОС Linux. Однако следует проявить осторожность, так как довольно много модемов пока не могут работать с этой операционной системой. Выбирая модем, помните, что вы балансируете между гладкой и быстрой его установкой и ночным кошмаром для администратора. В этом разделе мы постараемся описать, на что необходимо обращать внимание при покупке нового модема или при попытке установить в ОС Linux один из модемов, который достался вам в наследство от умершей бабушки.
В ОС Linux лучше всего использовать стандартные внешние модемы. Модемы этого типа подключаются к серверу на базе ОС Linux через последовательный СОМ-порт посредством стандартного 9- или 25-контактного модемного кабеля, который можно приобрести в любом компьютерном магазине. На момент выхода курса текущим стандартом для модемов является протокол V.90, который позволяет работать модемам на скорости 56 Кбит/с. К сожалению, в реальных условиях эта скорость достигается очень редко. Скорость 56 Кбит/с достигается применением специальных алгоритмов сжатия данных и модуляции сигналов. В обычных линиях связи, предназначенных для передачи речи, качество сигнала недостаточно для работы на таких высоких скоростях. Поэтому модемы, рассчитанные на 56 Кбит/с, работают обычно на скорости 38,4 Кбит/с. Тем не менее использование протокола V.90 оправдано хотя бы с точки зрения использования его возможностей по коррекции ошибок.
Если используются высокоскоростные модемы, то с помощью внутренних регистров модема можно установить скорость его работы. Если скорость не определена, модем пытается соединиться с сервером на той же скорости, что и удаленный модем, которая, однако, может варьироваться. Это зависит от качества конкретной телефонной линии и удаленного модема. Установив скорость обмена модема с портом 115200 бит/с, можно настроить последовательный порт в ОС Linux со стандартными параметрами. Об этом более подробно далее в этой лекции.
Внутренние модемы намного сложнее в работе по сравнению со своими внешними собратьями. В использовании внутренних модемов с операционной системой Linux имеется много "подводных камней". Во-первых, следует напрочь избегать модемов, маркированных как WinModem или совместимых с ними. Эти модемы специально разработаны для использования с операционными системами Microsoft Windows 95 и 98. В комплект их поставки не входит стандартный аппаратный интерфейс и, соответственно, они не будут работать с ОС Linux. Их принцип работы основан на специальном программном обеспечении, адаптированном для среды Windows 95-98.
Модемы PCI — еще одна головная боль. Дело в том, что архитектура системной шины PCI позволяет устройствам автоматически конфигурироваться в процессе загрузки системы. В зависимости от установленных в системе устройств, каждое из них может запросить при очередной загрузке системы любое свободное прерывание IRQ и адрес порта ввода-вывода. К моменту выхода курса в ядре Linux версии 2.2 еще не была реализована поддержка модемов на шине PCI. Однако в настоящее время в сообществе потребителей ОС Linux ходят упорные слухи, что уже в следующую версию ядра эта поддержка будет включена. Если новая версия ядра уже доступна, то можно проверить, насколько эти слухи верны.
А пока, если в системе имеется
модем на шине PCI, можно попытаться заставить
его работать с Linux вручную. В процессе
загрузки системы параметры устройств на
шине PCI отображаются базовой системой ввода-вывода
BIOS. Посмотрите, какое прерывание
назначается во время загрузки вашему
модему, и вручную запустите программу setserial
с соответствующим значением прерывания.
Хотя этот метод и не совсем корректен, он
должен сработать.
Обычные внутренние модемы, предназначенные для работы с шиной ISA, работают с ОС Linux вполне нормально. Чаще всего у них имеется набор перемычек для установки их на определенный СОМ-порт. Помните, что не следует использовать СОМ-порт, который уже используется в качестве внешнего порта. Также будьте осторожны, если к этому же последовательному порту подключены другие устройства. Все они могут быть восприняты как модем на одном и том же порту. Довольно часто можно столкнуться с тем, что на порту СОМ1 имеется устройство-указатель (манипулятор "мышь"). Помните, что порт СОМ1 использует то же прерывание, что и порт СОМ3 (см. табл. 3.3). Если установить внутренний модем на порт СОМ3, то вполне можно лишиться мыши, так как вы не сможете одновременно использовать их на одном и том же прерывании. Чтобы избежать этого конфликта, поставьте модем на порт СОМ4. Конечно, если на порту СОМ2 уже имеется какое-либо устройство, то это не решение проблемы. Все эти проблемы подводят вас к использованию нестандартной конфигурации для последовательных портов. Вам нужно подобрать прерывание, которое не используется никакими другими устройствами в системе. Для этой цели в большинстве случаев подходят прерывания 9, 10 и 11.
Одна из необычных технологий в IBM-совместимых
ПК — использование устройств plug-and-play для
Однако существует несколько
программных утилит, которые могут помочь
вам. С целью конфигурирования модемов isapnp может
считывать конфигурационный файл, который
определяет все устройства pnpdump
может запросить все необходимые параметры
и создать файл конфигурации автоматически.
Формат pnpdump:
pnpdump [ -- config] [ --script [=outputfile] ][ --reset] [-- ignoresum ] [ -- showmasks] [ -- dumpregs] [ [ devs ] readport ]
По умолчанию программа pnpdump
сканирует все pnpdump сбрасывает
все внутренние номера плат devs,
задаваемый в командной строке, определяет
количество устройств, сканируемых
программой pnpdump. При
этом платы readport.
По умолчанию pnpdump
отображает также ресурсы, используемые
платами --config, вы даете, по сути, команду программе pnpdump на создание
конфигурационного файла, который затем
программа isapnp может
использовать для настройки модема pnpdump -- config.
1 # $Id: pnpdump.c,v 1.16 1998/10/09 22:19:06 fox Exp $
2 # This is free software, see the sources for details.
3 # This software has NO WARRANTY, use at your OWN RISK
4 #
5 # For details of this file format, see isapnp.conf(5)
6 #
7 # For latest information on isapnp and pnpdump see:
8 # http://www.roestock.demon.co.uk/isapnptools/
9 #
10 # Compiler flags: -DREALTIME
11 #
12 #Trying port address 0203
13 # Board 1 has serial identifier 5b 10 0d 6a 0e 24 00 8c 0e
14 # Board 2 has serial identifier c5 00 00 11 11 01 00 36 10
15 #
16 # (DEBUG)
17 (READPORT 0x0203)
18 (ISOLATE PRESERVE)
19 (IDENTIFY *)
20 (VERBOSITY 2)
21 (CONFLICT (I0 FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
22
23 #Card 2: (serial identifier c5 00 00 11 11 01 00 36 10)
24 # Vendor Id DAV0001, Serial Number 4369, checksum 0xC5.
25 # Version 1.0, Vendor version 1.0
26 # ANSI string -->DAVICOM 336PNP MODEM<--
27 #
28 # Logical device id DAV0336
29 # Device support I/O range check register
30 # Device supports vendor reserved register @ 0x39
31 # Device supports vendor reserved register @ 0x3a
32 # Device supports vendor reserved register @ 0x3d
33 #
34 # Edit the entries below to uncomment out the configuration required.
35 # Note that only the first value of any range is given, this may be changed
36 #if required. Don't forget to uncomment the activate (ACT Y) when happy
37
38 (CONFIGURE DAV0001/4369 (LD 0
39
40 #Multiple choice time, choose one only
41
42 # Start dependent functions: priority acceptable
43 # Logical device decodes 16 bit 10 address lines
44 # Minimum I0 base address 0x02f8
45 # Maximum I0 base address 0x02f8
46 # I0 base alignment 8 bytes
47 # Number of I0 addresses required: 8
48 (I0 0 (SIZE 8) (BASE 0x02f8))
49 # IRQ 3.
50 # High true, edge sensitive interrupt (by default)
51 [INT 0 (IRQ 3 (MODE +E)))
52
53 (NAME "DAV0001/4369[0]{DAVICOM 336PNP MODEM}")
54
55 # End dependent functions
56 (ACT Y)
57 ))
58 # End tag... Checksum 0x00 (OK)
59
60 # Returns all cards to the "Wait for Key" state
61 (WAITFORKEY)
В листинге 3.7 представлена лишь
часть файла, генерируемого pnpdump.
Программа pnpdump
генерирует все возможные комбинации
настроек, но оставляет активными лишь те,
которые, с ее точки зрения, наилучшим
образом подходят для данной pnpdump
могут перенаправляться в файл, где хранятся
настройки
pnpdump -- config > /etc/isapnp.conf
Именно в файле /etc/isapnp.conf
программа isapnp
попытается получить конфигурационную
информацию, если не указан какой-либо
другой файл. После того как
конфигурационный файл создан, запускается
программа isapnp. Формат
команды isapnp
следующий:
isapnp conffile,
где conffile —
альтернативный путь к файлу конфигурации.
После запуска в системе на базе ОС Linux
программа isapnp должна
обнаружить модем setserial
для порта, к которому привязан
Подобно работе программы setserial,
вся информация, которая генерируется
программой isapnp,
помещается в таблицы ядра ОС Linux и теряется
при перезагрузке системы. Эта проблема
может быть решена запуском
соответствующего сценария во время
загрузки. В большинстве случаев в ОС Linux
программа isapnp
запускается при наличии файла /etc/isapnp.conf.
Помните, что программа setserial
должна запускаться уже после выполнения
программы isapnp для того,
чтобы соответствующим образом
сконфигурировать последовательный порт с
целью использования
Технология ISDN доступна уже на протяжении нескольких лет, однако все это время она применялась не слишком активно. Сегодня ситуация в корне изменилась. По мере роста числа пользователей сети Internet и ужесточения требований к полосе пропускания модемы ISDN стали популярны среди сервис-провайдеров Internet и организаций, нуждающихся в высокоскоростном доступе к этой сети.
Модемы ISDN могут организовывать два цифровых канала передачи данных со скоростью 64 Кбит/с. Эти каналы можно объединить, получив один канал со скоростью обмена данными 128 Кбит/с. Такое решение является идеальным для небольших организаций, которым требуются такие возможности сети Internet, как доступ к Web, обмен файлами и электронной почтой.
Поддержка модемов ISDN в ОС Linux появилась относительно недавно и еще находится в процессе развития. В версию ядра Linux (2.2), последнюю доступную на момент выхода этого курса, включена базовая поддержка модемов ISDN. Ожидается, что в последующие версии ядра будет добавлено больше функций по поддержке ISDN. Разработки по развитию поддержки ISDN в ОС Linux велись главным образом в Германии. Группа разработчиков SuSe Linux предложила набор утилит ISDN4Linux, который помогает в установке и настройке модема ISDN на сервере под управлением ОС Linux. В табл. 3.5 представлен перечень утилит из набора ISDN4Linux.
| Название утилиты | Описание |
isdnctrlv |
Общая утилита для настройки соединения |
iprofd |
Демон для выполнения команды ATW0 на устройствах ttyI |
icnctrl |
Утилита для установки драйвера icn |
telesctrl |
Утилита для установки драйвера teles |
hisaxcrtl |
Утилита для установки драйвера HiSax |
pcbitctrl |
Утилита для установки драйвера pcbit |
avmcapictrl |
Утилита для установки драйвера avmb1 |
actctrl |
Утилита для установки драйвера act2000 |
eiconctrl |
Утилита для установки драйвера eicon |
divertctrl |
Утилита для установки служб dss1 |
imon |
Утилита для мониторинга на базе Ncurse |
imontty |
Утилита для мониторинга на базе tty |
isdnlog |
Протоколирование работы по ISDN-соединению |
ipppstats |
Утилита для сбора статистики по синхронному PPP- соединению |
xisdnload |
xload-подобный монитор |
isdnmon |
Утилита для мониторинга на базе Tcl/Tk |
vbox |
Автоответчик + голосовой почтовый ящик |
ipppd |
Демон, необходимый для работы по синхронному PPP и MPP |
С набором утилит ISDN4Linux предоставляются несколько документов, в которых подробно описан процесс установки и настройки модемов ISDN в системах на базе ОС Linux. Так как поддержка ISDN в ОС Linux находится еще на стадии становления, то, несомненно, следует ожидает ее расширения в последующих версиях ОС Linux.
После того как последовательный
порт сконфигурирован для использования
модемом, система Linux должна запустить
специальную программу для мониторинга
телефонной линии, наблюдающую за
состоянием линии и определяющую,
используется ли она каким-либо устройством.
Для управления работой последовательного
порта в ОС Linux существует несколько
программ, но чаще всего для этой цели
используется программа getty.
Программа getty позволяет
модему осуществлять как исходящие звонки,
так и принимать входящие звонки. При
установке входящего соединения она
инициирует прием входящего звонка и
передает управление программе login,
с помощью которой производится проверка
пароля и идентификатора, введенных
удаленным пользователем.
Формат команды getty:
getty [ -d defaults_file ] [ -a ] [ -h ] [ -r delay ] [-t timeout] [-w waitfor] line [speed [type [lined]]]
Обычно программа getty
запускается программой init
для управления работой модемных соединений.
Чтобы программа getty
запускалась, она должна быть прописана в
файле /etc/inittab.
Файл inittab
содержит список программ, которые должны
запускаться процессом init
после загрузки системы. Формат строки для
файла inittab
следующий:
s1:345:respawn:/sbin/getty ttyS0 38400 vt100
Первое поле — это уникальная
метка, идентифицирующая точку входа для
программы getty в файле inittab.
Во втором поле указываются уровни запуска init,
на которых может выполняться данная
программа. В нашем случае getty
может выполняться на 3, 4 и 5 уровнях. В
третьем поле содержится информация для
программы init о режиме
запуска программы. Ключевое слово respawn
говорит программе init о
том, что при внезапном останове программы getty ее следует перезапустить. Это
необходимо, так как getty
должна наблюдать за состоянием модема
после завершения сеанса связи.
В четвертом поле следует команда getty
с параметрами. В нашем примере
программой getty
производится мониторинг устройства /dev/ttyS0
(порт СОМ1), которому устанавливается
скорость getty может
выдавать приветственное сообщение. Как раз
для правильного форматирования
приветственного сообщения и служит
параметр типа эмулируемого терминала.
Для связи сервера на базе ОС Linux с
другими хостами и рабочими станциями
следует установить соответствующее
телекоммуникационное оборудование. Для
взаимодействия с рабочими станциями в
пределах локальной вычислительной сети на
сервере нужно установить и
сконфигурировать сетевой интерфейсный
адаптер Ethernet. Чтобы задать соответствующие
настройки IP для сетевого адаптера, можно
использовать программу ifconfig.
Имеются также различные программы для
графической среды X-Window, с помощью которых
также можно сконфигурировать сетевой
адаптер. Например, в Red Hat- и Mandrake-версиях ОС
Linux для этой цели можно использовать
программу netcfg. Для
соединения сервера электронной почты с
провайдером услуг сети Internet требуется
наличие модема. С серверами на базе ОС Linux
могут работать различные типы модемов.
Внешние модемы с протоколом V.90 наиболее
удобны в настройке и работе, но их
использование в системе с ОС Linux возможно
только при наличии по крайней мере одного
свободного СОМ-порта. С ОС Linux можно также
использовать стандартные внутренние
модемы для isapnp может
использоваться также при настройке модемов
plug-and-play для setserial,
которая осуществляет настройку порта для
использования определенным устройством.
После того как ОС Linux обнаружит это
устройство, для управления установкой
входящих и исходящих соединений
запускается программа getty.
В этой лекции
Сервер электронной почты абсолютно бесполезен, если он не может общаться с другими серверами и клиентскими рабочими станциями. Для связи с внешним миром в почтовом сервере на базе ОС Linux используется два типа телекоммуникационных устройств.
Прежде всего почтовый сервер на базе ОС Linux должен установить соединение по протоколу IP с провайдером услуг сети Internet (ISP), чтобы производить обмен электронной почтой с Internet. Для установления последовательного соединения с провайдером используется модем. После того как соединение установлено, сервер электронной почты на базе ОС Linux для приема/передачи IP-пакетов может использовать протокол РРР (Point-to-Point Protocol). Более подробно это описано в лекции 8, "Протокол РРР".
Помимо Internet-соединения, сервер
электронной почты должен каким-то образом
передавать почту на рабочие станции и
давать им возможность отсылать почту в Internet.
Самое простое решение — подключить
почтовый сервер к локальной вычислительной
сети вашего офиса. В небольших офисах можно
организовать локальную вычислительную
сеть (ЛВС) несколькими способами.
Наибольшую популярность в последнее время
приобрела технология ЛВС — Ethernet.
Технология Ethernet позволяет объединять
рабочие станции в сеть со скоростью 10 или 100
Мбит/с с помощью интерфейсных сетевых карт (Network
В этой лекции обсуждаются вопросы конфигурирования сервера электронной почты для работы и с рабочими станциями в ЛВС, и с провайдером Internet. В начале лекции дается краткий обзор телекоммуникационных устройств, которые могут работать в ОС Linux. Затем описывается процесс установки и настройки сетевых адаптеров. В конце лекции обсуждается алгоритм установки и настройки различных типов модемов.
Модемы и интерфейсные сетевые карты — это аппаратные телекоммуникационные устройства, подключаемые к ПК (часто с использованием слотов на материнской плате). Вначале эти устройства должны быть опознаны операционной системой Linux, в противном случае они могут работать некорректно. Для нормального функционирования этих устройств в ОС Linux необходимы специальные драйверы и программное обеспечение. На рис. 3.1 представлено программное и аппаратное обеспечение, необходимое для нормальной работы телекоммуникационных устройств.
(рис 3.1) Уровни работы телекоммуникационных устройствКак видно из рис. 3.1, каждое телекоммуникационное устройство должно взаимодействовать с ядром ОС Linux. Как было сказано в предыдущей лекции, ядро отвечает за управление интерфейсами, которые назначаются телекоммуникационным устройствам. Как правило, это достигается с помощью загружаемых драйверов, которые называются модулями. Эти модули можно устанавливать при загрузке системы с помощью механизма сценариев. В свою очередь, ядру должны быть известны все параметры устройств в системе, чтобы оно могло работать с ними корректно.
После того как ядро системы обнаружило и сконфигурировало телекоммуникационные устройства, должна быть обеспечена возможность доступа к устройству, соответствующему программному обеспечению. Если же речь идет о сервере электронной почты, то программное обеспечение должно соответствовать протоколу TCP/IP.
Программное обеспечение TCP/IP для ОС Linux позволяет прикладным программам посылать пакеты TCP/IP через сетевой адаптер и модем удаленным устройствам на основе IP-адресов. Для нормальной работы стека протоколов TCP/IP необходим определенный набор параметров IP. Наиболее важными для организации IP-соединения являются:
IP-адрес является уникальным идентификатором почтового сервера на базе ОС Linux в IP-сети офиса. Маска подсети определяет размер IP-сети офиса. Это позволяет почтовому серверу правильно определять время пересылки IP-пакетов на маршрутизатор для дальнейшей их отправки удаленным узлам. Маршрутизатор обычно используется сервером электронной почты для передачи пакетов удаленным узлам.
Последним параметром для нормальной работы почтового сервера на базе ОС Linux является настройка сервера системы доменных имен — DNS. Адресация в сетях IP основана на числовых адресах. Система доменных имен DNS сопоставляет IP-адреса с символьными именами хостов. Благодаря этому пользователи и программы работают с пространством имен хостов, а не с длинной последовательностью чисел, представляющей IP-адрес. Сервер DNS возвращает IP-адрес на заданное имя хоста.
В следующем разделе описывается процесс установки и настройки сетевых адаптеров на почтовом сервере под управлением ОС Linux.
Операционной системой Linux поддерживается огромное количество различных сетевых адаптеров. Большинство дистрибутивов Linux при установке автоматически определяют установленный сетевой адаптер и соответствующим образом изменяет ядро. Если же сетевой адаптер устанавливается на систему с уже установленной ОС Linux, то придется сконфигурировать его в ядре вручную.
Для установки и настройки
сетевых адаптеров вручную в системе Linux
применяется программа ifconfig.
В некоторые дистрибутивы ОС Linux входит
графическая оболочка X Window, с помощью
которой установка параметров программы ifconfig
несколько облегчается. В Red Hat и Mandrake Linux для
настройки установленных сетевых адаптеров
используется программа netcfg.
В этом разделе будет рассмотрена
работа программы ifconfig
по обнаружению и настройке сетевых
адаптеров при начальной загрузке, а также
более подробно будет описана работа
программы netcfg.
После того как сетевой адаптер
был правильно настроен (вручную либо
автоматически), сервер на базе ОС Linux может
общаться с другими устройствами в офисной
локальной сети. Однако имеется одна
проблема: после перезагрузки сервера на Linux
вся информация о сетевом устройстве
теряется. Для внесения информации о сетевых
устройствах в специальную таблицу в ядре
применяется команда ifconfig.
Эта таблица создается в ядре при каждой
загрузке сервера на основе сценариев
конфигурации.
Программе ifconfig
требуется запустить в процессе загрузки
файл сценария, в котором задаются
необходимые команды ifconfig
для запуска сетевого адаптера. Во всех
версиях ОС Linux имеются файлы сценариев,
которые применяются при начальной загрузке
для запуска различных программ. К сожалению,
различные поставщики ОС Linux в своих
дистрибутивах используют различные методы
запуска для файлов сценариев. Так, в
дистрибутивах Linux Mandrake, Caldera и Red Hat
применяется метод init,
присущий системам UNIX Sys V, который мы здесь и
обсудим.
Метод инициализации Sys V довольно сложен и состоит из набора файлов сценариев. Сам процесс инициализации разделен на уровни запуска. На каждом уровне запуска выполняется набор файлов сценариев для инициализации определенных устройств, соответствующих данному уровню запуска. На рис. 3.2 дается обзор сценариев, используемых ОС Linux для загрузки конфигурационной информации об уровнях запуска в процессе начальной загрузки системы.
(рис 3.2) Процесс начальной загрузки в ОС LinuxКаталог /etc/rc.d
содержит сценарии, которые запускаются в
соответствии с уровнем запуска init в системе.
Как правило, сервер на базе Linux
функционирует либо на 3-м уровне запуска (в
режиме консоли), либо на 5-м уровне (в режиме X
Window). На том и другом уровнях запуска
используется один и тот же сценарий для
запуска сетевых устройств — S10network,
который находится в каталоге /etc/rc.d/rc3.d
или в /etc/rc.d/.
Сценарий S10network
запускает на сервере сетевые функции. Далее
им используется еще один сценарий — ifup,
который пытается запустить все возможные
сетевые интерфейсы, сконфигурированные в
процессе начальной загрузки. Сценарий ifup
находится в каталоге /etc/sysconfig/network-scripts.
Каждому сконфигурированному в ОС
Linux сетевому интерфейсу соответствует свой
файл в каталоге /etc/sysconfig/network-scripts.
Устройству /dev/eth0
соответствует файл ifcfg-eth0.
В листинге 3.1 показан пример файла,
созданного в ОС Linux для сетевого устройства eth0.
1 DEVICE=ethO 2 IPADDR=192.168.1.1 3 NETMASK=255.255.255.8 4 NETWORK=192.168.1.0 5 BROADCAST=158.18.1.255 6 ONBOOT=yes 7 BOOTPROTO=none
В файле ifcfg-eth0
описываются переменные окружения,
которые используются сценарием ifup
для запуска сетевых интерфейсов. Строка в
сценарии ifup,
которая обращается к этим переменным
выглядит примерно следующим образом:
ifconfig ${DEVICE} ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
Формат командной строки ifconfig
в сценарии ifup в
точности соответствует команде, вводимой
вручную из командной строки.
Если же вы вознамерились создать
собственный сценарий для нового сетевого
интерфейса, то он может и не быть столь
сложным и изощренным, как тот, что
генерируется в Red Hat Linux. Все, что вам нужно, —
это вписать необходимые строки ifconfig
для запуска сетевого интерфейса. Если имя
устройства и его IP-адрес известны, то вам не
придется использовать переменные
окружения и отдельно файлы конфигурации.
Достаточно лишь задать конфигурацию в
одной строке файла сценария S10network.
Программа ifconfig
является стандартной для операционной
системы Linux. Она используется для
идентификации и конфигурирования сетевых
устройств в системе Linux.
Эта программа может работать в двух режимах:
ifconfig [interface] ifconfig interface [aftype] options | address ...
Первый режим работы называется режимом отчета. Он позволяет администратору системы получать информацию о конфигурации от установленных сетевых устройств. Второй режим работы называется режимом конфигурирования. В нем системный администратор может устанавливать или изменять параметры конфигурации для сетевых устройств. Далее эти режимы рассмотрены более подробно.
В режиме отчета ifconfig
выводит информацию либо об одном сетевом
интерфейсе, либо обо всех имеющихся в
системе интерфейсах. Эта информация
включает в себя набор аппаратных и
программных параметров устройства, а также
данные о его текущем состоянии. Каждому
сетевому устройству для нормальной работы
требуется несколько параметров. На рис. 3.3
приведен пример сетевого устройства,
работающего в ОС Linux.
(рис 3.3) Компоненты сетевого устройстваКак видно из рис. 3.3, одним из наборов параметров сетевого устройства является набор для конфигурации аппаратных параметров. Аппаратное прерывание и базовый адрес ввода-вывода используются для идентификации сетевого адаптера в ОС Linux и должны быть уникальными. Еще один набор параметров — это программные параметры. Для нормальной работы ОС Linux в IP-сети, в ней должны быть правильно настроены параметры протокола IP. К ним относятся уникальный IP-адрес, маска подсети и широковещательный адрес для сети.
В листинге 3.2 приведен пример
работы команды ifconfig
в режиме отчета.
1 [alex@shadrach alex]$ /sbin/ifconfig 2 eth0 Link encap:Ethernet HWaddr 00:A0:24:9C:69:02 3 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 4 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 5 RX packets:7948525 errors:0 dropped:0 overruns:0 frame:0 6 TX packets:22003 errors:0 dropped:0 overruns:0 carrier:0 7 collisions:72 txqueuelen:180 8 Interrupt:11 Base address:0x8400 10 lo Link encap:Local Loopback 11 inet addr:l27.0.0.1 Mask:255.0.0.0 12 UP LOOPBACK RUNNING MTU:3924 Metric:1 13 RX packets:38 errors:0 dropped:0 overruns:0 frame:0 14 TX packets:38 errors:0 dropped:0 overruns:0 carrier:0 15 collisions:0 txqueuelen:0 16 17 [alex@shadrach alex]$
В строке 1 листинга 3.2 показана
команда ifconfig,
заданная в командной строке. Возможно,
понадобится указать полный путь для
выполнения этой команды, если вы находитесь
в системе не в качестве пользователя root.
Строки со второй по восьмую отображают
информацию о первом найденном в системе
сетевом устройстве. Первый сетевой адаптер
Ethernet обычно обозначается в системе как
устройство eth0. В
строке 2 показан аппаратный или как его еще
называют МАС-адрес сетевого адаптера.
Каждая сетевая карта имеет свой уникальный
МАС-адрес. Это позволяет устройствам
правильно идентифицировать другие
устройства в сети на уровне обмена пакетами
Ethernet. В строке 3 отображается IP-адрес
сетевого устройства. В нашем случае
сетевому адаптеру назначен IP-адрес 192.168.1.1
и маска подсети 255.255.255.0.
В строках 4–8 выдается
статистическая информация о сетевом
адаптере. Все приведенные здесь значения
часто бывают полезны при локализации
неисправностей, связанных с сетевым
адаптером. В строке 4 отображается общая
информация о состоянии сетевого устройства.
Если сетевое устройство работает нормально,
то в строке 4 Вы увидите сообщения UP
и RUNNING. Строки 5–7
также можно использовать при поиске
неисправностей. Если сетевой адаптер не
может работать с другими устройствами, но
при этом значения в счетчиках передачи TX
и приема RX
пакетов растут то, это означает, что сервер
все-таки подключен к сети, но, возможно,
неправильно указан его IP-адрес. Если
наблюдается большое количество ошибок и
столкновений (коллизий), то это верный
признак наличия проблемы, связанной с сетью
(поврежден кабель или сетевой концентратор
(хаб)).
В строках 10–15 отображается
информация о втором сетевом устройстве,
найденном в системе. Устройство lo
— это специальное устройство типа "петля". Устройство типа "петля"
используется в системе Linux для проверки
возможности связи операционной системы с
использованием стандартных сетевых
протоколов с самой собой. Адрес 127.0.0.1,
указанный в строке 11, является стандартным
IP-адресом для петельных устройств. Его
нельзя использовать в качестве сетевого
адреса в ЛВС. Он зарезервирован только для
технических целей.
Конфигурирование с помощью
программы ifconfig позволяет
модифицировать различные параметры
сетевых устройств. Вначале следует указать
интерфейс, который будет конфигурироваться.
Затем можно указать семейство адресов ( aftype ).
Семейство адресов используется для
отображения и декодирования всех адресов
протоколов в ifconfig. В
табл. 3.1 представлены все возможные
семейства адресов.
| Семейство адресов | Описание |
|---|---|
inet |
TCP/IP (семейство по умолчанию) |
inet6 |
IP версии 6 |
ax25 |
пакетные радиосети AMPR |
|
AppleTalk Phase 2 |
ipx |
Novell IPX |
netrom |
пакетные радиосети AMPR |
Если ни одно из семейств адресов
не указано, то по умолчанию принимается
семейство inet.
После семейства адресов при использовании ifconfig
можно указывать другие параметры. В табл. 3.2
представлен список параметров, которые
можно задавать в ifconfig.
| Параметр | Описание |
|---|---|
interface |
Указывает устройство для модификации |
up |
Переводит интерфейс в активное состояние |
down |
Переводит интерфейс в пассивное состояние |
[-]arp |
Разрешает (запрещает) использование протокола ARP |
[-]promisc |
Разрешает (запрещает) использование случайного режима |
[-]allmulti |
Разрешает (запрещает) использование циркулярной передачи |
metric N |
Определяет метрику для маршрутизации интерфейса |
mtu N |
Определяет максимальный размер передаваемого блока |
dstaddr |
Указывает IP-адрес пункта назначения при соединении "точка-точка" |
netmask addr |
Устанавливает маску подсети |
add addr/prefixlen |
Назначает IP-адрес версии 6 интерфейсу |
del addr/prefixlen |
Удаляет IP-адрес версии 6, назначенный интерфейсу |
tunnel a.b.c.d |
Создает новое |
irq addr |
Назначает устройству адрес прерывания IRQ |
io_addr addr |
Назначает устройству адрес ввода-вывода |
mem_start addr |
Задает устройству начальный адрес в памяти с совместным доступом |
media type |
Определяет тип физической среды, используемой устройством |
[-]broadcast [addr] |
Устанавливает широковещательный IP-адрес или устанавливает (либо очищает) широковещательный флажок для интерфейса |
[-]pointtopoint [addr] |
Разрешает (запрещает) режим обмена данными типа "точка-точка" IP-адресом пункта назначения addr |
hw class addr |
Устанавливает класс оборудования и адрес для устройства |
multicast |
Устанавливает флажок циркулярной передачи |
address |
Задает устройству IP-адрес |
txqueuelen length |
Устанавливает длину очереди передачи для устройства |
Как видно из табл. 3.2, при
конфигурировании сетевого устройства в
программе ifconfig можно
задавать множество различных параметров. В
одной командной строке можно задавать
несколько параметров.
Формат команды ifconfig
Программа ifconfig использует формат
немного отличающийся от того, к которому вы,
вероятно, привыкли. Заметьте, что все
параметры указаны без традиционного дефиса
перед ними ( - ).
С помощью ifconfig
в системе на базе ОС Linux необходимо
правильно сконфигурировать аппаратные
параметры сетевого адаптера, чтобы он был
опознан операционной системой. Если для
этой цели в сетевом адаптере используются
перемычки (иногда их называют джамперами от
англ.
Команда ifconfig,
задаваемая в командной строке, выглядит
примерно так:
ifconfig eth0 irq 9 io_addr 0x310
Указанная команда устанавливает
устройство /dev/eth0
как сетевой адаптер с прерыванием IRQ 9 и
базовым адресом ввода-вывода 310
(десятичное число). После того как эта
команда введена из командной строки, для
сетевого устройства в таблице ядра
создается запись, и система Linux обнаружит
сетевой адаптер. Для того чтобы система Linux
"запомнила" эти установки, данная команда
должна включаться в файл сценария
начальной загрузки, как это было описано
выше.
После того как аппаратные параметры были сконфигурированы, системе Linux для нормальной работы по сети требуется IP-адрес и маска подсети.
С помощью программы ifconfig можно назначить IP-адрес и маску подсети определенному интерфейсу. Вот пример такой команды:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
Этой командой назначается IP-адрес 192.168.1.1 устройству /dev/eth0, с маской
подсети 255.255.255.0.
Чтобы убедиться в том, что IP-адреса
назначены интерфейсам, просто наберите в
командной строке ifconfig
без параметров. При этом будет представлена
обновленная информация о сетевых
интерфейсах.
Итак, для системы на базе ОС Linux,
чтобы использовать аппаратные параметры
при последующих загрузках, необходимо
создать соответствующий сценарий загрузки
с командой ifconfig.
Не торопитесь писать собственный
сценарий для запуска программы ifconfig:
существует более легкий путь. В большинство
версий ОС Linux входит графическая оболочка X
Window, которая устраняет многие неудобства,
связанные с конфигурированием сетевых
интерфейсов и с написанием сценариев
загрузки. В Red Hat Linux и Mandrake Linux можно
использовать программу netcfg.
Те же самые функции в Caldera OpenLinux выполняет
Caldera Open Administrator System (COAS).
Формат команды netcfg
довольно прост:
netcfg
Да, это все. Нужно лишь помнить,
что при конфигурировании сетевых
интерфейсов вы должны обладать правами
пользователя root. На рис. 3.4 показано
главное окно программы netcfg.
(рис 3.4) Главное окно программы netcfgПервое окно, которое появляется
при вызове netcfg,
называется Имена (Names).
В этом окне вы можете изменить имя хоста,
домена и сервера DNS, ранее назначенные
системе. Системе могут назначаться
несколько серверов DNS. В ОС Linux можно
назначать до трех серверов имен.
Далее, щелкнув на кнопке Хосты (Hosts), можно вызвать окно, показанное на
рис. 3.5. В окне Хосты можно
изменять файл /etc/hosts
на сервере Linux. По умолчанию здесь
указываются адрес петли и локальный IP-адрес
сервера. Имя хоста localhost
является специальным для устройства типа "петля"
с IP-адресом 127.0.0.1.
Дополнительные имена хостов могут
добавляться из этого окна в файл /etc/hosts.
Если какие-нибудь имена хостов будут часто
использоваться клиентами вашей сети, можно
добавить их в файл /etc/hosts
для ускорения обработки DNS-запросов. В лекции 4, "DNS и доменные имена", функции файла /etc/hosts
описаны более подробно.
(рис 3.5) Окно Хосты программы netcfgЩелчком мыши на кнопке Интерфейсы (Interfaces) можно вызвать окно,
представленное на рис. 3.6. Окно Интерфейсы
позволяет добавлять, удалять и
редактировать сетевые интерфейсы в ОС Linux.
Первым в списке всегда выступает петельное
устройство. Щелчком мыши на кнопке Редактировать (Edit) выбранный интерфейс вызывается в
окно Редактировать
интерфейс Ethernet (Edit Ethernet/Bus Interface). В этом
окне устанавливается IP-адрес
и маска подсети для интерфейса. Здесь же
можно указать, нужно ли активировать данный
интерфейс при загрузке системы. Если в
вашей сети организовано автоматическое
распределение IP-адресов с помощью
протоколов ifcfg-eth0.
Более подробно его работа описана в разделе
"Конфигурирование сетевых адаптеров во
время начальной загрузки". Как видите,
настройка сетевых интерфейсов в X Window
намного легче, чем добавление сетевого
интерфейса вручную в файл сценария.
(рис 3.6) Окно "Интерфейсы" программы netcfgДля большинства серверов электронной почты на базе Linux модем сегодня является своеобразными воротами во внешний мир. Если имеется сервер электронной почты, подключенный к ЛВС, которая в свою очередь подключена к сети Internet, то вполне закономерно что для организации обмена электронной почтой потребуется подключение к провайдеру услуг сети Internet. Обычно такое соединение организуется с помощью модема. На сегодняшний день существует огромный выбор модемов. В этом разделе мы попытаемся рассказать, каким образом ОС Linux работает с модемными устройствами, и представим различные типы модемов, используемых с ОС Linux.
Сетевые администраторы знакомы с работой последовательных портов под управлением операционных систем Microsoft MS-DOS и Windows в IBM-совместимых ПК. Архитектура IBM-совместимых ПК поддерживает последовательные порты, известные как COM-порты. Эти порты нумеруются с первого по четвертый, и каждый из них имеет отдельное прерывание IRQ и свою пару адресов ввода-вывода.
ОС Linux обнаруживает СОМ-порты в
системе, но использует свою систему
нумерации. В ОС Linux они называются tty-устройствами.
Эти устройства находятся в /dev/ttySx,
где х обозначает
номер коммуникационного порта. К сожалению,
ОС Linux использует систему нумерации портов,
отличную от принятой компанией Microsoft. В ней
нумерация последовательных портов
начинается с 0, а не с 1. В табл. 3.3
приведена нумерация последовательных
портов в ОС Linux и в MS-DOS.
| MS-DOS | Linux | IRQ | Адрес ввода-вывода |
|---|---|---|---|
| COM 1 | ttyS0 | 4 | 0x3f8 |
| COM 2 | ttyS1 | 3 | 0x2f8 |
| COM 3 | ttyS2 | 4 | 0x3e8 |
| COM 4 | ttyS3 | 3 | 0x2e8 |
Мультипортовые платы
В ОС Linux также поддерживаются мультипортовые последовательные устройства. В таких платах совмещено несколько последовательных портов, которые могут совместно использовать одно прерывание IRQ. Для нормального функционирования они используют специальные программы-драйверы для разделения портов на плате. При использовании таких устройств ОС Linux выполняет нумерацию портов, начиная с ttyS4. Довольно часто этим устройствам требуются специальные драйверы для ядра Linux, которые обычно поставляются изготовителем мультипортовой платы.
В листинге 3.3 показаны устройства
ttyS x для стандартного IBM-совместимого
ПК под управлением Mandrake Linux с двумя СОМ
портами и модемом на порту СОМ4.
1 [alex@shadrach /dev]$ ls -al ttyS* 2 crw------- 1 root tty 4, 64 Nov 29 16:09 ttyS0 3 crw------- 1 root tty 4, 65 May 5 1998 ttyS1 4 crw------- 1 root tty 4, 66 May 5 1998 ttyS2 5 crw------- 1 root tty 4, 67 May 5 1998 ttyS3 6 [alex@shadrach /dev]$
Из листинга 3.3 видно, что, хотя в
данной системе используется только три СОМ-порта,
по умолчанию в операционной системе Linux
создаются записи для четырех основных
последовательных портов. Попытка
использовать устройство ttyS2
повлечет за собой появление ошибки.
В ОС Linux также поддерживается
набор зеркальных устройств с именами /dev/cuax для каждого устройства /dev/ttySx. Устройства
предназначены для того, чтобы упростить
создание управляющих программ. Устройства
позволяют прикладным программам
подключаться к портам, даже если не
представлен сигнал несущей (,
а устройства ttyS
предназначены только для входящих звонков.
Ниже в листинге 3.4 приведен список -устройств
для системы, рассмотренной в листинге 3.3, с
использованием Mandrake Linux.
[alex@shadrach /dev]$ ls -al cua* crw------- 1 root root 5, 64 May 5 1998 cua0 crw------- 1 root root 5, 65 May 5 1998 cua1 crw------- 1 root root 5, 66 May 5 1998 cua2 crw------- 1 root root 5, 67 May 5 1998 cua3 [alex@shadrach /dev]$
При одновременном использовании
программ для обслуживания исходящих и
входящих звонков возникает проблема с
блокировкой порта модема. Поэтому было
принято решение поддерживать разработку
управляющего программного обеспечения для
устройств ttyS. Это
оказалось намного легче, чем обслуживать
два различных имени устройств для одного и
того же физического устройства.
tty против cua
Избегайте использования
устройств , даже если они имеются в вашем
дистрибутиве ОС Linux. Многими программами
уже сегодня генерируется предупреждающее
сообщение, о прекращении поддержки
устройств с именем
в будущих ядрах ОС Linux. Лучше всего
обращаться к последовательным портам по
имени tty.
Еще одно специальное устройство,
с которым вам, возможно, придется иметь дело, —устройство /dev/modem. В принципе
это символическая связь с устройством ,
к которому подключен модем. Это устройство
призвано упростить обращение программ,
которым требуется работа с модемом, к
портам. Теперь таким программам нужно лишь
обратиться к стандартному устройству modem.
Большинство версий ОС Linux создают это
устройство еще при первой установке
системы. В Red Hat и Mandrake Linux, если вы хотите
установить модем позже, можно использовать
программу для среды X Window modemtool
для создания символической связи с
устройством /dev/modem.
На рис. 3.7 представлено окно программы modemtool.
(рис 3.7) Утилита modemtoolКоманда setserial
применяется для установки и настройки
отдельных последовательных портов в
системе на базе ОС Linux. Каждый порт,
используемый операционной системой Linux,
должен быть настроен командой setserial.
Как видно из листинга 3.3, по умолчанию в
системе на базе ОС Linux конфигурируются
четыре стандартных последовательных СОМ-порта.
Если имеющийся у вас модем использует
нестандартные прерывания IRQ и адреса ввода-вывода
или же используется мультипортовая плата,
то для правильного конфигурирования портов
в системе необходимо использовать
программу setserial.
Команда setserial
используется в двух форматах:
setserial [-abqvVW] device [parameter 1[arg] ] ... setserial -g [-abv] device ...
Опция -g
используется для запроса информации об
указанных в команде устройствах. В листинге
3.5 дается пример работы команды setserial
в ОС Linux.
1 [root@shadrach rich]$ /sbin/setserial -g /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 2 /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRO: 4 3 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3 4 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 5 /dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 3 6 [root@shadrach rich]$
В первой строке листинга 3.5
присутствует команда setserial с опцией -g,
с помощью которой на экран выводится
информация о конфигурации
последовательных портов. Запускать команду setserial следует
только с правами пользователя root. В строках
2–5 представлена информация о
последовательных портах для данной системы
на базе ОС Linux в ответ на запрос команды setserial.
В каждой строке представлена информация об
отдельном порте. Обратите внимание, что в
строке 4 не указан тип ttyS2, так как
этот порт не используется. Это может ввести
вас в заблуждение, поскольку порта просто
нет физически.
С помощью одной или нескольких
опций, введенных в командной строке с
командой setserial,
можно управлять выводом информации на
экран. По умолчанию вывод на экран с помощью
команды setserial
производится с опцией -v,
как это показано в листинге 3.5. Если задать
опцию -b, то
выводятся обобщенные данные. Например:
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A.
Здесь та же информация
представлена в компактном виде. Опция -a
используется для получения подробного
отчета о конфигурации порта. Например:
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000, closing_wait2: infinite Flags: spd_normal skip_test auto_irq session_lockout.
Опция -a
отображает значения всех параметров,
используемых операционной системой Linux для
управления портом. Все эти параметры можно
устанавливать, задавая команду setserial
в первом формате, как было показано выше. В
табл. 3.4 приведены параметры, которые
можно изменять с помощью команды setserial.
| Параметр | Описание |
port N |
Задает устройству номер порта ввода-вывода |
irq N |
Задает устройству номер прерывания IRQ |
|
Задает устройству тип порта |
autoconfigure |
Автоматическое назначение параметров последовательному устройству |
auto_irq |
Автоматически определить номер прерывания IRQ для последовательного устройства |
^auto_irq |
Не пытаться автоматически определять номер прерывания IRQ для последовательного устройства во время автоконфигурирования |
skip_test |
Пропустить тестирование |
^ skip_test |
Не пропускать тестирование |
baud_base |
Установить базовую скорость передачи для порта (как правило, тактовая частота, деленная на 16) |
spd_hi |
Работать со скоростью 57600 бит/с при запросе приложением 38400 бит/с |
spd_vhi |
Работать со скоростью 115200 бит/с при запросе приложением 38400 бит/с |
spd_cust |
Использовать наибольший общий делитель при запросе приложением 38400 бит/с; установить baud_base, деленное на делитель |
spd_normal |
Работать со скоростью 38400 бит/с при запросе приложением 38400 бит/с |
|
Устанавливает значение spd_cust |
sak |
Использовать клавишу "Break" в качестве секретной |
^sak |
Запретить использование клавиши "Break" в качестве секретной |
fourport |
Конфигурировать устройство в качестве адаптера (платы) AST Fourport |
^fourport |
Запретить конфигурировать устройство в качестве адаптера (платы) AST Fourport |
close_delay D |
Устанавливает интервал времени, в течение которого сигнал 50 ) |
closing_wait D |
Устанавливает интервал времени, в течение которого ядро должно ожидать пока данные поступят с последовательного порта после его закрытия, перед тем как приемник будет отключен, в сотых долях секунды. Отсутствует значение по умолчанию, ожидать до бесконечности |
closing_wait2 D |
Устанавливает интервал времени, в течение которого ядро должно ожидать пока данные поступят с последовательного порта после его закрытия, после того как приемник будет отключен, в сотых долях секунды. По умолчанию 30 |
session_lockouot |
Блокировать доступ к порту другим сеансам на время установки исходящего соединения ( |
^session_lockouot |
Не блокировать доступ к порту другим сеансам на время установки исходящего соединения |
pgrp_lockout |
Блокировать доступ к порту другим процессам на время установки исходящего соединения |
^pgrp_lockout |
Не блокировать доступ к порту другим процессам на время установки исходящего соединения |
hup_notify |
Посылать уведомление о том, что процесс ожидает установки исходящего соединения |
^hup_notify |
Не посылать уведомление о том, что процесс ожидает установки исходящего соединения |
split_termios |
Воспринимать параметры портов для входящих и исходящих соединений отдельно |
^split_termios |
Не воспринимать параметры портов для входящих и исходящих соединений отдельно |
callout_nohup |
Если порт открыт для исходящего соединения, не класть трубку при пропадании несущей |
^callout_nohup |
Если порт открыт для исходящего соединения, класть трубку при пропадании несущей |
Команде setserial
всегда нужно задавать устройство, с которым
она будет работать. Если используются
значения адресов ввода-вывода и номера
прерывания IRQ по умолчанию, то их можно не
указывать в командной строке. Далее все
параметры можно вводить в командной строке
в произвольном порядке. Например:
setserial /dev/ttyS3 autoconfigure auto_irq skip_test
Этой строкой мы пытаемся автоматически сконфигурировать последовательный порт СОМ4.
Сценарии для setserial
Так же, как и в случае программы ifconfig,
все настройки, сделанные программой setserial, при перезагрузке ядра
ОС Linux стираются. Таким образом, команду setserial
следует выполнять для
каждого СОМ-порта в системе при каждой
загрузке. Так как это довольно важная
функция, то большинство распространителей
ОС Linux включают в свои версии сценарии для
выполнения команды setserial
в процессе загрузки системы.
По умолчанию сценарии для setserial
находятся в файле /etc/rc.d/rc.setserial.
В большинство версий ОС Linux входит
обобщенная версия этого сценария, которую
затем можно конфигурировать под
определенный сервер. В этом сценарии
имеется много строк для специфических
ситуаций, таких как, например,
мультипортовые платы и специальные
модемные платы. В листинге 3.6 показан пример
сценария из файла rc.serial.
1 STD_FLAGS="session_lockout"
2 SETSERIAL=/sbin/setserial
3 WILD=false
4 SUMMARY=true
5
6 echo -n "Configuring serial ports...."
8 #################################################
9 #
10 # AUTOMATIC CONFIGURATION
11 #
12 # Uncomment the appropriate lines below to enable
13 # auto-configuration of a particular board.
14 #Or comment them out to disable them....
15 ################################################
16
17 # Do AUTOMATIC_IRQ probing
18 #
19 AUTO_IRQ=auto_irq
20
21 # These are the standard COM1 through COM4 devices
22 #
23 SetSerial /dev/ttyS0 ${AUTO_IRQ} skip_test autoconfig ${STD_FLAGS}
24 SetSerial /dev/ttyS1 ${AUTO_IRQ} skip_test autoconfig ${STD_FLAGS}
25 SetSerial /dev/ttyS2 ${AUTO_IRQ} skip_test autoconfig ${STD_FLAGS}
26 SetSerial /dev/ttyS3 ${AUTO_IRQ} autoconfig ${STD_FLAGS}
27
28 ###################################################
29 #
30 # MANUAL CONFIGURATION
31 #
32 # If you want to do manual configuration of one
33 # or more of your serial ports, uncomment
34 #and modify the relevant lines.
35 #
36 ###################################################
37
38 # These are the stahdard COM1 through COM4 devices
39 #
40 #SetSerial /dev/ttyS0 uart 16450 port 0x3F8 irq 4 ${STD_FLAGS}
41 #SetSerial /dev/ttyS1 uart 16450 port 0x2F8 irq 3 ${STD_FLAGS}
42 #SetSerial /dev/ttyS2 uart 16450 port 0x3E8 irq 4 ${STD_FLAGS}
43 #SetSerial /dev/ttyS3 uart 16450 port 0x2E8 irq 3 ${STD_FLASS}
44
45 echo "done."
46 ##################################################
47 #
48 # Print the results of the serial configuration process
49 #
50 ##################################################
51
52 if [ -n "$SUMMARY" ]; then
53 SetSerlal -bg /dev/ttyS?
54
55 if [ '/dev/ttyS??' != /dev/ttyS?? ]; then
56 SetSerial -bg /dev/ttyS??
57 fi
58 fi
Итак, в листинге 3.6 в строках с 23
по 26 команда setserial пытается
автоматически обнаружить и
сконфигурировать четыре последовательных
порта на сервере. Если по каким-либо
причинам вы не желаете, чтобы производилось
автоматическое обнаружение портов, просто
закомментируйте эти строки и уберите знаки
комментария со строк 39–42. В этих строках
команде setserial указывается
использовать специальное прерывание IRQ и
адрес ввода-вывода для каждого
последовательного порта. Если же в системе
используется модем с нестандартными
номером прерывания IRQ и адресами ввода-вывода,
то можно установить соответствующие
параметры в команде setserial.
На сегодняшний день на рынке предлагается огромное количество различных модемов, которые могут работать с ОС Linux. Однако следует проявить осторожность, так как довольно много модемов пока не могут работать с этой операционной системой. Выбирая модем, помните, что вы балансируете между гладкой и быстрой его установкой и ночным кошмаром для администратора. В этом разделе мы постараемся описать, на что необходимо обращать внимание при покупке нового модема или при попытке установить в ОС Linux один из модемов, который достался вам в наследство от умершей бабушки.
В ОС Linux лучше всего использовать стандартные внешние модемы. Модемы этого типа подключаются к серверу на базе ОС Linux через последовательный СОМ-порт посредством стандартного 9- или 25-контактного модемного кабеля, который можно приобрести в любом компьютерном магазине. На момент выхода курса текущим стандартом для модемов является протокол V.90, который позволяет работать модемам на скорости 56 Кбит/с. К сожалению, в реальных условиях эта скорость достигается очень редко. Скорость 56 Кбит/с достигается применением специальных алгоритмов сжатия данных и модуляции сигналов. В обычных линиях связи, предназначенных для передачи речи, качество сигнала недостаточно для работы на таких высоких скоростях. Поэтому модемы, рассчитанные на 56 Кбит/с, работают обычно на скорости 38,4 Кбит/с. Тем не менее использование протокола V.90 оправдано хотя бы с точки зрения использования его возможностей по коррекции ошибок.
Если используются высокоскоростные модемы, то с помощью внутренних регистров модема можно установить скорость его работы. Если скорость не определена, модем пытается соединиться с сервером на той же скорости, что и удаленный модем, которая, однако, может варьироваться. Это зависит от качества конкретной телефонной линии и удаленного модема. Установив скорость обмена модема с портом 115200 бит/с, можно настроить последовательный порт в ОС Linux со стандартными параметрами. Об этом более подробно далее в этой лекции.
Внутренние модемы намного сложнее в работе по сравнению со своими внешними собратьями. В использовании внутренних модемов с операционной системой Linux имеется много "подводных камней". Во-первых, следует напрочь избегать модемов, маркированных как WinModem или совместимых с ними. Эти модемы специально разработаны для использования с операционными системами Microsoft Windows 95 и 98. В комплект их поставки не входит стандартный аппаратный интерфейс и, соответственно, они не будут работать с ОС Linux. Их принцип работы основан на специальном программном обеспечении, адаптированном для среды Windows 95-98.
Модемы PCI — еще одна головная боль. Дело в том, что архитектура системной шины PCI позволяет устройствам автоматически конфигурироваться в процессе загрузки системы. В зависимости от установленных в системе устройств, каждое из них может запросить при очередной загрузке системы любое свободное прерывание IRQ и адрес порта ввода-вывода. К моменту выхода курса в ядре Linux версии 2.2 еще не была реализована поддержка модемов на шине PCI. Однако в настоящее время в сообществе потребителей ОС Linux ходят упорные слухи, что уже в следующую версию ядра эта поддержка будет включена. Если новая версия ядра уже доступна, то можно проверить, насколько эти слухи верны.
А пока, если в системе имеется
модем на шине PCI, можно попытаться заставить
его работать с Linux вручную. В процессе
загрузки системы параметры устройств на
шине PCI отображаются базовой системой ввода-вывода
BIOS. Посмотрите, какое прерывание
назначается во время загрузки вашему
модему, и вручную запустите программу setserial
с соответствующим значением прерывания.
Хотя этот метод и не совсем корректен, он
должен сработать.
Обычные внутренние модемы, предназначенные для работы с шиной ISA, работают с ОС Linux вполне нормально. Чаще всего у них имеется набор перемычек для установки их на определенный СОМ-порт. Помните, что не следует использовать СОМ-порт, который уже используется в качестве внешнего порта. Также будьте осторожны, если к этому же последовательному порту подключены другие устройства. Все они могут быть восприняты как модем на одном и том же порту. Довольно часто можно столкнуться с тем, что на порту СОМ1 имеется устройство-указатель (манипулятор "мышь"). Помните, что порт СОМ1 использует то же прерывание, что и порт СОМ3 (см. табл. 3.3). Если установить внутренний модем на порт СОМ3, то вполне можно лишиться мыши, так как вы не сможете одновременно использовать их на одном и том же прерывании. Чтобы избежать этого конфликта, поставьте модем на порт СОМ4. Конечно, если на порту СОМ2 уже имеется какое-либо устройство, то это не решение проблемы. Все эти проблемы подводят вас к использованию нестандартной конфигурации для последовательных портов. Вам нужно подобрать прерывание, которое не используется никакими другими устройствами в системе. Для этой цели в большинстве случаев подходят прерывания 9, 10 и 11.
Одна из необычных технологий в IBM-совместимых
ПК — использование устройств plug-and-play для
Однако существует несколько
программных утилит, которые могут помочь
вам. С целью конфигурирования модемов isapnp может
считывать конфигурационный файл, который
определяет все устройства pnpdump
может запросить все необходимые параметры
и создать файл конфигурации автоматически.
Формат pnpdump:
pnpdump [ -- config] [ --script [=outputfile] ][ --reset] [-- ignoresum ] [ -- showmasks] [ -- dumpregs] [ [ devs ] readport ]
По умолчанию программа pnpdump
сканирует все pnpdump сбрасывает
все внутренние номера плат devs,
задаваемый в командной строке, определяет
количество устройств, сканируемых
программой pnpdump. При
этом платы readport.
По умолчанию pnpdump
отображает также ресурсы, используемые
платами --config, вы даете, по сути, команду программе pnpdump на создание
конфигурационного файла, который затем
программа isapnp может
использовать для настройки модема pnpdump -- config.
1 # $Id: pnpdump.c,v 1.16 1998/10/09 22:19:06 fox Exp $
2 # This is free software, see the sources for details.
3 # This software has NO WARRANTY, use at your OWN RISK
4 #
5 # For details of this file format, see isapnp.conf(5)
6 #
7 # For latest information on isapnp and pnpdump see:
8 # http://www.roestock.demon.co.uk/isapnptools/
9 #
10 # Compiler flags: -DREALTIME
11 #
12 #Trying port address 0203
13 # Board 1 has serial identifier 5b 10 0d 6a 0e 24 00 8c 0e
14 # Board 2 has serial identifier c5 00 00 11 11 01 00 36 10
15 #
16 # (DEBUG)
17 (READPORT 0x0203)
18 (ISOLATE PRESERVE)
19 (IDENTIFY *)
20 (VERBOSITY 2)
21 (CONFLICT (I0 FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
22
23 #Card 2: (serial identifier c5 00 00 11 11 01 00 36 10)
24 # Vendor Id DAV0001, Serial Number 4369, checksum 0xC5.
25 # Version 1.0, Vendor version 1.0
26 # ANSI string -->DAVICOM 336PNP MODEM<--
27 #
28 # Logical device id DAV0336
29 # Device support I/O range check register
30 # Device supports vendor reserved register @ 0x39
31 # Device supports vendor reserved register @ 0x3a
32 # Device supports vendor reserved register @ 0x3d
33 #
34 # Edit the entries below to uncomment out the configuration required.
35 # Note that only the first value of any range is given, this may be changed
36 #if required. Don't forget to uncomment the activate (ACT Y) when happy
37
38 (CONFIGURE DAV0001/4369 (LD 0
39
40 #Multiple choice time, choose one only
41
42 # Start dependent functions: priority acceptable
43 # Logical device decodes 16 bit 10 address lines
44 # Minimum I0 base address 0x02f8
45 # Maximum I0 base address 0x02f8
46 # I0 base alignment 8 bytes
47 # Number of I0 addresses required: 8
48 (I0 0 (SIZE 8) (BASE 0x02f8))
49 # IRQ 3.
50 # High true, edge sensitive interrupt (by default)
51 [INT 0 (IRQ 3 (MODE +E)))
52
53 (NAME "DAV0001/4369[0]{DAVICOM 336PNP MODEM}")
54
55 # End dependent functions
56 (ACT Y)
57 ))
58 # End tag... Checksum 0x00 (OK)
59
60 # Returns all cards to the "Wait for Key" state
61 (WAITFORKEY)
В листинге 3.7 представлена лишь
часть файла, генерируемого pnpdump.
Программа pnpdump
генерирует все возможные комбинации
настроек, но оставляет активными лишь те,
которые, с ее точки зрения, наилучшим
образом подходят для данной pnpdump
могут перенаправляться в файл, где хранятся
настройки
pnpdump -- config > /etc/isapnp.conf
Именно в файле /etc/isapnp.conf
программа isapnp
попытается получить конфигурационную
информацию, если не указан какой-либо
другой файл. После того как
конфигурационный файл создан, запускается
программа isapnp. Формат
команды isapnp
следующий:
isapnp conffile,
где conffile —
альтернативный путь к файлу конфигурации.
После запуска в системе на базе ОС Linux
программа isapnp должна
обнаружить модем setserial
для порта, к которому привязан
Подобно работе программы setserial,
вся информация, которая генерируется
программой isapnp,
помещается в таблицы ядра ОС Linux и теряется
при перезагрузке системы. Эта проблема
может быть решена запуском
соответствующего сценария во время
загрузки. В большинстве случаев в ОС Linux
программа isapnp
запускается при наличии файла /etc/isapnp.conf.
Помните, что программа setserial
должна запускаться уже после выполнения
программы isapnp для того,
чтобы соответствующим образом
сконфигурировать последовательный порт с
целью использования
Технология ISDN доступна уже на протяжении нескольких лет, однако все это время она применялась не слишком активно. Сегодня ситуация в корне изменилась. По мере роста числа пользователей сети Internet и ужесточения требований к полосе пропускания модемы ISDN стали популярны среди сервис-провайдеров Internet и организаций, нуждающихся в высокоскоростном доступе к этой сети.
Модемы ISDN могут организовывать два цифровых канала передачи данных со скоростью 64 Кбит/с. Эти каналы можно объединить, получив один канал со скоростью обмена данными 128 Кбит/с. Такое решение является идеальным для небольших организаций, которым требуются такие возможности сети Internet, как доступ к Web, обмен файлами и электронной почтой.
Поддержка модемов ISDN в ОС Linux появилась относительно недавно и еще находится в процессе развития. В версию ядра Linux (2.2), последнюю доступную на момент выхода этого курса, включена базовая поддержка модемов ISDN. Ожидается, что в последующие версии ядра будет добавлено больше функций по поддержке ISDN. Разработки по развитию поддержки ISDN в ОС Linux велись главным образом в Германии. Группа разработчиков SuSe Linux предложила набор утилит ISDN4Linux, который помогает в установке и настройке модема ISDN на сервере под управлением ОС Linux. В табл. 3.5 представлен перечень утилит из набора ISDN4Linux.
| Название утилиты | Описание |
isdnctrlv |
Общая утилита для настройки соединения |
iprofd |
Демон для выполнения команды ATW0 на устройствах ttyI |
icnctrl |
Утилита для установки драйвера icn |
telesctrl |
Утилита для установки драйвера teles |
hisaxcrtl |
Утилита для установки драйвера HiSax |
pcbitctrl |
Утилита для установки драйвера pcbit |
avmcapictrl |
Утилита для установки драйвера avmb1 |
actctrl |
Утилита для установки драйвера act2000 |
eiconctrl |
Утилита для установки драйвера eicon |
divertctrl |
Утилита для установки служб dss1 |
imon |
Утилита для мониторинга на базе Ncurse |
imontty |
Утилита для мониторинга на базе tty |
isdnlog |
Протоколирование работы по ISDN-соединению |
ipppstats |
Утилита для сбора статистики по синхронному PPP- соединению |
xisdnload |
xload-подобный монитор |
isdnmon |
Утилита для мониторинга на базе Tcl/Tk |
vbox |
Автоответчик + голосовой почтовый ящик |
ipppd |
Демон, необходимый для работы по синхронному PPP и MPP |
С набором утилит ISDN4Linux предоставляются несколько документов, в которых подробно описан процесс установки и настройки модемов ISDN в системах на базе ОС Linux. Так как поддержка ISDN в ОС Linux находится еще на стадии становления, то, несомненно, следует ожидает ее расширения в последующих версиях ОС Linux.
После того как последовательный
порт сконфигурирован для использования
модемом, система Linux должна запустить
специальную программу для мониторинга
телефонной линии, наблюдающую за
состоянием линии и определяющую,
используется ли она каким-либо устройством.
Для управления работой последовательного
порта в ОС Linux существует несколько
программ, но чаще всего для этой цели
используется программа getty.
Программа getty позволяет
модему осуществлять как исходящие звонки,
так и принимать входящие звонки. При
установке входящего соединения она
инициирует прием входящего звонка и
передает управление программе login,
с помощью которой производится проверка
пароля и идентификатора, введенных
удаленным пользователем.
Формат команды getty:
getty [ -d defaults_file ] [ -a ] [ -h ] [ -r delay ] [-t timeout] [-w waitfor] line [speed [type [lined]]]
Обычно программа getty
запускается программой init
для управления работой модемных соединений.
Чтобы программа getty
запускалась, она должна быть прописана в
файле /etc/inittab.
Файл inittab
содержит список программ, которые должны
запускаться процессом init
после загрузки системы. Формат строки для
файла inittab
следующий:
s1:345:respawn:/sbin/getty ttyS0 38400 vt100
Первое поле — это уникальная
метка, идентифицирующая точку входа для
программы getty в файле inittab.
Во втором поле указываются уровни запуска init,
на которых может выполняться данная
программа. В нашем случае getty
может выполняться на 3, 4 и 5 уровнях. В
третьем поле содержится информация для
программы init о режиме
запуска программы. Ключевое слово respawn
говорит программе init о
том, что при внезапном останове программы getty ее следует перезапустить. Это
необходимо, так как getty
должна наблюдать за состоянием модема
после завершения сеанса связи.
В четвертом поле следует команда getty
с параметрами. В нашем примере
программой getty
производится мониторинг устройства /dev/ttyS0
(порт СОМ1), которому устанавливается
скорость getty может
выдавать приветственное сообщение. Как раз
для правильного форматирования
приветственного сообщения и служит
параметр типа эмулируемого терминала.
Для связи сервера на базе ОС Linux с
другими хостами и рабочими станциями
следует установить соответствующее
телекоммуникационное оборудование. Для
взаимодействия с рабочими станциями в
пределах локальной вычислительной сети на
сервере нужно установить и
сконфигурировать сетевой интерфейсный
адаптер Ethernet. Чтобы задать соответствующие
настройки IP для сетевого адаптера, можно
использовать программу ifconfig.
Имеются также различные программы для
графической среды X-Window, с помощью которых
также можно сконфигурировать сетевой
адаптер. Например, в Red Hat- и Mandrake-версиях ОС
Linux для этой цели можно использовать
программу netcfg. Для
соединения сервера электронной почты с
провайдером услуг сети Internet требуется
наличие модема. С серверами на базе ОС Linux
могут работать различные типы модемов.
Внешние модемы с протоколом V.90 наиболее
удобны в настройке и работе, но их
использование в системе с ОС Linux возможно
только при наличии по крайней мере одного
свободного СОМ-порта. С ОС Linux можно также
использовать стандартные внутренние
модемы для isapnp может
использоваться также при настройке модемов
plug-and-play для setserial,
которая осуществляет настройку порта для
использования определенным устройством.
После того как ОС Linux обнаружит это
устройство, для управления установкой
входящих и исходящих соединений
запускается программа getty.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.