Compaq Descpro и NetBSD 1.6.1

в 7:42, , рубрики: netbsd, старое железо, метки: ,

В середине августа 2003 года я первый раз встретился этим компьютером. Работал я тогда в мелком провайдере, ходил целыми днями с бухтой витой пары, лесенкой и полными карманами сетевых карт на RTL8139(в Win2k были встроенные драйвера) и RTL8029 (да-да, у нас были сегменты сети на BNC!).

Через знакомых, ко мне обратился хозяин маленькой фирмы с просьбой настроить ему маршрутизатор, чтоб за недорого, надежно и безопасно. Стоит особо отметить, что в те времена 80% всех подключаемых мной контор обходились установкой Win2k и второй сетевой карты на компьютер секретаря или другого работника (Хо-хо! Сделали общий доступ на интерфейс и вперед, в Интернеты!). Остальные 15% ставили для этих целей специальный компьютер под управлением какой-либо *nix-like ОС и только 5% имели маршрутизатор или межсетевой экран в классическом понимании.

И так, что же это была за машина? Это был фирменный Compaq Descpro, с процессором PIII, несущий на борту аж 512Мб памяти, правда без встроенной сетевой карты. Обычный офисный трудяга тех лет. Штемпель на крышке указывал на дату производства – 2 ноября 2000 года. В общем, что было не жалко.

Compaq Descpro и NetBSD 1.6.1

Выбор ОС передо мной даже не стоял – я переживал тогда период страстного увлечения NetBSD.

Compaq Descpro и NetBSD 1.6.1

Процедура установки этой операционной системы не намного сложнее аналогичного процесс а для FreeBSD(sysinstall) и уж точно намного удобнее, чем у OpenBSD.

Набор требуемых заказчиком функций достаточно обычен – пакетная фильтрация, NAT, прокси-сервер для кэширования трафика (безлимитных тарифов тогда не было не только для юр.лиц, но и для физиков, насколько я знаю) и кэширующий DNS. Всё необходимое ставилось мной из пакетов, так как сборка из pkgsrc заняла бы слишком много времени, да и смысла особого я в этом не видел.

Хотя заявляемая поддержка большого количества платформ и архитектур, для данной ОС, и носит достаточно условный характер (я знаю, о чем говорю на примере портов sun4v и hppa), для 386 спектр поддерживаемой периферии, на тот момент, был достаточно широк.

После сдачи компьютера заказчику, я виделся с ним еще несколько раз, но в основном в профилактических целях. А потом – шли годы, шлюз, очевидно, работал без сбоев, контакты потерялись, фирма росла, взяли администратора, но он больше разбирался в 1С, чем в NetBSD, да и необходимости что-либо менять, судя по всему, не возникало.

И вот, месяц назад, я обнаруживаю в почте письмо, с вопросом, не хочу ли я забрать этот компьютер себе? Из мелкого тщеславия я оставил автограф под крышкой с названием своего сайта и датой установки, вот он и сработал. В качестве причины замены указывалось, что после смены провайдера и раширения канала изменились сетевые настройки, которые были исправлены, но скорость работы с Интернет не превышала 1 мб/с.

Итак, давайте же заглянем во внутренний мир этого представителя компьютерного мира. Сразу оговорюсь, что привод DVD был установлен настоящее время, та как он у меня был, а в Compaq его не было.

NetBSD 1.6.1 (SiberianSun) #0: Wed Aug 20 21:17:36 MSD 2003
    root@gw.siberiansun.net:/usr/src/sys/arch/i386/compile/SiberianSun
cpu0: Intel Pentium III (Coppermine) (686-class), 863.89 MHz
cpu0: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 2-way
cpu0: L2 cache 256 KB 32b/line 8-way
cpu0: features 383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 383fbff<PGE,MCA,CMOV,FGPAT,PSE36,MMX>
cpu0: features 383fbff<FXSR,SSE>
total memory = 510 MB
avail memory = 470 MB
using 6144 buffers containing 26236 KB of memory
BIOS32 rev. 0 found at 0xe7300
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82815 Hub (rev. 0x02)
agp0 at pchb0: aperture at 0x44000000, size 0x4000000
vga1 at pci0 dev 2 function 0: Intel 82815 Graphics (rev. 0x02)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
ppb0 at pci0 dev 30 function 0: Intel 82801AA Hub-to-PCI Bridge (rev. 0x02)
pci1 at ppb0 bus 2
pci1: i/o space, memory space enabled
rtk0 at pci1 dev 9 function 0: RealTek 8139 10/100BaseTX
rtk0: interrupting at irq 5
rtk0: Ethernet address 00:80:48:18:01:70
ukphy0 at rtk0 phy 7: Generic IEEE 802.3u media interface
ukphy0: OUI 0x000000, model 0x0000, rev. 0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ep0 at pci1 dev 10 function 0: 3Com 3c595-TX 10/100 Ethernet
ep0: interrupting at irq 9
ep0: address 00:20:af:d2:0d:6a, 64KB word-wide FIFO, 3:1 Rx:Tx split
ep0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX (default 100baseTX)
pcib0 at pci0 dev 31 function 0
pcib0: Intel 82801AA LPC Interface Bridge (rev. 0x02)
pciide0 at pci0 dev 31 function 1: Intel 82801AA IDE Controller (ICH) (rev. 0x02)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <ST340014A>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 38165 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 78163247 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4 (Ultra/66) (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode
atapibus0 at pciide0 channel 1: 2 targets
cd0 at atapibus0 drive 1: <_NEC DVD_RW ND-4550A, , 1.07> type 5 cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
pciide0: secondary channel interrupting at irq 15
cd0(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA data transfers)
uhci0 at pci0 dev 31 function 2: Intel 82801AA USB Controller (rev. 0x02)
uhci0: interrupting at irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
auich0 at pci0 dev 31 function 5: i82801AA (ICH) AC-97 Audio
auich0: interrupting at irq 5
auich0: ADS96 codec; headphone, Analog Devices Phat Stereo
audio0 at auich0: full duplex, mmap, independent
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
lpt0 at isa0 port 0x378-0x37b irq 7
pcppi0 at isa0 port 0x61
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
isapnp0: no ISA Plug 'n Play devices found
biomask fd45 netmask ff65 ttymask ffe7
Kernelized RAIDframe activated
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
IP Filter: v3.4.29 initialized.  Default = pass all, Logging = enabled
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)

