Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

23. После того, как связь установлена - скрипт /etc/ppp/ip-up

Как только связь PPP установлена, pppd ищет /etc/ppp/ip-up. Если этот сценарий существует и может выполняться, PPP демон выполняет скрипт. Он позволяет вам автоматизировать любые специальные команды маршрутизации, которые могут вам понадобиться, и любые другие действия, которые вы хотите выполнить при активизации PPP соединения.

Это только скрипт shell, и он может делать все, что может делать скрипт shell (то есть фактически все что вы хотите).

Например, вы можете заставить sendmail послать исходящую почту, стоящую в очереди.

Точно так же вы можете вставить команды в ip-up для забора почты (используя POP), ждущий вас на вашем ISP.

Имеются ограничения на /etc/ppp/ip-up:

Он выполняется в преднамеренно ограниченном окружении, чтобы усилить защиту. Это означает, что вы должны указыва полный путь к запускаемым файлам и т.д.

Технически /etc/ppp/ip-up - это программа, а не скрипт. Это означает, что он может быть непосредственно выполнен - и следовательно требуется стандартный магический файл (#!/bin/bash) в начале первой строки скрипта и он должен быть читаем и выполним пользователем root.

23.1 Специальная маршрутизация

Если вы связываете две LAN, вы будете должны установить специфические маршруты к 'посторонним' LAN. Это легко выполняется, используя скрипт /etc/ppp/ip-up. Единственая трудность возникает, если ваша машина работает с несколькими PPP соединениями.

Это потому, что /etc/ppp/ip-up выполняется для КАЖДОГО ppp соединения, которое устанавливается, так что вы должны тщательно выполнить правильные команды маршрутизации для определенного устанавливаемого соединения - и не выполнять их, когда устанавливается любое другое соединение!

23.2 Обработка почтовой очереди

Когда появляется связь между двумя LAN, вы можете захотеть удостовериться, что почта, которая поставлена в очередь на обоих концах соединения, отправлена адресату. Это выполняется добавлением соответствующего вызова sendmail.

Для этого используется выражения bash 'case' для соответствующего параметра, передаваемого скрипту, запукающему pppd. Например вот скрипт /etc/ppp/ip-up, который я использую, чтобы обработать наши WAN соединения и связь с моей LAN ethernet (также обрабатывемую на том же самом ppp сервере).

23.3 Пример скрипта /etc/ppp/ip-up

Пример ниже обеспечивает ряд примеров использования.

  ______________________________________________________________________
  #!/bin/bash
  #
  # Скрипт, выполняющий при необходимости задачи маршрутизации для pppd
  # Только связь с Newman требует такой обработки.
  #
  # Когда ppp связь установлена, этот скрипт вызывается со следующими 
  # параметрами
  #       $1      имя интерфейса, используемое pppd (напр. ppp3)
  #       $2      имя устройства tty
  #       $3      скорость устройства tty
  #       $4      локальный IP адрес  для интерфейса
  #       $5      удаленный IP адрес
  #       $6      параметр, указанный опцией 'ipparam' в pppd
  #
  case "$5" in
  # Обработка маршрутизации для сервера Newman Campus
          202.12.126.1)
                  /sbin/route add -net 202.12.126.0 gw 202.12.126.1
  # and flush the mail queue to get their email there asap!
                  /usr/sbin/sendmail -q &
                  ;;
          139.130.177.2)
  # Наше Internet соединение
  # когда вязь будет установлена, запустить сервер времни и синхронизировать с
  # миром. Предполагается, что он еще не запущен 
                  if [ ! -f /var/lock/subsys/xntpd ]; then
                          /etc/rc.d/init.d/xntpd.init start &
                  fi
  # Запуск сервера новостей (если еще не запущен)
                  if [ ! -f /var/lock/subsys/news ]; then
                          /etc/rc.d/init.d/news start &
                  fi
                  ;;
          203.18.8.104)
  # Скачать почту на мою домашнюю машину при установлении связи
  # Маршрутизция не требуется, так как мой домашний Ethernet обрабатывается IP
  # masquerade и proxyarp маршрутизацией.
                  /usr/sbin/sendmail -q &
                  ;;
          *)
  esac
  exit 0
  ______________________________________________________________________

