Ключевые слова:bsd, (найти похожие документы)
From: Евгений Кондратов aka Udjin <udjin@ablogic.ru>
Newsgroups: fido7.ru.unix
Date: Mon, 4 Dec 2000 13:01:37 +0000 (UTC)
Subject: Программный рутер на базе FreeSCO
Время "Free"
Часть 1.
Евгений Кондратов aka Udjin <udjin@ablogic.ru
>
Все что Вы прочтете ниже не претендует на полноту и
отражает субъективную точку зрения Автора.
Сокращения принятые в тексте
ISP - Интернет сервис провайдера (Internet Service Provider)
DNS - Сервер доменных имен (Domain Name Service (Server))
DHCP - Сервер динамических адресов (Dynamic Host Control Protocol)
WINS - Сервер имен Windows (Windows Internet Name Service (Server))
client - Клиент (computer connected to local network)
NAT - он же Masquerad технология маскирования адресов - (Network Address
Translation)
DMZ - Частная сеть (de military zone)
MS - Microsoft Corp.
ПО - программное обеспечение
Железо - hardware
Почему.
Довольно долгое время я использовал в своей работе продукты Microsoft.
В частности: NT4, NT2000. IIS3 - 4, MS PROXY SERVER, MS SQL Server 6.5 -
7.0 - 2000.
Они хороши, и у меня не было причин отказываться от их использования
(некоторые из них я и по сей день использую и буду использовать),
но таки решил "уходить" на свободно-распространимое программное
обеспечение. Причина - непрозрачность продуктов от MS. За дружелюбным
интерфейсом которых кроется нечто, работающее по собственным правилам, и
навязывающее свою волю пользователю. Для меня этого оказалось достаточным
чтобы обосновать перед самим собой отказ от продуктов MS и уход под
знамена GPL (???)
Выбор ПО.
Передо мною лежат коробки с операционными системами
RedHat 7.1 Free BSD 4.4 AltLinux Junior 1.1 AltLinux Business Server
RosLinux 1.1 - их можно разделить на 3 семейства: RedHat, FreeBSD и клоны
Mandrake.
Все указанные выше операционные системы я пощупал, опробовал на различных
за дачах, сделал некие выводы. Поскольку мне нужно работать, а не собирать "кубик-рубика" по эмпирическим правилам, то выбор пал на Free BSD.
Стройная и понятная операционная система для сервера. Логичная. Строгая.
Мечта системного администратора.
Сторонникам семейства Линуксов также воздалось - тексты набираются на машине работающей под управлением RedHat 7.3.
Домашняя сеть маршрутизируется в интернет через шлюз под управлением FreeSCO.
О чем статьи?
Серия статей будет посвящена решению конкретных задач.
Под каждую задачу я выбирал наиболее оптимальное, с моей точки зрения, решение.
В статьях я опишу последовательность действий , и попытаюсь обосновать свой
выбор в каждом конкретном случае.
Критерий оценки оптимальности выбора - деньги потребные на создание соизмеримого по требуемой функциональности программно/аппаратного комплекса.
Задача 1.
Строим программный Роутер.
Домашняя сеть из 3-х персональных компьютеров. Доступ в интернет - модемное
соединение.
Необходимо раздать интернет-траффик внутри DMZ (равноправно) и сделать сие
"дешево и сердито".
Решалось ранее следующим образом.
Машина: P200MMX 64Mb RAM 2GB SCSI, Ethernet 10/100 PCI, Courier
V. Everything
ПО: NT4 Workstation + eServ 2.96 (позже Squid 2.4) + AtGuard
Поиск программного роутера.
Для домашней сети покупать сервер доступа от CISCO или роутер Zixel накладно, но хотелось иметь нечто с интерфейсом IOS CISCO, столь же надежное, в рамках разумного, и как можно дешевле.
Одно дисковых дистрибутивов в сети достаточно (начиная с
образцово-показательного "демо" от QNX).
Я остановил свой выбор на FreeSCO (http://freesco.wallst.ru/).
Автор сего произведения "админского" искусства Serge V Storozhevykh
FreeSCO - это реинкарнация мини роутера "Ballantain"
(http://freesco.wallst.ru/ballantain/bltrus.shtml,
http://www.atom.krasnet.ru/~evg/ipmasq.shtml) того же автора
Текущая версия FreeSCO, на момент написания статьи - 0.2.7
Подкупила меня его универсальность и не требовательность к железу.
Разработчик заявляет минимально 386 процессор, 6(8) мегобайт памяти +
Floppy Drive.
Что умеет Freesco
- работать бриджем
- поддерживает Firewall и Network Address Translation
- может кешировать DNS запросы
- может поднять собственный DNS Server (BIND v4)
- DHCP Server
- HTTP Server
- Telnet server (на одно соединение в квант времени)
- Print Server
- Remote Access Server (до двух модемов)
- Time Server
- умеет роутить между 3 - мя Ethernet
- дозваниваться до провайдера
- позволяет ставить дополнительно любой софт который сумеете установить
Как минимум - SQUID и утилиты для повседневного контроля
386 - й процессор я не нашел, а нашел в чудно тонком slim - case 486 DX66
+ 16 Мб RAM + 120MB IDE (Sea Gate), 3COM509, Winbond Multi Port Adapter, и на время инсталляции использовал флоппи-драйв. Доступ в интернет - модем Courier.
Установка.
Перед установкой желательно препарировать жесткий диск - разметить fdisc,
отформатировать его и сделать загрузочным.
Перемещайтесь к download (http://freesco.wallst.ru/dload/index.shtml)
разделу и качайте.
Качать нужно 2 зип-фала - freesco-027.zip и modules-027.zip
Распакуйте их куда пожелается.
Что мы имеем
Папка TCLIENT.W9x, клиент Time Server для Windows 95/98
Папка TCLIENT.UIX, клиент Time Server для linux (unix)
Файлы:
- freesco.scp - скрипт для модемного соединения клиентов Windows 95/98
- freesco.XYZ - образ загрузочного диска
- rawrite.exe - программа для переноса образа загрузочного диска на дискету
В каталоге модулей находится детальная инструкция по установке
модулей (драйверы для различных сетевых карт и наборы раскладок клавиатуры
на все случаи жизни)
Теперь сделайте загрузочный диск:
rawrite.exe freesco.XYZ
Загрузитесь с него.
После того как получите приглашение операционной системы
заходите как root.
(имя - root и пароль root)
Далее:
move2hdd
Удалите из флоппи драйва загрузочный диск и наберите в командной строке
router.bat setup
Настройка.
Прежде чем приступить к настройке необходимо спланировать свою сеть и
сервисы которые вы будете использовать.
В моем случае это выглядит следующим образом
- DNS - как кеширующий сервер, доступ только для клиентов внутренней сети;
- HTTPD - используется для управления роутером из внутренней сети;
- Time Server - синхронизируется с тайм сервером провайдера;
- NAT - настраиваем для клиентов DMZ на интерфейсе ETHERNET;
- DHSP - диапазон адресов 192.168.0.10-20;
- ETHERNET - адрес 192.168.0.1;
- провайдер выделяет динамический адрес;
- сервисы (DNS-TELNET-TimeServer-HTTPD) - в режим S (secure) - т.е. доступ только из DMZ.
Для первичной настройки я рекомендую воспользоваться мастером настройки, и он шаг за шагом проведет вас по всем настройкам.
Выглядит это так.
Выбирайте опцию меню Modem-to-Ethernet router in dial-on-demand mode (analog or ISDN modem) (Роутер между интерфейсами модема и Ethernet в режиме дозвона по требованию).
Я опишу наиболее важные, с моей точки зрения, настройки.
711 Hostname of this computer [router]? Press <Enter>
Тут запрашивается имя вашего роутера. У меня - kuzya;-)
712 Domain name [inet]? Press <Enter>
Имя вашей сети (DMZ) - FREENET
How many ethernet cards do you have [1-3]? 3
Количество установленных ETHERNET карт - 1
811 I/O port address of 1st ethernet card [0x300]?
812 IRQ line of 1st ethernet card [11]?
Последовательно будут запрошены адреса ввода / вывода и прерывания для
каждого из адаптеров, в случае - если используются PnP адаптеры - можно
пропустить эти настройки
720 Use DHCP client for configuring 1st network interface y/n [n]? n
Для моего случая (подключение к провайдеру по модему) необходимо указать
"n", если используется в качестве внешнего интерфейса ETHERNET или
доступ осуществляется с помощью кабельного модема, - то придется
использовать клиента DHCP.
721 IP address of 1st network interface [10.0.0.1]? Press <Enter>
722 Network mask [255.0.0.0]? Press <Enter>
723 IP range [10.0.0.100 10.0.0.150]? Press <Enter>
Для нашего случая не принципиально
В случае выделенного канала - запросите адрес у провайдера.
14 Screen saver, in minutes. 0 - disable [0]? Press <Enter>
0
15 Swap file size in kbytes (on boot device). 0 - disable [0]? <Enter>
Размер файла подкачки - у меня 16.
41 Enable caching DNS server y/s/n [y]? Press <Enter>
s
421 Enable DHCP server y/s/n [y]? Press <Enter>
s
422 WINS address (if you have one, otherwise - n) []? Press <Enter>
n или укажите IP машины на которой работает сервис WINS
431 Enable public HTTP server y/s/n [n]? Press <Enter>
s
441 Enable time server and router control via HTTP y/s/n [y]? <Enter>
s
442 Control HTTP server IP port [82]? Press <Enter>
82
451 Enable Print Server y/s/n [y]? Press <Enter>
n
452 Print server IP port [515]? Press <Enter>
453 Output device name [lp1]? Press <Enter>
Далее мастер попробует идентифицировать ваш модем и настроить параметры
порта - SOFT модемы не опознаются.
32 Host DNS address (usually your provider's DNS) []?
Тут необходимо указать IP DNS - сервера провайдера
Будут запрошены первичный и вторичный DNS сервера.
16 Keep up ppp link for N sec. 0 - use filter.cfg; 1 - forever. [600]?
Press <Enter>
У меня - 1. Или укажите количество секунд не активности соединения.
31 ISP phone numbers [T4004444 T5004444]?
Номера модемного пула провайдера. T - тон набор, P - пульс.
331 Does your ISP give you dynamic IP address [y]? Press <Enter>
В зависимости от того, выделяет Ваш провайдер адреса клиентам из
динамического диапазона или вы имеете постоянный адрес соединения
В моем случе - y. Если постоянное соединение или фиксированный IP - то укажите его.
341 Authentification method - pap/chap/script []? script
pap или chap.
После того как сохраните конфигурацию перезагрузитесь
reboot.
И после перезагрузки Ваш роутер самостоятельно дозвонится до провайдера с
получением первого запроса от клиентов DMZ.
Остальные пункты настройки очевидны - но я приведу укороченный листинг
своей конфигурации.
********
----- cat /etc/system.cfg -----
# [System]
ROUTER=dialup # 0.dialup/leased/ethernet/bridge
HOSTNAME=kuzya #711. Router name
DOMAIN=freenet #712. (Local) domain name
ENAMSQ=y # 11. Enable NAT and firewall
ENABRG=n # 12. Enable bridging mode? DONT TOUCH!!!
BIGMEM=y # 13.If 16+MB RAM start ppp bsd compression
SAVERS=0,0 # 14. Savers - screen (min), hdd (x5 sec) 0 -off
SWPSIZE=16 # 15. Swap size in Kb on boot device. 0 - off
LOGSIZE=150000,10000 # 16. System_log, logins_log sizes (bytes)
DEFISP=noname # 6. Default dialup ISP
# [Services] # y - worldwide/s - local/n - disable
ENADNS=s #411. Enable caching DNS server
LOGDNS=n #412. Enable debug info
ENADHCP=s #421. Enable DHCP server
WINSADDR= #422. WINS address (for DHCP server)
LIZTIME=604800,604800 #423. default-lease-time, max-lease-time
ENAWWW=s #431. Enable Public HTTP Server
WWWPORT=80 #432. on port
ENAWWA=s #441. Enable Time Server and control via HTTP
WWAPORT=82 #442. on port
TIMADDR=121.222.1.2 #443.Host timeserver address, empty - disable
TIMZONE=+0100 #444. Offset to UTC (-1200 - +1200)
ENALPD=n #451. Enable Print Server
LPPORT1=515 #452. on port
LPDEVI=lp1 #453. on output device
LPPORT2=516 #454. Second lp server on port, empty - disable
LPDEV2=lp2 #455. on output device
ENATEL=s # 46. Enable telnet server
# [Security]
TRUSTLN=p #211.Trust local nets y/n/p{artual}
TRUSTMD=n #212.Modem links have access to local networks
RINGS=2,7 #220.Rings before answer at login, nologin time
MonTIM="" #221. Nologin times for modem users
TueTIM="" #222
WedTIM="" #223
ThuTIM="" #224
FriTIM="" #225
SatTIM="" #226
SunTIM="" #227
# [Modems]
MODEM0=cua1 # 51.1st modem
MSPEED0=115200 # 52. port's speed
MINIT0="ATZ" # 53. init string
MTU0= #541. Maximum Transmit Unit
MRU0= #542. Maximum Receive Unit
MADDR0= # 55. ppp link remote addr (for dialin purpose)
# [Networks]
USEDHCP0=n #720.Use DHCP client to config this interface
INTNAME0=eth0 #721.Interface name (eth0|arc0e|arc0)
DHCPLOG=y #722. Enable DHCP client messages in the log
DHCPDNS=y #723 Enable auto configuration of DNS via DHCP
IPADDR0=192.168.0.1 #724.IP adress of this interface
NETMASK0=255.255.255.0 #725. Network mask
NETWORK0=192.168.0.0 # Network address
BRDCAST0=192.168.0.255 # Broadcast address
#726.IP pool, empty disables DHCP on this interface
IPRANGE0="192.168.0.10 192.168.0.20"
********
Следующим шагом меняйте пароли установленные по умолчанию.
В системе уже существуют следующие пользователи:
root - administrator
admin - administrator (http)
up - отключен
down - отключен
block - отключен
unblock - отключен
force - отключен
unforce - отключен
wuser - trusted user (http)
ppp
Необходимо сменить пароли пользователям:
root
admin
wuser
ppp
Команда - chpass [имя пользователя]
Доступ к интерфейсу администрирования через www
http://192.168.0.1:82
Для инсталляции дополнительных пакетов используйте утилиту
installpkg (installpkg http://anyvhere.any/any.sh)
Для обеспечения загрузки компьютера c FreeSCO без монитора и клавиатуры измените настройки CMOS SETUP - в частности поставте в разделе GENERAL:
HALT - NO ERROR
Монитор и клавиатуру можно отключать, тщательно смажте подшипник вентилятора в блоке питания циатином с графитом и забудьте о своем роутере - у меня за 3 месяца работы не было ни одного сбоя.
На стороне клиентов настройки сводятся к установке протокола TCP-IP c получением параметров по DHCP.
Никаких дополнительных настроек на клиентах делать не требуется. Все работает благодоря NAT прозрачно.
Загрузка процессора при обслуживании 3 - х клиентов не превышает 4%.
Испльзуется при работе 13,2 мб памяти.
Таким образом 486DX66 способен маршрутизировать сеть куда большую чем моя домашняя и на скоростях куда как больших.
Оценка программного роутера FreeSCO.
Персональный компьютер 486 DX66/16/120/3C-509 - US 30
FreeSCO - US 0
Итого US 30
Для примера аналогичная конфигурация которую я использовал
P200/64/2GB/3C-509 - US 100
NT4Workstation - US 120
eServ - US 90
Итого US 310
Ссылки на ресурсы:
Адаптированное для FreeSCO ПО
http://www.freescosoft.com/home/
Информация на русском о FreeSCO
http://kotbrs.virtualave.net/
Превращение FreeSCO в монстра: -))
http://www.freesco.org/~wapr/
В статье не хватет
1. Рисунков
2. Методики оценки решений с точки зрения надежности / производительности.
А как насчет настроек? Мне необходимо:
1)делить скорость, как рутером с поддержкой Qos
Было бы неплохо:
2)привязываться по MAK адресу
3)установить и прокси сервер на этой машине для "ускорения" интернета
Но самое главное ДЕЛИТЬ СКРОРОСТЬ, так как у меня уже есть рутачёк - железка, вот только там поддержки Qos нету и из- за этого страдаю...
Машина под сервер:
K6 300MHz 96MB of RAM 4GB HDD floppy/cd-rom (сейчас на ней стоит NT4Server)
Вообще пакетов в официальном репозитории http://www.freescosoft.com/ вполне достаточно для большинства задач....
Так же очень рекомендую местный форум http://forums.freesco.org/ там есть рускоязычный раздел. Да и большинство пакетов там сначала анонсятся...