Да, одна сетевая карточка довольно неплоха, она использовалась в качестве внутреннего интерфейса. Вторая – откровенный ширпотреб RTL8139.

Из ядра GENERIC, итак небольшого (6254651 байт для 1.6.1), были убраны лишние драйвера, что позволило еще сократить его размер до 2602114 байт. Особо стоит отметить скорость компиляции ядра – это достаточно быстрый процесс, даже по современным меркам (если каталог compile/ не пуст, то дело пойдет намного быстрее).

#config Compaq Descpro и NetBSD 1.6.1

#make depend

Compaq Descpro и NetBSD 1.6.1

#make

Compaq Descpro и NetBSD 1.6.1

DHCP по прежнему работает(динамическое обновление внутренней зоны DNS), DNS сервер работает в качестве кэширующего, хотя время получения ответов довольно большое. Прокси-сервер работает. Софт очень старый, с огромным количеством уязвимостей.

BIND9 был поставлен из пакетов, так как поставляемый в составе системы BIND8, даже в 2003 году считался устаревшим.

Compaq Descpro и NetBSD 1.6.1

Довольно быстро нашлась причина медленной работы – ALTQ, очевидно в его настройки администратор не посмотрел. ALTQ настроен на внутреннем интерфейсе (сетевая карта 3Com – em0), так как рассчитан на обработку исходящего трафика. То есть из внешней сети поток на внутренний интерфейс не может превысить 95% от 1 мб/с. ALTQ, в данной версии NetBSD, для сетевых карт rtl8139 не поддерживается, поэтому ширина входящего канала никак не регулируется. Да, это не очень красиво выглядит, но таковы были мои знания о сетевых технологиях на тот период и второй сетевой карты, поддерживаемой ALTQ, у меня не было.

Compaq Descpro и NetBSD 1.6.1

Основным пакетным фильтром для NetBSD является IPF, написанный Дарреном Ридом. В NetBSD 1.6.1 используется версия v3.4.29, текущая версия пакетного фильтра — 5.1.1. В сети можно найти много документации по настройке IP Filter, в том числе и на русском языке.

Compaq Descpro и NetBSD 1.6.1

Тесты iperf-ом показали, что rtk0 – не самая достойная сетевая карта, что видно на нижеприведенных скришотах в большом количестве прерываний. Так же мной было обнаружено большое потребление ресурсов утилитой ipmon – причина оказалась проста – я забыл убрать лишние «log» в наборе правил.

«Эталонное» тестирование: LAN 100мб/с на не самых хороших сетевых картах, в обход маршрутизатора:

Compaq Descpro и NetBSD 1.6.1

Через маршрутизатор, с отключенным ALTQ:

Compaq Descpro и NetBSD 1.6.1

Нагрузка на сервер с отключенным ALTQ и «log» в правилах IPF:

Compaq Descpro и NetBSD 1.6.1

Нагрузка на сервер с включенным ALTQ, «log» в правилах IPF убраны:

Compaq Descpro и NetBSD 1.6.1

Нагрузка на сервер с отключенным ALTQ, «log» в правилах IPF убраны:

Compaq Descpro и NetBSD 1.6.1

Работа ALTQ:

Compaq Descpro и NetBSD 1.6.1

Подводя итоги, хотелось бы сказать, что по прошествии стольких лет маршрутизатор работоспособен, хотя для работы с высокоскоростным каналом и необходимо заменить сетевую карту rtl0.

Более чем уверен, осталось еще немало машин, продолжающих свой нелегкий труд по передаче пакетов, в самых тяжелы условиях — в пыльных кроссовых, грязных чердаках и под цветочными горшками на подоконниках, от которых никто не помнит паролей и которые страшно выключать.

Compaq Descpro и NetBSD 1.6.1

А какие встречи с прошлым были у тебя, %username%?

Оговорка: внешние и локальные адреса, доменное имя оборудования изменены и все совпадения случайны и не намеренны.

Автор: MixaSg

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js