се-всем-всем" (в сети). 128.8.255.255 Сети делятся на классы: Класс A. "Огромные" сети. Адреса этих сетей лежат в промежутке: 1 - 126. Маска сети: 255.0.0.0 Содержит до 16387064 адресов (256*256*256). Адреса хостов в этих сетях вида: 125.*.*.* Класс B. "Средние" сети. Адреса этих сетей лежат в промежутке: 128.0 - 191.255 Маска сети: 255.255.0.0 Содержит до 64516 адресов (256*256). Адреса хостов в этих сетях вида: 136.12.*.* Класс C. "Маленькие" сети. Адреса сетей лежат в интервале: 192.0.0 - 255.254.255 Маска сети: 255.255.255.0 Содержит 254 адреса. Адреса хостов в этих сетях вида: 195.136.12.* Класс D. "Multicast-сети" (групповая адресация) (в стадии разработки) Адреса сетей лежат в интервале: 224-239 Класс E. "Экспериментальные" 240-250 Адреса 0, 127, 255 - специальные и для обычных IP не используется &dD2.1. Private Address Space&d@ Если ваша сеть будет использоваться только внутри организации, и машины не будут иметь непосредственного выхода в интернет, то адреса для нее можно брать "с потолка". В документе RFC 1597 "Address Allocation for Private Internets" March 1994: The Internet Assigned Numbers Authority (IANA) зарезервировал три блока IP адресов для использования во внутренних сетях: 10.0.0.0 - 10.255.255.255 Класс A 172.16.0.0 - 172.31.255.255 Класс B 192.168.0.0 - 192.168.255.255 Класс C Роутеры большинства ISP эти адреса не маршрутизируют, что добавляет им(адресам) безопасности. &dD2. Объявляем IP-адрес на наш ethernet'ный контроллер&d@. Конфигурация сети на UNIX-машине обычно делается автоматически при начальной загрузке. Вкратце ее можно описать так: Определение трех однотипных карт в Linux (1*ISA, 2*PnP): /etc/conf.modules alias eth0 ne alias eth1 ne alias eth2 ne options ne io=0x220,irq=5 Объявляем, что наш IP-адрес 198.8.2.1 и он поднят на ethernet'ную карту по имени elx70 . В случае Motorol'ы так на- зывается ethernet, торчащий из главной системной платы - платы с процессором. ifconfig e1x70 198.8.2.1 up Объявляем, что наш второй контроллер с именем m3760 (нижняя плата) имеет IP-адрес 198.8.3.1 ifconfig m3760 198.8.3.1 up &dD3. Маршрутизация локальной сети&d@. Объявляем, что машины с адресами вида 198.8.2.* *=1,...,254 си- дят на нашем верхнем локальном сегменте ethernet, и разговари- вать с ними надо напрямую, через верхний ethernet, соответству- ющий нашему адресу 198.8.2.1 - т.е. - elx70. А с машинами, име- ющими адреса вида 198.8.3.* - через нижний ethernet - с адресом 198.8.3.1 route add net 198.8.2.0 198.8.2.1 netmask 255.255.255.0 0 route add net 198.8.3.0 198.8.3.1 netmask 255.255.255.0 0 Сетевые пакеты для IP-адресов, которые не лежат в нашей локаль- ной сети, переправлять на машину с сетевым адресом 198.8.2.107 - а уж она сама будет разбираться, что с ними делать, и как доставить их до конкретных адресатов. route add default 198.8.2.107 1 Последний аргумент команды route - метрика. Ее можно интерпре- тировать как "расстояние" до "того" gateway'я, или "сколько пе- ресадок между gateway'ями придется сделать IP-пакету по дороге туда. Поскольку IP-адреса 198.8.2.1 и 198.8.3.1 соответствуют нашим собственный платам ethernet, то и метрика (расстояние) до них 0. 198.8.2.107 - другая машина - "расстояние до нее" 1. Смотрим, что у нас получилось netstat -rn # распечатать таблицу маршрутизации ping -s fedfond # "прозвонить" узлы сети ping -s fedfond-gate ping -s 198.8.2.107 netstat -i # статистика о работе сетевых интерфейсов Настала пора объяснить, что такое lo0 и localhost. Это так на- зываемый Loop-back интерфейс. Он имитирует сетевой интерфейс локально, не выходя за границы нашего компьютера. Loop-back ин- терфейсу соответствует зарезервированный за ним IP-адрес 127.0.0.1 &dD4.&d@ Конфигурирование TCP/IP на Мотороле 922. Придумайте сетевое имя вашего компьютера. Пусть вы решили, что ваш компьютер должен называться fedfond, и иметь IP-adres 198.8.2.1 . Однако не забывайте, что у Моторолы ДВА etherн net-контроллера, и КАЖДЫЙ из них ДОЛЖЕН иметь свой УНИКАЛЬНЫЙ IP-адрес. Мы решаем, что второй наш ethernet будет иметь IP-адрес 198.8.3.1, ну и этому адресу можно назначить вполне человеческое имя, например "fedfond-gate". ВНИМАНИЕ: если вы внимательно рассмотрите содержание файла /etc/inet/rc.inet, особенно строку вида /usr/sbin/ifconfig e1x70 `uname -n`-gate $net_mask up то поймете, что второй ethernet должен называться именно fedfond-gate , и никак иначе. Итак, чтобы установить сетевое имя и IP-адреса нашего host'а 1. командой sysadm установите "nodename" . ВНИМАНИЕ: именно nodename (имя узла) а не systemname (имя операционной системы) 2. В файл /etc/hosts вставьте строчки, привязывающие IP-адреса к имени fedfond и, ВНИМАНИЕ!, fedfond-gate 198.8.2.1 fedfond 198.8.3.1 fedfond-gate 3. Перезагрузитесь. &dDКонфигурирование 2-го ethernet в Linux&d@ Первый-то ethernet конфигурится с раздачи - сложность появится, когда мы захотим увидеть второй. Например можно в /etc/rc.d/rc.local поставить такие команды: # подгрузка дравера с дековским чипом 2140 insmod /lib/modules/2.0.18/de4x5.o io=0 # выделение IP # статический роутинг на вторую сетку ifconfig eth1 10.232.172.1 route add -net 10.232.172.0 gw 10.232.172.1 netmask 255.255.255.0 Если дравер 2-го ethernet'а вкомпилирован в ядро, то активизировать его можно так: в файл /etc/lilo.conf вписать append="ether=0,0,eth0 ether=0,0,eth1" # если сработает autoprobe # в случае явного задания параметров карт append="ether=10,0x300,0xe800,eth0 ether=12,0x280,eth1" Включить роутинг: echo 1 > /proc/sys/net/ipv4/ip_forward &dDКак узнать hardware адрес ethernet'ной карты&d@ Если машины нормально сконфигурированы для TCP/IP, то достаточно попинговать их явно или по броадкасту, затем arp -a ping [-s] 123.456.789.255 arp -a Почти всегда можно разобрать машину, и посмотреть адрес, напечатанный на самой плате. Linux: Адрес печатается при загрузке ядра. Если карта сконфигурирована, то адрес сообщает команда ifconfig Sun: Адрес печатается boot-монитором при старте Hardware адрес ethernet'а на Sun можно произвольно менять находясь в boot-мониторе, или командой ifconfig подробности см. в Sun NVRAM & hostid FAQ ║ ../TXT/faqsunnvram.txt HP-UX: Адрес можно узнать командой lanscan. На рабочих станциях адрес можно узнать еще и из boot-монитора PDC. &dD5. Прикладные интерфейсы&d@. Чтобы писать программы, работающие с сетью, программист должен пользоваться каким-либо набором системных вызовов и функций. От BSD-Unix'а в жизнь вошел получивший большую популярность API Berkеlеy-sockets. AT&T System V породила TLI (Transport Level Interface) - построенный на технологии "потоков" (streams). SVR4 поддерживает и то, и другое. Поддержку сокетов обеспечивает демон inetd (Internet Super Server), поддержку TLI обеспечивает демон listen (Network Listener). &dD6.&d@ Конфигурация TLI Демон listen управляется специальной базой данных, в которую необходимо вписать IP-адрес нашего host'а. Делается это "один раз в жизни". IP-адрес задается в хитрой шестнадцатеричной за- писи. Итак, если наши IP-адреса 198.8.2.1 и 198.8.3.1, их шестнадца- теричная запись C6080201, C6080301 , то мы должны единовременно выполнить три команды: nlsadmin -i tcp nlsadmin -l '\x00020acec60802010000000000000000' tcp nlsadmin -l '\x00020acec60803010000000000000000' tcp "волшебное ^^^^^^^^шестнадцать нулей слово 0acе" | | сюда вписывается наш фактический IP-адрес &dD7.&d@ Конфигурация BSD сокетов. Для этого ничего делать не надо. Врочем, в дальнейшем, возможно, вам придется этим заниматься. Настройки inetd лежат в файлах: /etc/inetd.conf название сетевого --> имя обслуживающей сервиса программы /etc/services номер порта --> название сетевого сервиса Состояние текущих соединений можно посмотреть командой: netstat (или netstat -ta - если у вас Linux) &dDЕще несколько протоколов&d@ ARP - Address Resolution Protocol Протокол низкого уровня. Поддерживается на уровне ядра и/или дравера сетевой платы. Для определения, какой ethernet'ный адрес имеет машина, если известен ее IP-адрес. Работает по принципу broadcаst: "эй, все, все, все: IP-такой_то - отзовись", и он один отзывается. arp -a # распечатать известные нам IP-адреса и их eth-адреса RARP - Reverse Address Resolution Protocol. Для оповещения бездисковых клиентов, какой у них IP-адрес. На сервере запускается демон rarpd. У него есть файл-таблица: ether-адрес -> IP-адрес. По запросу-broadcast'у бездискового клиента вида: "эй, все,все,все, мой eth-адрес такой-то. Как меня зовут?" rarpd сообщает ему, какой у него IP (а другой де- мон bootparamd сообщает ему дополнительную информацию - где ему брать свою корневую файловую систему, например). Для обмена информацией о роутинге (маршрутизации) используются протоколы RIP, BGP, EGP, ICMP. RIP - Routing Information Protocol Внутренний протокол роутинга (внутри автономной системы). Его поддерживают демоны routed и/или gated. BGP - Border Gateway Protocol EGP - External Gateway Protocol Роутинг между автономными системами. Их поддерживает демон gated ICMP - Internet Control Message Protocol передает сообщения об ошибках в TCP/IP (например "port unreachable"), используется программами ping, traceroute, может передавать сообщение о нерациональном роутинге типа "redirect": "вообще-то можно направлять пакеты через меня, однако есть и бо- лее короткий путь". Для обмена информацией о символических именах host'ов, пользователей, групах пользователей и пр. используются протоколы DNS и NIS/YP DNS - Domain Name System. Позволяет использовать символические имена хостов помимо цифро- вых IP-номеров, и организовывать "деревянную" структуру наиме- нования доменов (типа pc101.fedfond.msk.su , ftp.sco.com и т.п.) Сервер DNS - хост, на котором запущен демон bind, и хра- нятся имена хостов в зоне(домене). На остальных хостах для оп- ределения IP-адреса по имени используются библиотечные функции библиотеки "resolver" - gethostbyname, gethostbyaddr, которые обращаются по сети к ближайшему серверу DNS, и выясняют у него IP-адрес машины по ее имени (domain-name). NIS/YP - Network Information System (используется так же название, пришедшее от фирмы Sun - Yellow Pages). Позволяет хранить на одном NIS-сервере (с демоном ypserv) информацию, единую для всей локальной сети: имена хостов, имена и права пользователей, групп пользователей, название их домашних каталогов, символические имена портов и т.д. и т.п. Еще раз об отличиях DNS от NIS/YP: DNS - система "глобальная" - действует в рамках всего Интернета, но содержит ТОЛЬКО имена хостов. NIS/YP - содержит помимо имен хостов несколько других информационных баз, но зато поддерживается только в рамках сети одной организации. &dDКонфигурирование TCP/IP на скорую руку&d@ В большинстве unix-ов имеется простая менюшная утилита позволяющая сконфигурировать основные параметры компьютера: Имя хоста, IP адрес и параметры сети, DNS сервера HP/UX: /etc/set_parms initial Linux Slackware: net_config Solaris: /etc/??? . &dDОрганизация TCP/IP по последовательным линиям&d@ Протокол TCP/IP не обязательно требует наличия etherн net'ной сети. Вполне допустимы и другие физические носители, например: Последовательные линии с подключением через порты RS-232, Скоростные линии с подключением через параллельные порты, или скоростные синхронные порты (например 485, V.435). Эти возможности обеспечиваются специализированными реализациями протокола IP: для подключения через RS-232 SLIP - Serial Line IP - самая первая реализация TCP/IP "для бедных", широко используется до сих пор. CSLIP - Compressed SLIP - модификация протокола SLIP. Сжатию подвергаются заголовки IP-пакетов. ВНИМАНИЕ: но не сами данные! В стандартном IP-пакете IP-заголовки со служебной информацией занимают порядка 40 байт. В CSLIP'е эти заголовки ужимаются до 3 байт. При пересыл- ке большого числа мелких пакетов получается существен- ный выигрыш в скорости. Если пакеты крупные, то выигры- ша не будет никакого. PPP - Point-to-Point Protocol Еще одна, современная реализация TCP "для бедных". Яв- ляется стандартным для SVR4. Более универсален. Позво- ляет также организовать передачу по последовательной линии протокола IPX. Поддерживает режимы эмуляции slip и cslip - для совместимости. для подключения через Centronix-параллельный порт PLIP - Parallel Line IP - некоторые скажут - экзотика. Ничуть не бывало. Весьма распространенная вещь. Вот когда TCP/IP по SCSI-шине - это да, это - экзотика. Кстати, RFC 1149 описывает передачу пакетов IP голубиной почтой. &dDTCP/IP по спутниковой связи&d@. Теоретических трудностей организация связи TCP/IP через спутниковую антенну нет - все выглядит также, как при модемной связи по телефону. Технология примерно следующая: с антенны выходит высокочастотный сигнал, сигнал прогоняется сквозь спутниковый модем, из модема выходит поток данных по формату High Speed Interface - завести в компьютер его можно через скоростной порт, например V.435 (логически он ведет себя приблизительно как обычный последовательный порт), и со стороны хоста - поднимается протокол PPP. Естественно, на "том конце" предполагается та же схема подключения. +-------------------+ +-----------------+ ( | протокол порт| данные |порт спутниковый| сигнал ( >< |Host PPP V.435|========|V.435 модем | ~~~~~~ ( | -TCP/IP-> | | | ~~~~~~ /\ +-------------------+ +-----------------+ Антенна Вместо Хоста со скоростным портом, модем можно подключить к специализированному устройству - "Роутеру", внутри которого "зашит" протокол TCP/IP (PPP, Ether), и имеются порты Ethernet, и High Speed Interface. Достаточно популярны для таких целей роутеры "Cisco router", "NetBlaser". +-------------------+ +-----------------+ ( | протокол порт| данные |порт спутниковый| сигнал ( >< |Router PPP V.435|========|V.435 модем | ~~~~~~ ( | -TCP/IP-> | | | ~~~~~~ /\ +-------+-----------+ +-----------------+ Антенна | ... -Ethernet------ ... &dDСкорость, которую можно получить&d@. Скорость главным образом зависит от типа и качества линии свя- зи, используемых модемов, и типа порта, в который этот модем воткнут. Практические ограничения на скорость: Скорость данных между модемами V32bis/V42 по городскому телефо- ну, или междугородней линии "Искра" до 16800 бит/сек. Реально ~ 12000 бит/с. Наличие встроенного протокола V42 сжатия данных позволяет поднять реальную (замеренную уже не между модемами, а между портами) скорость передачи несжатых данных в 2-4 раза, т.е. до 38400-57600 бит/с Максимальная скорость приема/передачи данных на последовательном порту RS-232 зависит от наличия в оном микросхем UART (Universal Asyncronous Receiver-Transmitter) 16450 - 19200 bit/s. 16550 - 19200 bit/s. (отсутствие буковки "A" - фатально) 16550A - 38400 bit/s. 16550A до 115200 bit/s. (Если операционная система "тянет") (в частности - Solaris, Unixware - нет, FreeBSD, Netblaser, Cisco router - да) В итоге реальная скорость пересылки данных: Телефон/"Искра", V32bis/V42 - 19200 бит/с. Выделенная 2-х проводка, V32bis/V42 - 38400 бит/с. Выделенная 4-х проводка, RAID,????? - 115200 бит/с. Физическая 4-х проводка<=4км, ????? до 1 Мбит/с. Оптоволокно <=?км, ????? ?? 2 Мбит/с. Антенна. Спутниковый модем. Порт V.435. PPP 64, 128, 256 Кбит/с &dD * Конфигурирование SLIP/CSLIP * &d@. Для этого соединяем два host'а нульмодемным кабелем через последовательные порты, и запускаем фоном программу slattach, переводящую порты в режим передачи протокола TCP/IP. Естественно, что SLIP надо запускать с обоих концов, причем "одинаковый". SVR4, slip slattach /dev/comport NASH-IP-ADRES IH-IP-ADRES 19200 & # переводит порт /dev/comport в режим "slip" на скорости 19200 # и устанавливает IP-адрес на slip-интерфейс SVR4, cslip slattach -c /dev/comport NASH-IP-ADRES IH-IP-ADRES 38400 & # переводит порт /dev/comport в режим "Compressed-slip" # на скорости 38400 # и устанавливает IP-адрес на C-slip-интерфейс slattach -e /dev/comport NASH-IP-ADRES IH-IP-ADRES 38400 & # переводит порт в режим slip или cslip, # автоматически определяя, какой именно протокол запущен # "на том конце", и устанавливает со своей стороны такой же Linux, SLIP. Теперь SLIP в Linux заряжается командой DIP, с конфигурационным файлом: /usr/sbin/dip config-file-name --------------------------------------------------------------- # прямой коннект нульмодемным кабелем main: get $local 193.232.171.22 get $remote 193.232.171.19 port /dev/modem speed 9600 mode SLIP exit --------------------------------------------------------------- # slip с телефонной дозвонкой --------------------------------------------------------------- main: get $local uwalt.hacktic.nl get $remote xs4all.hacktic.nl port /dev/modem speed 38400 send ATQ0V1E1X4\r wait OK 2 dial p555-1234 login: sleep 2 wait ogin: 20 send MYLOGIN\n wait ssword: 20 send MYPASSWD\n # We are now logged in. wait SOMETEXT 15 get $mtu 296 # Ensure "route add -net default xs4all.hacktic.nl" will be done default mode SLIP --------------------------------------------------------------- На обоих концах иметь симметричные файлы и запустить dip'ы Linux, CSLIP. # сперва переводим порт в режим "cslip" slattach -p cslip /dev/modem & ifconfig cs0 NASH-IP-ADRES pointopoint IH-IP-ADRES route add IH-IP-ADRES route add default gw IH-IP-ADRES Linux, PLIP. ifconfig plip1 NASH-IP-ADRES pointopoint IH-IP-ADRES route add IH-IP-ADRES route add default gw IH-IP-ADRES Установка SLIP по телефонной линии через модем. Надо заставить наш модем созвониться с "тем" модемом. После этого мы получаем прозрачное соединение между последовательными портами, по которому и "поднимаем" SLIP, см. предыдущие пункты. ( stty 19200 ; echo atdp9120123 ) < /dev/modem > /dev/modem sleep 55 Выдаем на модем команду atdp - набрать телефонный номер, и ждем 55 секунд. Надеюсь, модемам хватит этого времени, чтобы "сню- хаться". Восстановление связи в случае обрыва. Как узнать, что связь порвалась? Ping'ануть "тот" конец линка. Прежде, чем набирать модемом номер для новой дозвонки, необходимо "снять" slip с нашего последовательного порта (поскольку в режиме slip он функционирует не как последовательный порт, а как канал передачи TCP/IP). Как снять slip? Кильнуть slattach. while true # В вечном цикле do sleep 60 # Подождать минутку if ping 107.65.8.254 | grep 'is alive' ; then echo Ok > /dev/null # Если IH-IP-ADRES отзывается else # Иначе зарубаем slattach slip_pid=`ps -ef | grep slattach | cut -c1-6` kill -9 $slip_pid # набираем тамошний телефонный номер (stty 19200; echo atdp9120123) < /dev/modem > /dev/modem sleep 55 # поднимаем slattach slattach -e /dev/modem 195.8.2.3 107.65.8.254 19200 & fi done &dD * PPP * &d@ &dDMOTOROLA: PPP&d@ /etc/inet/ppphosts - перечисляет ppp-хосты Правила дозвонки и соединения с этими хостами описываются стандартными описаниями из UUCP Убедиться, что поддержка ppp присутствует в конфигурационном файле /etc/strcf Убедиться, что при загрузке запускается команда slink Непосредственное ppp-соединение активизируется при обращении ("по требованию"). Подробности искать в man ppp man pppd man ppphosts &dDLinux&d@ Все делается командой pppd. В комплект pppd входит командочка chat, в аргументах же pppd задаются IP-адреса, телефонные номера, инициализация модема, chat-овый диалог с машиной провайдера. Пример: (Почти из жизни) явно задаем наш IP=123.456.789.12 pppd connect 'chat -v ABORT "NO DIALTONE" ABORT BUSY "" ATZ OK \ atdp9386933 Username: ppmoshkow Passwd: mypasswd mode ;' \ crtscts defaultroute modem noipdefault -detach mru 1500 \ 123.456.789.12:194.85.105.1 /dev/modem 38400 Пример: взять адреса заданные сервером pppd connect 'chat -v ABORT "NO DIALTONE" ABORT BUSY "" ATZ OK \ atdp9386933 Username: ppmoshkow Passwd: mypasswd mode ;' \ crtscts defaultroute modem noipdefault -detach mru 1500 \ 0.0.0.0: /dev/modem 38400 &dDWindows 95&d@ Поставить допоолнительный пакет из MS Plus - "Network dialup script editor" Подключить через него скрипт: --------------------------------------------------------------- proc main waitfor "login:" until 5 transmit $USERID, raw transmit "^M" waitfor "Password:" transmit "password^M" waitfor "modem" until 5 endproc --------------------------------------------------------------- В звонильной форме вписать logname, password не вписывать, ибо все равно он забывается при каждом перезапуске. &dDHP-UX 10.20&d@ На рабочих станциях под HP-UX/10.20 родного ppp НЕТ. Только slip. Можно сftpить free-варный пакет iij-ppp http://www.verinet.com/~barthold/ftp/iij-ppp0.94beta2.hpux10.tar.gz ║ http://www.verinet.com/~barthold/ftp/iij-ppp0.94beta2.hpux10.tar.gz Документация по конфигурации и инсталляции прилагается к пакету. На серверах и рабочих станциях SLIP назван "ppl" и включен в стандартный пакет "LAN/9000 Link" product. . &dDСетевая файловая система NFS&d@ - Network File System. Стандартной сетевой файловой системой для UNIX'а является NFS. Любая Unix-машина умеет монтировать по протоколу NFS удаленные файловые системы и использовать их как свои собственные, а так же может выделять свои каталоги для других машин. Выглядит это примерно так: mount -F nfs udalennaq.mashina:/katalog_tam /katalog или, если у вас BSD или Linux mount -o rsize=8192,wsize=8192 mashina:/katalog_tam /katalog ls -al /katalog Хотя NFS был когда-то разработан для Unix'а, имеется реализация NFS для MSDOS-овских PC. Эти пакеты принято называть сводным именем PC/NFS (Не путать с названием "PC-NFS" - это реализация PC/NFS от фирмы "Sun Select"). Т.е. PC'юк, на котором запущен NFS для PC, может монтировать в качестве сетевых дисков каталоги Unix'овской машины, которые она выделяет в NFS. - Фактически, PC/NFS дает для PC те же самые возможности, что и Netware - удаленный сетевой диск и удаленный сетевой принтер. Разница лишь в том, что Unix-host, помимо позволения NFS-ения себя, в состоянии заниматься и своими собственными задачами, а сервер Netware ничем кроме обслуживания своих клиентов, изображая для них диск с ethernet'ом, заниматься не приспособлен, но работает быстрее раза в 1.5-2. Ну и занимают NFS-ные резиденты порядка 100 Kb оперативной памяти, в то время как Netwar'ные - порядка 50. &dD2.&d@ Оценочные скорости пакетов PC/NFS различных произво- дителей: 486dx2/66, адаптер wd8013 16 bit: Пакет: чтение Kb/сек запись NFS for PC PC-NFS 4.0 220 120 PC-NFS 5.0(**) 220 120 Pathway 350 170 PCTCP 3.0 350 200 TSOFT (*) 200 100 XFS (*) 500 50 Chameleon NFS(**) 2-е место по результатам тестов Unix for PC Linux/NFS(*) 400 350 FreeBSD/NFS(*) 900 300 Unixware/NFS 400 300 Прочие Netware 3.11 500 600 NW Lite 400 500 WFW (Samba) 150 150 Lantastic ? ? (*) - условно-бесплатные или бесплатные пакеты (**) - защищен от нелицензированного копирования Для сравнения: скорость чтения/записи NFS между двумя SUN SPARCstation и/или IBM/RS6000 900/400 Kb/сек &dD3. Для того, чтобы Unix-машина служила NFS сервером&d@ На ней должны быть запущены следующие демоны: rpc.portmap - демон портов RPC (Remote Procedure Call) (поскольку NFS использует RPC) (На Motorole не требуется.) mountd - обслуживание команд монтирования (он решает - разрешить/ не разрешить) nfsd - непосредственное обслуживание протокола NFS biod - кэширование NFS-чтений на клиенте (только в SunOS) pcnfsd - проводит дополнительную "авторизацию" пользо- вателей на PC/NFS клиентах. Поскольку MSDOS не занимается учетом и регистрацией пользова- теля, pcnfsd сам спрашивает у PC-ишного user'а его имя и пароль. (не обязателен, но желателен) Обычно все эти демоны запускаются на уровне выполнения 3. Пос- мотрите, с большой вероятностью вы обнаружите на своей машине файл с названием наподобие: /etc/rc3.d/S22nfs - предназначен для запуска NFS-сервера Должно быть указано, какие именно каталоги, разрешается "ви- деть" по NFS, и каким именно машинам это разрешается. Эти каталоги указываются в файле /etc/dfs/dfstab и экспортируются явной командой shareall или share (если у вас SVR4) или в файле /etc/exports и экспортируются явно командой exportfs -a (если у вас какой либо другой UNIX) &dD4.&d@ Активизация NFS. Обычно, на машине со свежеустановленным Unix'ом NFS сервер не активизирован. Чтобы он запустился, системный администратор должен обеспечить выполнение условий перечисленных в предыдущем пункте. Для этого достаточно: &dDMotorola 922&d@ После загрузки переходить на уровень выполнения 3. В файле /etc/inittab исправить строку is:2:initdefault: на строку is:3:initdefault: Запускать pcnfsd - демона "авторизации" PCNFS'ных пользователей В файл /etc/rc3.d/S22nfs вставить команду запуска демона: /usr/lib/nfs/pcnfsd Из меню sysadm в network_services / remote_files / local_recources / share / nfs задать каталоги, которые вы раз- решаете "раздавать" по NFS. Например, проэкспортируйте каталог /home Чтобы исправления в /etc/inittab подействовали, перезагрузите unix командой shutdown -y -g0 -i6 &dDLinux&d@ В файле /etc/rc.d/rc.inet2 раскомментируйте строки, запускающие демонов rpc.portmap rpc.nfsd rpc.mountd rpc.ugidd В файл /etc/exports вставьте строку / (rw) Перезагрузитесь &dDSun Solaris 1.1&d@. В файл /etc/exports вставьте строки... /home /usr Перезагрузитесь &dDSun Solaris 2.3&d@. В файле /etc/dfs/dfstab вставьте строки для экспортируемых фай- ловых систем. (Формат указан в комментариях в этом файле) Перезагрузитесь &dD5.&d@ ЕЩЕ ОДНА СЕТЕВАЯ ФАЙЛОВАЯ СИСТЕМА. RFS. DFS. RFS - Remote File Sharing. Тоже сетевая файловая система. NFS - порождение BSD Unix'а, RFS - System V Unix'а. Назначение такое же, как и у NFS. Каких либо преимуществ по сравнению с NFS не имеет. Ярко выраженных недостатков, пожалуй, тоже. Значительно менее распространена, чем NFS. Не имеет automounter'а. Клиентов RFS for MSDOS PC нет. Зато RFS поддерживает захват и блокировку файлов, и специальные файлы. Активизировать RFS вряд ли имеет смысл. Действительно, зачем нам второй Генеральный секретарь? DFS - Distributed File System. Тоже сетевая файловая система. Вот и все, что я могу про нее сказать. . &dDКонфигурирование automount-демона&d@ Авто-монтировщик - демон, запущенный на NFS-клиенте. Этот демон монтирует удаленные каталоги "ПО ТРЕБОВАНИЮ" - т.е., когда к ним происходит обращение. Если к автоматически смонтированному каталогу долго не было обращений, автомонтировщик его автоматически отмонтирует. Авто-монтирование поддерживается демоном automountd. Этот демон запускается при начальной загрузке операционной системы. Запускается он в командном файле /etc/rc2.d/S20nfs.client automountd # если все карты будут браться из NIS или automountd -m -f /etc/auto.master # брать только локальные # карты Управляется automountd несколькими "картами" - файлами с описа- нием кого и куда надо монтировать. В простейшем случае нужно иметь три файла: /etc/auto_master - головной конфигурационный файл Ссылается на: /etc/auto_direct - указывает, какие каталоги куда монтировать /etc/auto_home - задает правила монтирования домашних каталогов пользователей, расположенных на удаленных машинах. /etc/auto_master :--------------------------------------------- # # Master map for automounter # /net -hosts # задает: корневой каталог компьютера по имени imyarek монтиро- # вать на каталог /net/imyarek # /- /etc/auto_direct /home /etc/auto_home /etc/auto_direct :--------------------------------------------- # # /usr/informix -ro,soft classic00:/usr/informix /usr/local -rw,soft classic00:/usr/local # # Смонтировать с первого откликнувшегося сервера. # /usr/share/man -ro,soft classic00:/usr/share/man \ -ro,soft sun21:/usr/share/man \ -ro,soft sun22:/usr/share/man /etc/auto_home :--------------------------------------------- moshkow s08:/udd/moshkow leo classic00:/export/home/leo # а лучше написать так: * classic00:/export/home/& * sun21:/export/home/& Каждый пользователь polxzowatelx на этой машине должен быть за- регестрирован с домашним каталогом /home/polxzowatelx . &dDDNS - Domain Name Service&d@ &dDКонфигурирование DNS-клиента&d@ &dDУказываем наш dns-server&d@ /etc/resolv.conf : search moshkow.pp.ru sosed.msk.ru nameserver 127.0.0.1 ;nameserver 194.8.2.1 &dDПорядок просмотра информации о именах хостов задается в &d@ /etc/host.conf : (Linux, BSD) order bind, hosts, nis multi on /etc/nsswitch.conf : (В Solaris, HP-UX) . . . hosts: files bind nis . . . &dDИмя домена нашего хоста&d@ (Не всегда, но часто) /etc/defaultdomain : moshkow.pp.ru &dDКак посмотреть зоны DNS&d@ nslookup -ty=ns msk.ru zzz=msk.ru ; named-xfer -z $zzz -f filename ns.$zzz egrep '^[a-z]' filename | egrep -v A | grep NS| cut -f1 | sort -u| wc или сходить в RIPE: ftp://ftp.ripe.net/ripe/hostcount ║ ftp://ftp.ripe.net/ripe/hostcount ftp://ftp.ripe.net/ripe/dbase ║ ftp://ftp.ripe.net/ripe/dbase &dDРезультат на февраль 1997:&d@ ru 1400 msk.ru 217 spb.ru 490 ras.ru 20 msu.su 19 rssi.ru 42 &dD * Конфигурирование DNS-сервера * &d@ Для этого нужно создать начальный конфиг-файл named.boot и в каталоге /var/named сложить файлы с описанием наших зон &dDПример заполнения файлов&d@ Моя зона moshkow.pp.ru делегируется из pp.ru (а значит - в RIPN) Revers-зона 173.233.193.in-addr.arpa делегируется у хозяина зоны 233.193.in-addr.arpa (а значит - в RIPN) /etc/named.boot ; config-файл вашего DNS /var/named/moshkow.pp.ru ; описание вашей зоны /var/named/193.233.173.0 ; описание реверс-dns для той же зоны /var/named/root.cache ; нужно иметь. У всех стандартный /var/named/127.0.0.1 ; нужно иметь. У всех стандартный Если ваша локальная сеть не подключена к Интернет, все равно полезно иметь в ней DNS сервер для внутренних нужд. Чтоб он не порождал 1.5 минутных таймаутов при обращении к заведомо "внешним" недостижимым хостам, просто сделайте файл /var/named/root.cache пустым. Заведенные вами dns зоны надо зарегистрировать в "вышестоящей" зоне, чтоб они делегировали ее вам. Реверс-dns'ную зону тоже необходимо регистрировать - делегировать вам ее обязан тот, кто выдал ваши IP-адреса. /var/named/moshkow.pp.ru: ======================== @ IN SOA ns.moshkow.pp.ru. moshkow.ipsun.ras.ru. ( 1997093001 ; serial 28800 ;8 Refresh как часто secondary проверяет обновления 7200 ;2 Retry как часто secondary тыкается после "непрохода" 6048000;70d Expire сколько запись живет на secondary 864000);10d Minimum сколько запись живет в кэше IN NS ns.moshkow.pp.ru. IN NS nss.ras.ru. IN MX 10 mail.moshkow.pp.ru. IN MX 50 mail.ras.ru. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ns IN A 193.233.173.111 nss IN A 193.233.172.8 proxy CNAME t111 mail CNAME t111 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; t01 IN A 193.233.173.1 t02 IN A 193.233.173.2 . . . t254 IN A 193.233.173.254 t255 IN A 193.233.173.255 /var/named/193.233.173.0 : ======================== @ IN SOA ns.moshkow.pp.ru. moshkow.ipsun.ras.ru. ( 1997093001 ; serial 28800 ; refresh ( 8 hours) 7200 ; retry ( 2 hours) 6048000 ; expire (70 days ) 864000 ) ; minimum (10 days ) IN NS ns.moshkow.pp.ru. IN NS nss.ras.ru. IN MX 10 mail.moshkow.pp.ru. IN MX 50 mail.ras.ru. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1 IN PTR t01.moshkow.pp.ru. 2 IN PTR t02.moshkow.pp.ru. . . . 255 IN PTR t255.moshkow.pp.ru. /var/named/root.cache ----------------------------------------- ; ftp://ftp.rs.internic.net/domain/named.root ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 . 3600000 NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 . 3600000 NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 . 3600000 NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 /var/named/127.0.0.0 -------------------------- @ IN SOA localhost. root.localhost. ( 1997071201 ; Serial 36000 ; Refresh 3600 ; Retry 3600000 ; Expire 36000 ) ; Minimun IN NS localhost. 1 IN PTR localhost. =========== И НАКОНЕЦ /etc/named.boot directory /var/named ; ║ /var/named cache . root.cache ; ║ root.cache primary 0.0.127.in-addr.arpa 127.0.0.0 ; ║ 127.0.0.0 ; forwarders 193.124.148.65 193.124.23.4 primary moshkow.pp.ru moshkow.pp.ru ; ║ moshkow.pp.ru primary 173.233.193.in-addr.arpa 193.233.173.0 ; ║ 193.233.173.0 ; secondary moshkow.orc.ru 193.124.148.81 second/moshkow.orc.ru &dDДополнительная информация&d@ $INCLUDE /var/named/header @ $INCLUDE /var/named/fedfond-hosts-spisok @ &dDПояснения:&d@ &dDПервая строка содержит: &d@ имя зоны с обязательной точкой в конце предопределенные поля IN и SOA имя сервера, на котором содержится заведомо правильная информация о зоне, с обязательной точкой на конце. При необходимости размещения вторичных серверов мы будем брать информацию о зоне именно с этого сервера. почтовый адрес ответственного за сервер, в котором знак @ заменен на . а если требуется использовать . в левой части адреса, она должна быть префиксирована двумя знаками \ Именно по этому адресу будет отправлено сообщение в случае успешного делегирования зоны. Адрес в приведенном примере будет выглядеть как andrei.arkhipov@elvis.ru открывающая круглая скобка На следующих 5 строках описываются важные для зоны параметры: &dDSerial&d@ Определяет порядковый номер редакции файла с описанием зоны. Это число должно изменяться только в сторону увеличения и изменяться оно должно при каждом внесении изменения в файл описания зоны. Рекомендуемый формат: &dDYYYYMMDDNN&d@ где YYYY - год, MM - месяц, DD - день, NN - порядковый номер внесения изменения в указанный день. &dDRefresh&d@ Каждые "refresh" секунд вторичные сервера проверяют основной на предмет увеличения значения "serial", и если это произошло обновляют у себя зону. Рекомендуемое значение: 86400, что составляет 24 часа. &dDRetry&d@ Если основной сервер был недоступен, вторичный будет производить повторные попытки каждые "retry" секунд. Рекомендуемое значение: 7200, что составляет 2 часа. &dDExpire&d@ Если в течение "expire" секунд вторичный сервер не смог соединиться с основным и обновить информацию о зоне, он считает себя неспособным давать ответы на запросы о зоне. Рекомендуемое значение: 2592000, что составляет 30 суток. &dDMinimum TTL&d@ Значение по умолчанию для времени, в течение которого сервер держит запись в кэше. Рекомендуемое значение: 345600, что составляет 4 суток. Далее идет описание всех серверов зоны, причем сервер указанный в первой строке (в записи SOA) обязательно должен присутствовать в этом списке, а если необходимо размещение вторичных серверов на маших АО Релком (ns.spb.su и/или ns.ussr.eu.net), то и они должны присутствовать в списке, а также в заявке. В приведенном примере утверждается, что зона присутствует на серверах ns.elvis.ru и ns2.elvis.ru и требуется размещение вторичных серверов на ns.spb.su и ns.ussr.eu.net Обратите внимание, что все имена серверов заканчиваются точкой. ===================================== EOF =========================== [ Article crossposted from comp.protocols.tcp-ip.domains ] [ Author was Craig Richmond - division (craig@ecel.uwa.edu.au) ] [ Posted on 3 Aug 1993 10:53:51 GMT ] Setting up a basic DNS server for a domain Revision 1.1.1 Craig Richmond craig@ecel.uwa.edu.au 3rd August 1993 About this document I have written this file because it seems that the same questions seem to pop up time and time again and when I had to install DNS from scratch the first time, we found very little to help us. This document covers setting up a Domain Name Server with authority over your domain and using a few of the more useful but less well known (hopefully this document will take care of that) features of nslookup to get information about the DNS and to work out why yours isn't working. If you are using a Sun Workstation and you want t