пятница, 1 июня 2007 г.

сеть...

Эта страшная история повествует о том, как я ставил Линукс на древнюю машину, а потом пытался настроить простейшую одноранговую сеть между двумя компами.
Хех. Это сейчас я так смело говорю "простейшую". А ведь ещё совсем недавно я понимал в сетях не больше, чем блондинко понимает в программировании на ассемблере. (по правде сказать, сейчас ситуация изменилась в лучшую сторону, но совсем ненамного). И вот мне захотелось узнать больше в этой области. Поэтому я вытащил из закромов старую машинку (пень-233, 128 метров оперативки, ничего более конкретного про неё сказать не могу), снес с её трёхгигового винта все виндовые разделы, временно поставил в неё DVD-привод, в который впихнул диск с любимым дистрибутивом -- MOPS 5.1, и уже собирался было "откинуцо на спинку кресла"... Но меня жостко обломали. Грузиться этот диск не захотел. При попытке загрузить ядро из дистриба оно начинало писать что-то типа unknown interrupt or fault at EIP много много цифр. Мне сразу вспомнилось, что где-то на линуксфоруме уже подсказывали кому-то столкнувшемуся с такой проблемой, что надо отключить в ядре acpi (ну или загрузиться с ядром без acpi). Но в МОПСе выбора ядра при установке я не нашёл. Недолго думая, я переставил веник из этой старой машинки в нормальную, туда же вернул ДВД-привод и поставил МОПС. То есть на новой машине, но на старый веник. После чего пересобрал ядро, отключив в нем acpi, добавил это ядро в конфиг Lilo и воткнул этот веник обратно в старую машину. И чудо таки произошло! МОПС благополучно загрузился.
Следующим этапом была настройка сети между ними. В нормальной машине была встроенная сетевуха, а в старую я ткнул какую-то 3COM'овскую. Обе сетевых карты успешно определились. Затем я занялся поиском инфы. Для начала почитал соответствующие разделы в книгах "Основы Slackware Linux" и "Slackware/MOPSLinux для пользователя". После их прочтения сделал следующее (и самое простое, что можно было сделать) -- ввел в консоли
netconfig
запустилась та же утилита, которая запускается при установке системы. Имена компьютеров назначил "main" и "old" соответственно для новой и старой машины, а имя домена -- "home". Главному компу назначил IP 192.168.0.1, а старому -- 192.168.0.2. Маску подсети -- 255.255.255.0. Но тут может быть много вариантов. После этого можно ввести "ifconfig -a". Должно вывестись что-то вроде этого:

eth0 Link encap:Ethernet HWaddr 00:04:61:59:16:46
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0x6000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:303432 errors:0 dropped:0 overruns:0 frame:0
TX packets:303432 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:184503478 (175.9 MiB) TX bytes:184503478 (175.9 MiB)

Значит, сеть есть ;)
Потом на главной машине в файл /etc/hosts добавил строку
192.168.0.2 old.home old
а на старой машине в аналогичный файл
192.168.0.2 main.home main
Можно теперь попинговать и убедиться,что пакеты идут. Запустим на основной машине
ping old
Потом остановим и если вывелось что-то типа вот этого

--- 192.168.0.2 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 4998ms
rtt min/avg/max/mdev = 0.033/0.033/0.037/0.007 ms

то есть количество отправленных пакетов равно количеству полученных, значит всё нормально. А вот теперь начинается магия. Вводим на стаааарой тормозной машине
ssh -l root main
, затем пароль суперпользователя, и рулим основной машиной удаленно :). Причем всё быстро и никаких тормозов. Получается что-то вроде терминала. (странно, но telnet у мну почему-то отказался работать. ну, что с ламо возьмешь). Это не просто баловство, теперь можно отключить монитор на одной из машин и работать с ней удаленно, не поднимая задницы с кресла.

Терминал -- это конечно хорошо, но ещё хотелось бы со старой машины иметь доступ к 250гиговому венику основной. Для расшаривания каталогов по сети служит NFS (Network File System). Советую хотя бы в общих чертах ознакомиться с документом NFS-HOWTO. Для начала убеждаемся, что ядро собрано с поддержкой NFS. По умолчанию она включена, но на домашних компах, которые не подключены к сети, её обычно выключают. Итак, если в ядре её нету -- включаем. Компилируем, перезагружаемся. Теперь устанавливаем пакет tcpip-*-*-*.tgz (из раздела N) и добавляем разрешение выполнения сценарию rc.inet2. Выполняем его, если до этого он был неисполняемым. Потом мне пришлось отдельно запускать (в следующем порядке) три утилиты
rpc.portmap
rpc.nfsd
rpc.mountd
Открываем файл /etc/exports и добавляем туда строки следующего вида
/mnt/win_f old(ro)
Ясно, что вначале пишется каталог, который предполагается расшарить, затем имя машины, которая будет его у себя монтировать, а затем опции.
Чтобы заставить демона nfsd перечитать конфиг, пишем
exportfs -a
exportfs
После этого можно на другой машине (в моем сллучае -- машине old) добавлять в fstab такую строку
main:/mnt/win_f /mnt/win_f defaults
Теперь можем писать в консоли
mount main:/mnt/win_f
предварительно создав каталог /mnt/win_f
Всё! Только нужно помнить, что, расшаривая корневой каталог, мы не расшариваем вложенные каталоги, которые примонтированы отдельно и хранятся на другом устройстве. Их надо добавлять в файл exports и монтировать на удаленной машине ОТДЕЛЬНО.
На этом пока всё. продолжение возможно следует.

Комментариев нет: