Введение в системное администрирование Unix

Всемирная сеть Internet

Разбить на страницы
Показывать лекцию целиком

Все компьютеры мира, поддерживающие протокол TCP/IP и каким-либо образом подключенные друг к другу, образуют глобальную всемирную сеть TCP/IP "Internet". Темпы роста "Internet": 100000 IP-адресов в месяц.

1. IP-адрес

Каждая машина в мире имеет свой уникальный IP-адрес.

IP-адрес - 32-битное число, которое принято записывать в смешанном 16-рично-десятичном формате, в виде 4 чисел, разделенных точками. Например:

193.124.148.73
 128.8.2.1

Каждое десятичное число здесь представляет на самом деле два шестнадцатеричных разряда. Может принимать значения от 0 до 255. Допустима также шестнадцатеричная запись:

c1.7c.94.49 или 0xC17C9449
 80.08.02.01 или 0x80080201

В условиях корректно сконфигурированной локальной сети, и при условии подключения ее к всемирной сети Internet, протокол TCP/IP позволяет вашей сетевой программе работать с ЛЮБЫМ компьютером в мире, как если бы он находился в вашей локальной сети.

Уникальность IP-адресов поддерживается просто. Они выдаются централизованно. Контора, которая этим занимается, называется NIC - Network Informational Center. Европейское отделение NIC расположено в Амстердаме. Она ВЫДАЕТ IP-адреса. В адрес NIC нужно послать форму-запрос установленного образца, и через некоторое время вам пришлют "пачку" IP-адресов, выделенных для вашей сети. E-mail адрес, по которому нужно послать запрос:

hostmaster@sri-nic.net

Московский узел, раздающий IP-адреса, а так же домены *.ru доступен по адресу

РосНИИРОС xSU/RU NetworkInformationalCenter
 ncc@ripn.net или ncc@ussr.eu.net
 www.ripn.net/nic/ripn-docs/

IP-сеть, подсеть

IP-сеть - "пачка" из 2**n IP-адресов, ИДУЩИХ ПОДРЯД. Самый младший - резервируется. Этот адрес называется адресом IP-сети. Например 128.8.0.0, или 193.125.149.64 . Адрес сети используется, когда требуется указать всю сеть целиком, например, когда задается маршрутизация до этой сети.

Маска сети - фактически размер сети, задает число адресов в сети. Задается либо количеством битов в маске сети (например 8бит - 256 адресов, 6 бит - 64 адреса), либо битовой маской вида

b'111...11100...00'
 число^^ ^^ битов

которую тоже принято записывать в десятично-побайтной записи, например:

255.255.255.192 - маска на 64 адреса
 255.255.255.0 - маска на 256 адресов
 255.255.0.0 - маска на 64K адресов