В результате поднятия ppp линка с нашим университетским городком Newman и выполнения этого сценария, мы получаем таблицы маршрутизации со следующими записями (эта машина явялется также нашим общим PPP сервером, и обрабатывает нашу связь с Интернет). Я разнообразил комментарии в выводе, чтобы помочь объяснить, чем является каждая запись):

  ______________________________________________________________________
  [root@kepler /root]# route -n
  Kernel routing table
  Destination     Gateway         Genmask         Flags MSS    Window Use Iface
  # HOST маршрут на наш удаленный шлюз в Интернет
  139.130.177.2   *               255.255.255.255 UH    1500   0      134 ppp4
  # HOST маршрут на наш Newman сервер студенческого городка
  202.12.126.1    *               255.255.255.255 UH    1500   0       82 ppp5
  # HOST маршрут на мой домашний ethernet
  203.18.8.104    *               255.255.255.255 UH    1500   0       74 ppp3
  # две наши основные коммутируемые PPP линии
  203.18.8.64     *               255.255.255.255 UH    552    0        0 ppp2
  203.18.8.62     *               255.255.255.255 UH    552    0        1 ppp1
  # специальный сетевой маршрут в Newman LAN студенческого городка
  202.12.126.0    202.12.126.1    255.255.255.0   UG    1500   0        0 ppp5
  # маршрут в наш локальный Ethernet (суперсеть из двух сетей класса C)
  203.18.8.0      *               255.255.254.0   U     1500   0     1683 eth0
  # маршрут в устройство loop back
  127.0.0.0       *               255.0.0.0       U     3584   0      483 lo
  # маршрут по умолчанию в Internet
  default         139.130.177.2   *               UG    1500   0     3633 ppp4
  ______________________________________________________________________

23.4 Обработка email

Предыдущий раздел показывает, как обработать исходящую почту - просто, очисткой (flushing) почтовой очереди, если связь установлена.

Если вы делаете WAN связь, то вы можете договориться с сетевым администратором удаленной LAN, чтобы cделать то же самое. Например, настройка нашей стороны WAN связи с Университетским городком Newman в файле /etc/ppp/ip-up выглядит так:

______________________________________________________________________

#!/bin/bash
#
# Скрипт, который занимается проблемами маршрутизации по мере 
# необходимости для pppd
# Только связь с Hedland требует этой обработки.
#

# Когда связь ppp появляется, этот скрипт вызывается со следующими параметрами
#       $1      имя интерфейса, используемого pppd (например ppp3)
#       $2      имя устройства tty
#       $3      скорость устройства tty
#       $4      локальный IP адрес  для интерфейса
#       $5      удаленный IP адрес
#       $6      параметр, указанный опцией 'ipparam' в pppd
#
case "$5" in
        203.18.8.4)
                /usr/sbin/sendmail -q
                ;;
        *)
esac
exit 0
______________________________________________________________________

Если однако вы имеете с вашим ISP только динамический IP адрес по PPP связи, вы должны получать ваш email с аккаунта на машине вашего ISP. Это обычно делается с использованием POP (Протокол Почтового отделения). Этот процесс может быть выполнен, используя программу 'popclient', - а ip-up скрипт может автоматизировать этот процесс!

Просто создайте сценарий /etc/ppp/ip-up, который содержит соответствующий вызов popclient. Для моей портативной ЭВМ, на которой работает Red Hat Linux (которую я беру в любые путешествия), это

______________________________________________________________________

popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail
______________________________________________________________________

Вы могли бы использовать slurp или что-то еще, чтобы сделать это же самое для новостей и т.д. Помните, скрипт - это только стандартный скрипт bash и может использоваться так, чтобы автоматизировать ЛЮБУЮ функцию, которую нужно выполнять каждый раз при установлении соответствующей PPP связи.


Вперед Назад Содержание
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...