Настраиваем соединение с интернетом

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

Изучать Linux можно всю жизнь. Каждый день узнавать что-то новое, открывать новые фичи, глубже и глубже разбирать кернеловые серцы... Так оно и будет, если... если не выбрать цель, финишную черту, "чекпоинт", одним словом, пересекая который, можно говорить: "Я пользователь Linux В НАТУРЕ!".

Как раз таким, самым первым, чекпоинтом для простого, "земного" пользователя Линух, работающего на "персоналке с модемом", может быть установка Интернет. Кто-то может возразить: "А как же русификация? Или настройка харда?"... Ну, извините! А может быть, первым чекпоинтом поставить нажатие кнопки POWER?!

По-моему, выйти в Интернет по модему из Linux - самое то! Тем более, что попутно придется и "русифицироваться", и хард настраивать, и шел-скрипты править, да и с сетевыми настройками знакомиться - полный арсенал, короче! Тем более, делать это придется не за просто так - тут пахнет реальной экономией денег! Вот, например, Вындозе ваще побоку, что ты коннектишся с платным провайдером. Пока держится связь, Маздай готов заниматься чем угодно, но только не сосать байты из Internet! А всякая оптимизация напоминает уговоры "Дай! Ну, дай!"... %))

Чего вовсе не скажешь про Linux. Уж если он взялся за работу и установил коннект, то, будь уверен, грузить будет по полной программе, без передыху и всех подряд! Короче, если ты бережешь свое время, а значит - деньги (или деньги, а значит - время), то начинай установку Internet из-под Linux прямо сейчас.

Прежде чем лезть в дебри настроек, следует убедиться, что "под рукой" есть все необходимое. Я имею ввиду данные от провайдера.

Login: vasia

Password: security

IP: 212.192.100.77

DNS IP: 212.192.100.1

Mask: 256.256.256.240

Domen: tsu.ru

и, конечно, большой список телефонов.

Теперь, как рекомендует Вындоз, "можно откинуться на спинку стула" и начать править разные скрипты и файлы. Сразу скажу , что я не буду разжевывать назначение каждой опции. Все будет ограничиваться прямой функциональной нуждой. Если же кому-то нужны подробности, то он может найти их сколько угодно, например, в романе Толстого "Война и мир"... %)

Прежде всего, следует "расфасовать" всю провайдеровскую инфу по соответствующим файлам, чтобы система могла их найти и конкретно поюзать. IP DNS следует сразу запихать в файл /etc/resolv.cfg, который должен выглядеть следующим образом:

domen tsu.ru

nameserver 212.192.100.1

Конечно, совсем не обязательно загромождать трафик просьбами расшифровать "weather.yahoo.com". Его IP вряд ли изменится за 1-2 дня. На такой случай в Linux предусмотрено ведение собственной базы DNS. Она хранится в файле /etc/hosts, который имеет следующую структуру:

127.0.0.1 localhost

212.192.100.66 biobase.tsu.tomsk.su

в моем случае. Между IP серверов и соответствующим им именем можно запихать любой разделительный символ: пробел или табуляцию.

Порядок отправки запросов на расшифровку имени сервера устанавливается в файле /etc/host.conf, который должен содержать строки

order hosts, bind

multi on

Если же вы перепишите

order bind, hosts

то получится полный облом, и содержимое вашего etc/hosts учитываться практически не будет.

Имя домена должно занять свое место в файле etc/ppp/options. При этом его содержимое станет похожим на нечто такое

lock

domain tsu.ru

Кроме этого, домен может найти и еще одно применение. Если тебе удастся таки выскочить в Internet, то можно сразу заявить о себе именем vasia.tsu.ru и организовать временные finger, ftp и даже www сервера. Для этого в файле инициализационных настроек машины (/etc/rc.d/rc.local - например) следует прописать строку типа

/bin/hostname vasia.tsu.ru

Конечно, твой личный сервер нельзя использовать для организации баннерной сети обмена или мощного сетевого портала со 100 000 посетителей в минуту, но все же может пригодиться!..