Broadcast адрес сети - самый старший адрес в сети. Резервируется для передачи сообщений типа "все-всем-всем" (в сети).

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 не используется

    Private Address Space

    Если ваша сеть будет использоваться только внутри организации, и машины не будут иметь непосредственного выхода в интернет, то адреса для нее можно брать "с потолка".

    В документе 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 эти адреса не маршрутизируют, что добавляет им(адресам) безопасности.

    2. Объявляем IP-адрес на наш ethernet'ный контроллер

    Конфигурация сети на 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

    3. Маршрутизация локальной сети

    Объявляем, что машины с адресами вида 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

    4. Конфигурирование TCP/IP на Мотороле 922

    Придумайте сетевое имя вашего компьютера. Пусть вы решили, что ваш компьютер должен называться fedfond, и иметь IP-adres 198.8.2.1 . Однако не забывайте, что у Моторолы ДВА ethernet-контроллера, и КАЖДЫЙ из них ДОЛЖЕН иметь свой УНИКАЛЬНЫЙ 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

  • командой sysadm установите "nodename". ВНИМАНИЕ: именно nodename (имя узла) а не systemname (имя операционной системы)
  • В файл /etc/hosts вставьте строчки, привязывающие IP-адреса к имени fedfond и, ВНИМАНИЕ!, fedfond-gate
    198.8.2.1 fedfond
    198.8.3.1 fedfond-gate
  • Перезагрузитесь.
  • Конфигурирование 2-го ethernet в Linux

    Первый-то 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

    Как узнать hardware адрес ethernet'ной карты

    Если машины нормально сконфигурированы для 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

    HP-UX: Адрес можно узнать командой lanscan. На рабочих станциях адрес можно узнать еще и из boot-монитора PDC.

    5. Прикладные интерфейсы

    Чтобы писать программы, работающие с сетью, программист должен пользоваться каким-либо набором системных вызовов и функций. От BSD-Unix'а в жизнь вошел получивший большую популярность API Berkеlеy-sockets. ATT System V породила TLI (Transport Level Interface) - построенный на технологии "потоков" ( streams ).

    SVR4 поддерживает и то, и другое. Поддержку сокетов обеспечивает демон inetd (Internet Super Server), поддержку TLI обеспечивает демон listen (Network Listener).

    6. Конфигурация 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-адрес

    7. Конфигурация BSD сокетов

    Для этого ничего делать не надо. Впрочем, в дальнейшем, возможно, вам придется этим заниматься. Настройки inetd лежат в файлах:

  • /etc/inetd.conf название сетевого --> имя обслуживающей сервиса программы
  • /etc/services номер порта --> название сетевого сервиса
  • Состояние текущих соединений можно посмотреть командой:

    netstat (или netstat -ta - если у вас Linux)

    Еще несколько протоколов

    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 - содержит помимо имен хостов несколько других информационных баз, но зато поддерживается только в рамках сети одной организации.

    Конфигурирование TCP/IP на скорую руку

    В большинстве unix-ов имеется простая менюшная утилита позволяющая сконфигурировать основные параметры компьютера: Имя хоста, IP адрес и параметры сети, DNS сервера

    HP/UX: /etc/set_parms initial
     Linux Slackware: net_config
     Solaris: /etc/???

    Redhat

    В redhat-оподобных Linux

    /sbin/ifup-pre-local
     /sbin/ifdown-pre-local
     /sbin/ifup-local
     /sbin/ifdown-local

    Если они есть и исполняемы, то до/после поднятия/опускания интерфейсов они будут вызываться с параметром ${DEVICE} Организация TCP/IP по последовательным линиям

    Протокол TCP/IP не обязательно требует наличия ethernet'ной сети. Вполне допустимы и другие физические носители, например:

  • Последовательные линии с подключением через порты 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 голубиной почтой.

    TCP/IP по спутниковой связи

    Теоретических трудностей организация связи 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------ ...

    Скорость, которую можно получить

    Скорость главным образом зависит от типа и качества линии связи, используемых модемов, и типа порта, в который этот модем воткнут.

    Практические ограничения на скорость:

    Скорость данных между модемами 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 Кбит/с
  • Конфигурирование SLIP/CSLIP

    Для этого соединяем два 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

    PPP

    MOTOROLA: PPP

    /etc/inet/ppphosts - перечисляет ppp-хосты

    Правила дозвонки и соединения с этими хостами описываются стандартными описаниями из UUCP

    Убедиться, что поддержка ppp присутствует в конфигурационном файле /etc/strcf

    Убедиться, что при загрузке запускается команда slink

    Непосредственное ppp-соединение активизируется при обращении ("по требованию").

    Подробности искать в

    man ppp
     man pppd
     man ppphosts

    Linux

    Все делается командой 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

    Windows 95

    Поставить дополнительный пакет из 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 не вписывать, ибо все равно он забывается при каждом перезапуске.

    HP-UX 10.20

    На рабочих станциях под HP-UX/10.20 родного ppp НЕТ. Только slip. Можно сftpить free-варный пакет iij-ppp http://www.verinet.com/~barthold/ftp/iij-ppp0.94beta2.hpux10.tar.gz Документация по конфигурации и инсталляции прилагается к пакету.

    На серверах и рабочих станциях SLIP назван "ppl" и включен в стандартный пакет "LAN/9000 Link" product.

    Страницы:

    Все компьютеры мира, поддерживающие протокол TCP/IP и каким-либо образом подключенные друг к другу, образуют глобальную всемирную сеть TCP/IP "Internet". Темпы роста "Internet": 100000 IP-адресов в месяц.

    1. IP-адрес

    Каждая машина в мире имеет свой уникальный IP-адрес.

    IP-адрес - 32-битное число, которое принято записывать в смешанном 16-рично-десятичном формате, в виде 4 чисел, разделенных точками. Например:

    193.124.148.73
     128.8.2.1

    Каждое десятичное число здесь представляет на самом деле два шестнадцатеричных разряда. Может принимать значения от 0 до 255. Допустима также шестнадцатеричная запись:

    c1.7c.94.49 или 0xC17C9449
     80.08.02.01 или 0x80080201

    В условиях корректно сконфигурированной локальной сети, и при условии подключения ее к всемирной сети Internet, протокол TCP/IP позволяет вашей сетевой программе работать с ЛЮБЫМ компьютером в мире, как если бы он находился в вашей локальной сети.

    Уникальность IP-адресов поддерживается просто. Они выдаются централизованно. Контора, которая этим занимается, называется NIC - Network Informational Center. Европейское отделение NIC расположено в Амстердаме. Она ВЫДАЕТ IP-адреса. В адрес NIC нужно послать форму-запрос установленного образца, и через некоторое время вам пришлют "пачку" IP-адресов, выделенных для вашей сети. E-mail адрес, по которому нужно послать запрос:

    hostmaster@sri-nic.net

    Московский узел, раздающий IP-адреса, а так же домены *.ru доступен по адресу

    РосНИИРОС xSU/RU NetworkInformationalCenter
     ncc@ripn.net или ncc@ussr.eu.net
     www.ripn.net/nic/ripn-docs/

    IP-сеть, подсеть

    IP-сеть - "пачка" из 2**n IP-адресов, ИДУЩИХ ПОДРЯД. Самый младший - резервируется. Этот адрес называется адресом IP-сети. Например 128.8.0.0, или 193.125.149.64 . Адрес сети используется, когда требуется указать всю сеть целиком, например, когда задается маршрутизация до этой сети.

    Маска сети - фактически размер сети, задает число адресов в сети. Задается либо количеством битов в маске сети (например 8бит - 256 адресов, 6 бит - 64 адреса), либо битовой маской вида

    b'111...11100...00'
     число^^ ^^ битов

    которую тоже принято записывать в десятично-побайтной записи, например:

    255.255.255.192 - маска на 64 адреса
     255.255.255.0 - маска на 256 адресов
     255.255.0.0 - маска на 64K адресов

    Broadcast адрес сети - самый старший адрес в сети. Резервируется для передачи сообщений типа "все-всем-всем" (в сети).

    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 не используется

    Private Address Space

    Если ваша сеть будет использоваться только внутри организации, и машины не будут иметь непосредственного выхода в интернет, то адреса для нее можно брать "с потолка".

    В документе 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 эти адреса не маршрутизируют, что добавляет им(адресам) безопасности.

    2. Объявляем IP-адрес на наш ethernet'ный контроллер

    Конфигурация сети на 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

    3. Маршрутизация локальной сети

    Объявляем, что машины с адресами вида 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

    4. Конфигурирование TCP/IP на Мотороле 922

    Придумайте сетевое имя вашего компьютера. Пусть вы решили, что ваш компьютер должен называться fedfond, и иметь IP-adres 198.8.2.1 . Однако не забывайте, что у Моторолы ДВА ethernet-контроллера, и КАЖДЫЙ из них ДОЛЖЕН иметь свой УНИКАЛЬНЫЙ 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

  • командой sysadm установите "nodename". ВНИМАНИЕ: именно nodename (имя узла) а не systemname (имя операционной системы)
  • В файл /etc/hosts вставьте строчки, привязывающие IP-адреса к имени fedfond и, ВНИМАНИЕ!, fedfond-gate
    198.8.2.1 fedfond
    198.8.3.1 fedfond-gate
  • Перезагрузитесь.
  • Конфигурирование 2-го ethernet в Linux

    Первый-то 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

    Как узнать hardware адрес ethernet'ной карты

    Если машины нормально сконфигурированы для 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

    HP-UX: Адрес можно узнать командой lanscan. На рабочих станциях адрес можно узнать еще и из boot-монитора PDC.

    5. Прикладные интерфейсы

    Чтобы писать программы, работающие с сетью, программист должен пользоваться каким-либо набором системных вызовов и функций. От BSD-Unix'а в жизнь вошел получивший большую популярность API Berkеlеy-sockets. ATT System V породила TLI (Transport Level Interface) - построенный на технологии "потоков" ( streams ).

    SVR4 поддерживает и то, и другое. Поддержку сокетов обеспечивает демон inetd (Internet Super Server), поддержку TLI обеспечивает демон listen (Network Listener).

    6. Конфигурация 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-адрес

    7. Конфигурация BSD сокетов

    Для этого ничего делать не надо. Впрочем, в дальнейшем, возможно, вам придется этим заниматься. Настройки inetd лежат в файлах:

  • /etc/inetd.conf название сетевого --> имя обслуживающей сервиса программы
  • /etc/services номер порта --> название сетевого сервиса
  • Состояние текущих соединений можно посмотреть командой:

    netstat (или netstat -ta - если у вас Linux)

    Еще несколько протоколов

    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 - содержит помимо имен хостов несколько других информационных баз, но зато поддерживается только в рамках сети одной организации.

    Конфигурирование TCP/IP на скорую руку

    В большинстве unix-ов имеется простая менюшная утилита позволяющая сконфигурировать основные параметры компьютера: Имя хоста, IP адрес и параметры сети, DNS сервера

    HP/UX: /etc/set_parms initial
     Linux Slackware: net_config
     Solaris: /etc/???

    Redhat

    В redhat-оподобных Linux

    /sbin/ifup-pre-local
     /sbin/ifdown-pre-local
     /sbin/ifup-local
     /sbin/ifdown-local

    Если они есть и исполняемы, то до/после поднятия/опускания интерфейсов они будут вызываться с параметром ${DEVICE} Организация TCP/IP по последовательным линиям

    Протокол TCP/IP не обязательно требует наличия ethernet'ной сети. Вполне допустимы и другие физические носители, например:

  • Последовательные линии с подключением через порты 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 голубиной почтой.

    TCP/IP по спутниковой связи

    Теоретических трудностей организация связи 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------ ...

    Скорость, которую можно получить

    Скорость главным образом зависит от типа и качества линии связи, используемых модемов, и типа порта, в который этот модем воткнут.

    Практические ограничения на скорость:

    Скорость данных между модемами 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 Кбит/с
  • Конфигурирование SLIP/CSLIP

    Для этого соединяем два 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

    PPP

    MOTOROLA: PPP

    /etc/inet/ppphosts - перечисляет ppp-хосты

    Правила дозвонки и соединения с этими хостами описываются стандартными описаниями из UUCP

    Убедиться, что поддержка ppp присутствует в конфигурационном файле /etc/strcf

    Убедиться, что при загрузке запускается команда slink

    Непосредственное ppp-соединение активизируется при обращении ("по требованию").

    Подробности искать в

    man ppp
     man pppd
     man ppphosts

    Linux

    Все делается командой 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

    Windows 95

    Поставить дополнительный пакет из 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 не вписывать, ибо все равно он забывается при каждом перезапуске.

    HP-UX 10.20

    На рабочих станциях под HP-UX/10.20 родного ppp НЕТ. Только slip. Можно сftpить free-варный пакет iij-ppp http://www.verinet.com/~barthold/ftp/iij-ppp0.94beta2.hpux10.tar.gz Документация по конфигурации и инсталляции прилагается к пакету.

    На серверах и рабочих станциях SLIP назван "ppl" и включен в стандартный пакет "LAN/9000 Link" product.

    Вернуться к учебному плану