Востаннє змінено 03/06/2022
Комутована лінія зв’язку, вона ж dial-up link – одна з перших технологій підключення до інтернету, яка стала масово доступною із 90-тих років минулого століття і залишалась актуальною аж до середини двохтисячних. А все це завдяки банальній простоті підключення – потрібно мати лише лінію провідного телефону, яка, на ті часи, вже була і так була проведена навіть у найвіддаленіші куточки планети.
Плюси і мінуси “діал-апу”
І хоча технологія проста, вона не ідеальна. Перш за все, через швидкість підключення. Із фізичним лімітом у 56 кбіт/c, реальні показники становлять приблизно 40-50 кбіт/c на завантаження і 25-30 кбіт/с на вивантаження. Це все через шуми на лінії, підключення інших пристроїв до тієї ж лінії, і, зокрема, все залежить від власне якості телефонної лінії.
Крім хорошої телефонної мережі, стабільність ще вимагає хороших модуляторів-демодуляторів (модемів), які повинні підтримувати відповідні стандарти. І останнє – це постійно зайнятий телефон, що значить за потреби у дзвінку потрібно буде все ж таки від’єднатися від інтернету.
З появою широкосмугового зв’язку і здешевленням обладнання для нього, dial-up пішов у небуття, проте, як і всі старі технології, є цікавим предметом для експериментів. Два з яких ми зараз і проведемо.
Експеримент 1: фантомне живлення
Якщо шукати методи як з’єднати напряму два ретро-комп’ютери через dial-up і два модеми, то можна знайти схему із фантомним живленням. Така схема передбачає підключення у розріз телефонного кабелю послідовно з’єднаних резистора і батарейки типу “крона”. Для чого це потрібно?
1.1. Схема
За нормальних умов телефонна лінія, під’єднана до модему, є роз’єднаною. Коли модем здійснює виклик (або намагається прийняти виклик), він замикає лінію, з’єднуючи між собою два провідники телефонної лінії через внутрішню схему з приблизним опором у 200 Ом. У цей момент модем очікує на протікання струму, який присутній у діючій телефонній лінії і необхідний для її справної роботи.
У випадку наявності батарейки на 9 вольт і резистора 200 Ом у ролі фантомного живлення, ми створюємо замкнуте коло із протікаючим струмом, чого достатньо для “відкриття” модему.
Отож, спробуємо цю схему.
1.2. Підключення
Підключати буду ретро-ноутбук початку двохтисячних Dell Inspiron 2500 із вбудованим модемом до іншого комп’ютера з операційною системою Windows 7 модемом U.S. Robotics 56k.
Для з’єднання використаю двожильний кабель із обжатими конекторами RJ11 – типовий кабель для провідного телефону.
Щоб застосувати фантомне живлення, можна попросту перерізати телефонний кабель і під’єднати батарейку туди, як це раніше робив я. Але краще придбати телефонну розетку, де є два гнізда третьої категорії під конектор RJ11. Клеми для підключення телефоної лінії тут з’єднані з обома гніздами, а тому така коробка дасть нам можливість підключитись саме у розріз провідників. Власне до червоної і зеленої клем, як от підписав на корпусі.
Підключаємо все і пробуємо встановити з’єднання. У силу того, що нам треба форсовано подзвонити і форсовано підняти трубку, то будемо це робити через термінал.
1.3. Команди
Команда для перевірки стану модему – AT. Вона повертає значення OK у разі нормальної роботи модема.
Далі потрібно на приймаючому комп’ютері написати команду ATA, що значить відповісти.
На комп’ютері, з якого буде виконуватись дзвінок, потрібно спершу відключити очікування на тон виклику (якого у нас немає, бо немає діючої телефонної лінії), а тоді написати команду ATD, що значить виклик.
Далі одночасно натиснути клавішу Enter на обох пристроях і очікувати на відомий своїм унікальним звучанням handshake і встановлення з’єднання.
Що цікаво, мені жодного разу не вдалось встановити з’єднання так, щоб швидкість на обох комп’ютерах була однаковою.
Далі можна спробувати ввести текст. І поки друкувати його на одному комп’ютері, він буде відображатись на іншому. Більше того, з таким з’єднанням без проблем відправляються файли.
З мінімумом зусиль отримуємо робоче з’єднання. Але запустити повноцінне з’єднання між комп’ютерами із TCP/IP, та доступом до інтернету мені не вдалось ніяк. Ні форсованою відповіддю з командою ATA при ініціалізації модему, ні з автовідповіддю, ніяк. Автовідповіть взагалі неможлива, оскільки у нас немає АТС і модем не розуміє що його викликають.
Другий метод – використання автоматичної телефонної станції, скорочено АТС.
Якщо немає діючої телефонної лінії, чому не створити свою. Звичайно, промислова апаратура дорога, але є простіші і, що головне, дешевші варіанти. І основний з них – це офісні міні АТС. Такі АТС є повноцінними станціями, але на малу кількість ліній, необхідних для роботи невеликого офісу чи підприємства.
Із поширенням цифрової телефонії, аналогові офісні АТС доживають своє, а тому масово з’являються на сайтах онлайн-оголошень, хоч і у кардинально різних цінових категоріях. Зокрема, їх можна знайти як і за кілька тисяч гривень, так і 200-400 гривень. Останні мене і зацікавили. Так придбав міні АТС Siemens HiPath 1120 аж на 12 внутрішніх і 2 зовнішні лінії, хоч по-факту мені знадобилось лише дві.
2.1. Підключення
Для зручності підключення можна купити здвоєну коробоку із гніздами третьої категорії під RJ11, не таку, як у попередньому методі, а таку, щоб гнізда не були з’єднані. З такої коробки нам потрібно лише зелений і червоний провідники, які і підключаємо до АТС.
Не забуваємо підключити живлення АТС і вуаля – у нас дві виділені лінії із власними номерами 11 і 13.
Спершу підключаємо обидва модеми до АТС, а тоді на ретро-ПК створюємо просте Dial-up з’єднання із номером другого комп’ютера. А на тому другому комп’ютері прийдеться трішки попрацювати.
Спершу нам потрібно встановити програмне забезпечення, яке буде приймати дзвінок і авторизовувати мережу через протокол Point-to-Point Protocol. Найпростіше це зробити із mgetty і pppd, які доступні для операційної системи Linux. Тому на віртуальну машину встановив найзручнішим для мене Arch Linux, все налаштував, зокрема і доступ до інтернету через цю віртуальну машину і зараз достатньо просто все це запустити.
Інструкцію підглянув у Doge Microsystems, модифікувавши її для Arch Linux.
2.2. Конфігурація
У першу чергу потрібно згідно інструкції встановити Arch Linux на віртуальну машину, у моєму випадку це VirtualBox.
Єдиний нюанс щодо конфігурації, це комутувати Serial Port з підключеним модемом на другий, а не перший порт. Базова конфігурація Arch Linux відправляє на перший порт повідомлення від ядра, а це нам не потрібно взагалі.
На чисту систему встановлюємо службу для зв’язку із віртуальною машиною і сервер OpenSSH, для зручності
# pacman -S virtualbox-guest-utils-nox
# systemctl enable vboxservice
# systemctl start vboxservice
# pacman -S openssh
# systemctl enable sshd
# systemctl start sshd
Далі необхідно встановити mgetty, дане ПО доступне через AUR, для зручності роботи з яким встановимо yay
# pacman -S go wget git base-devel
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/yay.tar.gz
$ tar xvf yay.tar.gz
$ cd yay
$ makepkg -i
І вже з допомогою yay встановимо mgetty
$ yay -S mgetty
Після успішного встановлення, змінюємо налаштування на наступні:
# nano /etc/mgetty+sendfax/mgetty.config
debug 9
port ttyS1
init-chat "" at OK ats0=0 OK
port-owner root
port-group root
port-mode 0660
data-only yes
ignore-carrier no
toggle-dtr yes
rings 1
autobauding yes
#speed 115200
Опція init-chat у цьому прикладі виконує команду ATS0=0, яка відключає автоматичне підняття трубки у модемів U.S. Robotics, то для вашого модему така команда може відрізнятись
$ nano /etc/mgetty+sendfax/login.config
У відкритому файлі потрібно розкоментувати рядок, показаний нижче. Без цього не запрацює авторизація з протоколом PPP.
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
Наступний крок – вмикаємо сервіс mgetty
# systemctl enable mgetty@ttyS1
# systemctl start mgetty@ttyS1
Частину налаштувань mgetty завершено, тепер потрібно налаштувати pppd.
У першу чергу створюємо користувача для авторизації і встановлюємо йому пароль:
# useradd -m -G users -s /usr/sbin/pppd dial
# passwd dial
Далі змінюємо конфігурацію pppd на наступну:
# nano /etc/ppp/options
ms-dns 8.8.8.8
asyncmap 0
auth
crtscts
lock
show-password
+pap
debug
lcp-echo-interval 30
lcp-echo-failure 4
proxyarp
noipx
А також створюємо конфігурацію для модему:
# nano /etc/ppp/options.ttyS1
local
lock
nocrtscts
192.168.32.1:192.168.32.105
netmask 255.255.255.0
noauth
proxyarp
lcp-echo-failure 60
Останній крок у налаштуванні PPP сервера – додати створеного користувача до списку дозволених користувачів
# nano /etc/ppp/pap-secrets
dial * "password" *
Де password треба замінити на пароль, встановлений для користувача dial.
Фінальний крок у налаштуванні власного Dial-in сервера – дозвір на маршрутизацію через такий сервер наступними командами.
# sysctl net.ipv4.ip_forward=1
# iptables -t nat -A POSTROUTING -s 192.168.32.0/24 -o enp0s3 -j MASQUERADE
Зазначу, що ці команди потрібно виконувати після кожного перезавантаження сервера, то для зручності можна створити bash-скрипт для їх швидкого виконання при запуску.
Конфігурацію завершено!
От тепер, попертаємось до першого ПК, на якому створено з’єднання, тиснемо кнопку Виклик і очікуємо на підключення. Все проходить на ура, про що нам повідомляє Windows і ми можемо без проблем зайти у інтернет!
Що цікаво, простенькі сторінки грузяться на ура, деякі сайти – ні, але думаю це через використаний браузер.
Якщо спробувати щось завантажити, то можна насолодитись реальною швидкістю з’єднання.
Як бачите – це 4 кб/c. Що становить 32 кбіт/c, і є верхньої фізичною межею цих модемів. Мої модеми підтримують стандарт V.90, яких характеризується швидкістю завантаження 56 кбіт/c і вивантаження 33 кбіт/c. Але оскільки у нас безпосередньо з’єднані два модеми, то ліміт у їх швидкості є швидкість вивантаження, тобто 33 кбіт/c.
Замість висновків
Ось так можна в 2021 спробувати старий, всіма забутий Dial-up дома, або ж навіть оживити ваш ретро-комп’ютер автентичним доступом в мережі Інтернет.