Настройка выделенных линий
Автор: Денис Колисниченко
dhsilabs@mail.ru
Опубликовано: 15.12.2001
Оригинал:http://www.softerra.ru/freeos/14719/
Для начала разберемся, что же такое выделенная линия?
Сети с коммутацией пакетов (каналов) можно разделить на две группы: сети с динамической и постоянной
коммутацией.
В первом случае пользователь может установить соединение по собственной инициативе. Коммутация выполняется
на время сеанса связи, а затем связь разрывается (или по инициативе пользователя или по инициативе сервера).
Во втором случае динамическая коммутация не осуществляется, а вместо этого двум пользователям разрешается
заказать соединение на длительный период времени. Режим постоянной коммутации называется выделенной (dedicated)
или арендуемой (leased) линией.
Замечание. Определение выделенной линии, которое я привел выше, ни в коем случае не претендует на свою полноту.
А теперь перейдем непосредственно к настройке PPP. Я использую Mandrake 7.2, поэтому сначала опишу установку
из RPM, а потом полностью компилирование pppd из исходников.
Установить ppp вы можете с помощью команд:
# mount /mnt/cdrom
# rpm -ih /mnt/cdrom/Mandrake/RPMS/ppp*
Нужно также позаботиться о том, чтобы ядро поддерживало PPP. В большинстве случаев поддержка PPP
уже встроена в ядро. Проверить наличие поддержки PPP можно с помощью команды:
dmesg | grep PPP
Желающие могут установить PPP из исходников. Последнюю версию можно скачать отсюда:
ftp://ftp.linuxcare.com.au/pub/ppp/
Последняя версия ppp на момент написания этой статьи v 2.4.1.
Установку ppp можно выполнить с помощью таких команд:
# ./configure
# make
# make install
Естественно, до этого нужно перейти в каталог с распакованными исходниками ppp.
Ну а теперь приступим к редактированию файлов. При корректной установке (или сборке) у вас должны быть файлы:
/etc/ppp/options
/etc/ppp/ip-up
/etc/ppp/ip-down
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
Нам нужны только первые три. Предположим вам нужно настроить два выделенных канала. Для определенности первый
модем будет подключен к /dev/ttyS0, а второй v к /dev/ttyS1. Файл /etc/ppp/options будет содержать глобальные
настройки (возможно, вы захотите установить dial-up соединение, подключив еще один модем). Файлы конфигурации
для модемов /dev/ttyS0 и /dev/ttyS1 будут называться соответственно /etc/ppp/options.ttS0
и /etc/ppp/option.ttyS1.
Редактируем файл /etc/ppp/options.ttyS0
# Устройство
/dev/ttyS0
# Скорость
57600
noauth
mru 1500
# наш интерфейс : удаленный интерфейс
192.168.99.1:192.168.99.2
# маска подсети
netmask 255.255.255.0
bsdcomp 0
chap-interval 15
debug
crtscts
mtu 552
mru 552
-detach
С устройством и скоростью все понятно. Обратите внимание на запись: 192.168.99.1:192.168.99.2
Между нашими модемами (собственно между Lнашим▒ и тем, что на другой стороне) создается подсеть
192.168.99.0 (netmask 255.255.255.0). По окончанию конфигурирования выделенной линии вам нужно
настроить роутинг (см. man route). Если же линия у вас одна, то вы можете в конец файла
/etc/options.ttyS0 добавить команду defaultroute. Эта запись добавляет маршрут в системную таблицу
маршрутизации, используя удаленную сторону как шлюз. Обычно запись удаляется при завершении соединения.
Теперь разберемся со всеми остальными командами.
Таблица 1.
Команда
Описание
noauth
не требует удаленную сторону назвать себя перед тем, как начнется обмен пакетами. auth v если аутентификация
нужна
crtscts
использовать аппаратное управление потоком данных (напр., RTS/CTS), чтобы управлять потоком данных на
последовательном порту
xonxoff
использовать программное управление потоком данных (напр., XON/XOFF), чтобы управлять потоком данных на
последовательном порту
mru 542
устанавливает значение MRU [Maximum Receive Unit] в 542 при договоренности. pppd запросит удаленную сторону
отправлять пакеты не более, чем по 542 байт. Минимальное значение MRU 128. Значение MRU по умолчанию 1500.
Для медленных соединений рекомендуется 296 (40 байт для заголовка TCP/IP + 256 байт данных).
mtu 552
устанавливает значение MTU [Maximum Transmit Unit] в 552. Пока другая сторона не попросит меньшее значение
при договоре о MRU, pppd будет требовать у сетевого кода ядра отправлять пакеты данных не более, чем
по 552 байта через сетевой интерфейс PPP
chap-interval интервал
С этой опцией pppd будет заново вызывать удаленную сторону каждые интервал секунд.
debug
увеличить уровень отладки (то же что -d). Если эта опция есть, pppd будет записывать в журнал все прибывшие
и отправленные пакеты в читабельной форме. Пакеты регистрируются в лог-файлах через syslog с помощью daemon
и уровнем отладки. Эта информация может быть перенаправлена в файл соответствующей установкой
/etc/syslog.conf. Если pppd скомпилирован с разрешенной extra отладкой, он будет записывать сообщения в журнал,
используя средство local2 вместо daemon.
-detach
Не переходить в фоновый режим (иначе pppd бедет делать так, если последовательной устройство указано).
Помимо вышеуказанных команд, для настройки ppp вы можете использовать и эти команды:
Таблица 2.
Команда
Описание
connect <программа>
устанавливает программу для настройки линии
disconnect <программа>
запустить данную программу после того, как pppd завершил связь
asyncmap 0
async карта символов v 32-bit hex; каждый бит v символ, который надо представить в виде escape-последовательности,
чтобы pppd мог его принять. 0x00000001 v это маска для '\x01', а 0x80000000 v маска для '\x1f'.
local
не использовать линии управления модемом
modem
использовать линии управления модемом
lock
# Указывает, что pppd должен использовать lock в стиле UUCP для последовательного устройства
noipdefalut
Запретить поведение по умолчанию, когда не указан локальный IP адрес, которое определяет (если возможно)
локальный IP адрес по имени хоста. С этой опцией удаленная сторона должна будет обеспечить локальный IP адрес
в течение IPCP переговоров (если она не определена явно в командной строке или в файле options).
passive
Разрешить опцию Lpassive▒ в LCP. С этой опцией pppd будет пытаться инициировать соединение; если ответ от
другой стороны не принят, то pppd будет пассивно ожидать правильный LCP пакет от другой стороны
(вместо выхода, как делается без этой опции).
silent
С этой опцией pppd не будет передавать LCP пакеты для инициации соединения пока не придет правильный
LCP пакет от другой стороны (как опция Lpassive▒ в старых версиях pppd).
-all
не разрешать договариваться о любых опциях LCP и IPCP (будут использоваться значения по умолчанию)
-am
запретить договариваться о asyncmap
-ip
не договариваться об IP-адресе (адрес должен быть указан или в options или в командной строке)
-mru
запретить договариваться о mru (Max Receive Unit)
-pc
запретить сжатие полей протокола
+pap
двусторонняя pap-аутентификация
-pap
отказаться от pap-аутентификации
+chap
двусторонняя chap-аутентификация
domain имя_домена
добавить имя домена к имени машины
name имя_машины
установить имя машины (в целях аутентификации)
user имя
установить имя пользователя для аутентификации этой машины на другой стороне используя PAP. Нельзя
использовать вместе с name
login
использовать базу данных паролей для идентификации удаленной стороны, используя PAP
ipcp-restart интервал
установить интервал рестарта IPCP (пауза возобновления передачи) в интервал секунд (по умолчанию 3).
ipcp-restart значение
установить интервал рестарта IPCP (пауза возобновления передачи) в интервал секунд (по умолчанию 3).
ipcp-max-terminate значение
установить максимальное число передач IPCP terminate-request. (по умолчанию 3).
ipcp-max-configure значение
установить максимальное число передач IPCP configure-request. (по умолчанию 10).
ipcp-max-failure значение
установить максимальное число IPCP configure-NAKs, возвращенных перед началом отправки вместо
configure-Rejects. (по умолчанию 10).
pap-restart интервал
установить интервал рестарта PAP (пауза возобновления передачи) в интервал секунд (по умолчанию 3).
pap-max-authreq значение
установить максимальное число передач PAP authenticate-request.(по умолчанию 10).
chap-restart интервал
установить интервал рестарта CHAP (пауза возобновления передач challenges) в интервал секунд (по умолчанию 3).
chap-max-challenge значение
установить максимальное число передач CHAP challenge. (по умолчанию 10).
После того как настройка ppp завершена, можно перейти к редактированию inittab. Добавьте в /etc/inittab
следующие строки:
7:2345:respawn:/usr/sbin/pppd file /etc/ppp/options.0 > /var/log/pppS0.log
8:2345:respawn:/usr/sbin/pppd file /etc/ppp/options.1 > /var/log/pppS1.log
7 и 8 v это порядковые номера, 1-6 уже заняты для системных консолей tty1-tty6. 2345 v уровни запуска.
Весь inittab должен выглядеть примерно так:
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
7:2345:respawn:/usr/sbin/pppd file /etc/ppp/options.0 > /var/log/pppS0.log
8:2345:respawn:/usr/sbin/pppd file /etc/ppp/options.1 > /var/log/pppS1.log
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
Для сбора статистики можно воспользоваться следующей программкой:
#!/bin/sh
/bin/grep "ppp0:" /proc/net/dev | /bin/awk -F ":" '{ print $2 }' | /bin/awk '{ print "In: " $1 " Out: " $9 ; }'
или смотреть статистику напрямую: cat /proc/net/dev. Трафик можно считать многими способами. Информацию о
локальном трафике (только вашего интерфейса) предоставляют в довольно удобоваримом виде программы
iptraf и trafshow. IpTraf обладает бОльшими возможностями по сравнению с trafshow. Если вас интересует
профессиональный подсчет трафика, рекомендую использовать такие программы как useripacct, MRTG, netacct.
ipacct может подсчитывать трафик в локальной сети: как хостов, так и отдельных пользователей.
Назначение MRTG примерно такое же, но в нее уже Lвстроен▒ Web-интерфейс, а к ipacct его придется прикручивать
самостоятельно. Описание настройки MRTG вы можете найти на сайте Сергея Богомолова v www.bog.pp.ru. Там же вы
можете найти и описание RRDTool v последующее развитие MRTG. Также о методах подсчета трафика вы можете
прочитать на linux.uatel.net. Иногда эта машина бывает недоступной v так что если это все-таки случилось,
попробуйте обратиться к ней немного позже.
Довольно подробные сведения о трафике дает программа iplog.
Главная |
Безопасность в сети
Регистрация доменов и хостинг |
Программирование |
Библиотека |
UNIX |
Украина |
Иммиграция |
Поиск |
Заработок в Интернет |
Unsorted |
Hosted by
elektrod.com.ua