Обратим взоры на твой основной орган для установления различных связей, то есть модем. Надеюсь, ты купил стабильный девайс от ништячных производителей. Потому что если у тебя какой-нибудь там зюхел, собранный на комплектующих от акорпа с последующим апгрейтом от роботикса, то я умываю руки... Хотя, в принципе, это не важно. Главное, чтобы у тебя была голова на плечах, а не в другом месте. Для самых что ни на есть распространенных модемов, работающих по AT стандартам, можно использовать скрипт /etc/ppp-on-dialer в следующем виде:

#!/bin/sh

#

# /etc/ppp-on-dialer

# Выполняет всю черную работу по установке соединения

#

exec chat -v \

TIMEOUT 3 \

ABORT '\nBUSY\r' \

ABORT '\nNO ANSWER\r' \

ABORT '\nRINGING\r\n\r\nRINGING\r' \

'' \rAT \

'OK-+++\c-OK' ATH0 \

TIMEOUT 30 \

OK ATDP$TELEPHONE \

CONNECT

1000

'' \

name:--name: $ACCOUNT \

assword: $PASSWORD

При первом просмотре можно заметить, что, по всей видимости, кто-то с кем-то ведет чат. Так оно и есть! Это Linux пытается завязать разговор с модемом и уговорить его набрать требуемый номер. Судя по количеству "абортов", сделать это не так уж и легко... %)

Единственный параметр, который интересует нас в этом скрипте, это код ATDP, который означает переход на пульсовой набор номера. Если твоя ГТС допускает использование тонального набора, то я настоятельно рекомендую тебе прямо сейчас ломануться к ним и договориться о переключении с пульсового на более быстрый тональный набор. Это сбережет время, а значит - деньги (или деньги, а значит - время). Код ATD переключает модем в режим тонального набора номеров.

Хо-хо-хо! Как говориться, наступает полный абзац. Нервных и беременных просим удалиться. %) Мы приступаем к конфигурированию самого важного и главного скрипта, предназначенного непосредственно для установки и полной инициализации связи с Internet через провайдера. Расположен он в /usr/sbin/ppp-on. Наберите полную грудь воздуха и открывайте:

#!/bin/sh

#

# ppp-on

#

# Основные параметры настройки

TELEPHONE=410458 # Телефонный номер гейта

ACCOUNT=vasia # Регистрационное имя

PASSWORD=12345 # Пароль

LOCAL_IP=212.192.100.77 # Локальный IP

REMOTE_IP=0.0.0.0 # Удаленный IP

NETMASK=255.255.255.240 # Маска подсети

#

export TELEPHONE ACCOUNT PASSWORD

#

# Укажите полное имя программы набора номера

#

DIALER_SCRIPT=/etc/ppp/ppp-on-dialer

#

# Типичный запуск демона pppd после соединения с помощью

# ppp-on-dialer

#

exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS2 38400 \

asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \

noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

Хм... Оказалось, все не так уж сложно. Вон телефонный номер указывается, логин и пассворд, затем остальные сетевые параметры. Если провайдер выделяет хостам динамический IP, то следует прописать

LOCAL_IP=0.0.0.0

Загрузив все переменные окружения, скрипт стартует демона pppd. Полное описание всех ключей его запуска можно посмотреть в справочнике. Сейчас же следует обратить внимание на параметры /dev/ttyS2 38400, под которыми подразумевается, что у тебя на втором последовательном порту (COM2) висит модем с пропускной способностью 38400 бод (33600 бод). Проверь, прописан ли модем в dev? Если нет, то следует добавить в один из инициализационных файлов (типа rc.local или rc.serial) строку

/bin/setserial -b /dev/ttyS2

или

/bin/setserial -b /dev/ttyS2 IRQ 11

если используется специальное прерывание.

Сейчас ты уже полностью укомплектован и на 100% готов "иметь" Internet по полной программе. Но... кажется, мы что-то забыли! Ну конечно, следует также подготовить скрипт для "цивильного" завершения связи с провайдером и выгрузки демона pppd из памяти компа. Хотя, в принципе, можно пользоваться и кнопкой "Reset"... К великому счастью, ppp-off править не нужно. Если установка связи требует настройки разных скриптов, то разорвать связь с кем угодно Linux способен самостоятельно.

Набрав команду

ppp-on

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

ping 212.192.100.1

Если пакеты не вернулись, то следует проверить все скрипты с самого начала. Ошибка может быть в любом из них, кроме, конечно, /etc/resolv.cfg и других связанных с ним файлов.