SLIP Операция.

Телефонный вызов IP  серверов  часто  предлагает  SLIP  обслуживание   через специальные пользовательские account(ы). После login в такой account,   Вы не входите в общую оболочку; взамен программа или script оболочки -   отключат SLIP  драйвер  серверов    последовательной    линии    и   сконфигурируют соответствующий сетевой interface. Затем Вы должны  сделать   тоже  самое  в конце связи.   

На некоторых операционных системах, SLIP драйвер --  user-space   программа; под Linux, это - часть  ядра,  которая  делает  его  намного   быстрее. Требуется, однако, чтобы порядковая линия явно была бы   преобразована  в  SLIP режим. Это выполнено посредством tty line   discipline,  SLIPDISC.  Пока  tty находится в обычной line discipline   (DISC0),  изменятся  данные  только  с процессвми пользователя, используя   normal read (2) и write(2) вызовы,  SLIP драйвер -  отключен  для  записи   или  чтения  из  tty,  пока  все  данные, поступающие на серейный порт,   будут пропущены SLIP драйвером.   

SLIP  драйвер  непосредственно  понимает  число  разновидностей  на   SLIP протоколе.  Кроме  обычного  SLIP,  он  также  понимает   CSLIP,   который выполняется так называемым Van Jacobson header compression на   выходящих  IP блоков.(1) Дополнительно, имеются шести-битовые версии для   каждого из  этих протоколов.

Простой способ преобразовать последовательную линию  в  SLIP  режим   -  использовать slattach. Допустим, что у Вас есть модем на  /dev/cua3,  и   Вы удачно подсоеденились на SLIP сервер. Вы затем бы выполнили:   

#slattach /dev/cua3 &

Это включит line discipline cua3 к SLIPDISC, и подсоединит ее к   одному  из interface SLIP сети. Если это ваша первая активная SLIP связь,   то линия  будет подсоединена к sl0; вторая была бы подсоединенп к sl1, и   так далее.  Текущие ядра поддерживают до восьми одновременных SLIP связей.   

1. Van Jacobson header compression описан в RFC 1441.
Заданное по умолчанию оформление пакета, выбранное  slattach  -   CSLIP.  Вы можете выбрать любой другой режим, используя -p  переключатель.   Для  того, чтобы использовать normal SLIP (no compression), Вы должны   использовать   
# slattach -p slip /dev/cua3&

Другие режимы - cslip, slip6, cslip6 (для шести-битовой версии   Slip(а)),  и adaptive для адаптивного SLIP. Последние  оставляют  это  для   ядра,  чтобы выяснить, который тип оформления пакета SLIP использует remote   end.

Заметьте, что Вы обязаны использовать такое же  оформление, какое   имеет  Ваш peer. Например, если cowslip использует CSLIP,то  Вы  должны   использовать его же. Симптомы рассогласования будут такие, что  ping   незначительному  хосту  не вернет блоки огратно. Если другой хост pings   Вас,  то  Вы  можете  увидеть сообщение типа "Can't build ICMP header'' на   вашем  мониторе.  Один  способ избежать эту неприятность – надо   использовать adaptive SLIP.

Фактически, slattach не только не позволяет Вам отключить  SLIP,  но   и  не позволяет отключает другие протоколы, которые  используют   последовательную линию также, как и PPP или KISS (другой протокол,   используемый  людьми в ham radio).
После передачи линии SLIP  драйверу,  Вы  должны  сконфигурировать   сетевой interface. И снова,  мы  используем  стандарт  ifconfig  и  route   команды. Предположим, что из vlager мы соединилисьс сервером crowslip.   Тогда Вы должны выполнить:

# ifconfig sl0 vlager pointopoint cowslip
# route add cowslip
# route add default gw cowslip
Первая команда конфигурирует interface как point-to-point связь к   cowslip, в то время как вторая и третья команды прибавляет  route  к   cowslip  и  задает  по умолчанию маршрут, используемый cowslip как ворота.   
При демонтаже SLIP связи, Вы сначала должны удалить все  маршруты   cowslip, используя route c del опцией, уберите interface, и передаете   slatch  сигнал hangup(повесить трубку). Впоследствии Вы должны hangup   модем,  использующий Вашу терминал программу:
# route del default
# route del cowslip
# ifconfig sl0 down
# kill -HUP 516