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). Для деталей, обратитесь пожалуйста к slattach инструкции стр. 8.
После передачи линии 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
| |