Автор Тема: Настроенное через NetworkManager dsl соединение прерывается (через сутки пропадет значёк подключения  (Прочитано 9200 раз)

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
Цитировать
Так можно же не ждать долго: killall pppd
выполнил и подключение не получилось.. что то опять не то.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
А задание в кроне срабатывает ? Что в логе ? И не остался ли, кстати, файл /var/run/ppp1.pid после killall ? По идее, не должен, но... Вообще, тест примитивный, по хорошему, надо из pid-файла id процесса считать и проверить наличие процесса, а не просто на наличие файла ориентироваться.

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
вот логи Mar 31 10:30:01 WDark crond[4625]: (root) CMD ([ -f /var/run/ppp1.pid ] || /sbin/ifdown ppp1;/sbin/ifup ppp1)
Mar 31 10:30:01 WDark crond[4626]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)
Mar 31 10:35:01 WDark crond[4906]: (root) CMD ([ -f /var/run/ppp1.pid ] || /sbin/ifdown ppp1;/sbin/ifup ppp1)
Mar 31 10:40:02 WDark crond[5191]: (root) CMD ([ -f /var/run/ppp1.pid ] || /sbin/ifdown ppp1;/sbin/ifup ppp1)
Mar 31 10:40:02 WDark crond[5192]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)
Mar 31 10:45:01 WDark crond[5506]: (root) CMD ([ -f /var/run/ppp1.pid ] || /sbin/ifdown ppp1;/sbin/ifup ppp1)
Mar 31 10:50:01 WDark crond[7585]: (root) CMD ([ -f /var/run/ppp1.pid ] || /sbin/ifdown ppp1;/sbin/ifup ppp1)
Mar 31 10:50:01 WDark crond[7586]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)
Цитировать
И не остался ли, кстати, файл /var/run/ppp1.pid после killall ?
/var/run/ppp1.pid нет, не остался.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
/var/run/ppp1.pid нет, не остался.
тогда должно перезапускаться. а что в /var/log/messages про ppp в это же время ? Только не новый давайте, а за это же время, 10:45

что-нибудь вроде cat /var/log/messages|egrep "Mar 31 10:4[56].*ppp" если я не ошибся на глаз.

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
Mar 31 10:45:01 WDark crond[5506]: (root) CMD ([ -f /var/run/ppp1.pid ] || /sbin/ifdown ppp1;/sbin/ifup ppp1)
  если должно запустится, подожду тогда когда ip сменится. потому что после killall не запустился.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
потому что после killall не запустился.
Так предполагается, что способ разрыва не должен быть важен. С применёнными настройками соединение должно быть восстановлено в любом случае, и после killall тоже. Так что не надо ждать, надо смотреть, что не так.

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
подключилось, через минуту, просто в прошлый раз подключалось быстрее. ) еще бы с ddclient разобраться, на оф сайте предлагают скрипт на perl, куда вводить логин пароль и свой сайт понятно, это пока все что понял, про perl почитал погуглил, пока понял в общих чертах...возможно настроить этот скрипт, посмотрите есть внем еще настроики кроме логин, пароль, сайт?#!/usr/bin/perl

use strict;
use warnings;

use Net::DNS;

# Your account info
my $key_name = "";
my $key_hmac = "";
my $host     = "";

# New IP address
my $ip = '1.2.3.4';

# DynDNS.com server information
my $tsig_server = 'update.dyndns.com';
my $tsig_server_pt = '53';

my $update = Net::DNS::Update->new($host);

$update->push("update", rr_add("$host A $ip"));
$update->sign_tsig($key_name, $key_hmac);

my $res = Net::DNS::Resolver->new(
port => $tsig_server_pt,
nameservers => [ $tsig_server ],
debug => 0,
);

my $pack = Net::DNS::Packet->new(\($update->data));
my ($additional) = $pack->additional;

my $mac = $additional->mac;
my $mac_size = $additional->mac_size;

my $time = $pack->{additional}[-1]->time_signed;

my $reply = $res->send($update);

if ($reply) {
if ($reply->header->rcode eq 'NOERROR') {
print "Update succeeded, verifying source...";

my $tsigRR = $reply->pop('additional');
delete $reply->{additional};

$reply->sign_tsig($key_name, $key_hmac);

# Net::DNS::RR::TSIG should be handling this for us...
my $size = unpack("H*", pack('n', $mac_size));

$reply->{additional}[-1]->{request_mac} = $size . $mac;
$reply->{additional}[-1]->{time_signed} = $time;

my $packet = Net::DNS::Packet->new(\($reply->data));
my ($additional) = $packet->additional;

if ($additional->{mac} eq $tsigRR->{mac}) {
print "Verified!\n";
} else {
print "Failed! Potential man in the middle attack!\n";
}
} else {
$reply->additional;
print 'Update failed: ', $reply->header->rcode, $reply->{additional}->[-1]->{error}, "\n";
}
} else {
print 'Update failed: ', $res->errorstring, "\n";
}

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
подключилось, через минуту, просто в прошлый раз подключалось быстрее. )
А из лога непонятен интервал срабатывания проверки в кроне ? Раз в пять минут.
еще бы с ddclient разобраться, на оф сайте предлагают скрипт на perl,
Скрипт на Perl, думаю, не имеет отношения к ddclient. Он вместо ddclient, судя по всему. Лучше про ddclient смотрите, если он работал. И документацию на него почитайте, там написано наверняка, что делать. Кстати, судя вот по этому http://sisyphus.ru/en/srpm/Sisyphus/ddclient/sources/1, он тоже на Perl. Может, это тот же скрипт и есть.
« Последнее редактирование: 31.03.2013 18:09:31 от asy »

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
почитал, вроде он настроен на роутер или модем, для настроек ppp в README пишут.
Цитировать
If you are using a ppp connection, you can easily update your DynDNS
entry with each connection, with:
  ## configure pppd to update DynDNS with each connection
  cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.local

Alternatively, you may just configure ddclient to operate as a daemon
and monitor your ppp interface.
или через крон
Цитировать
USING DDCLIENT WITH cron

If you have not configured ddclient to use daemon-mode, you'll need to
configure cron to force an update once a month so that the dns entry will
not become stale.

  ## configure cron to force an update twice a month
  cp sample-etc_cron.d_ddclient /etc/cron.d/ddclient
  vi /etc/cron.d/ddclient
как теперь это все оформить?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Как написано. Всё же понятно. Правда, в первом случае, я бы не стал делать cp не глядя: мало ли, что есть в уже ip-up.local. А сравнить и дописать - это вполне хорошо. Но ещё лучше что-то вроде
cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.d/DynDNS.updateИ содержимое этого sample-etc_ppp_ip-up.local можно ещё проверить.

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
создал файл в /etc/ppp/ip-up.local такого файла не было, скрипт взял из инета, выполнил команду
Цитировать
cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.d/DynDNS.update
#!/bin/sh
######################################################################
## $Id: sample-etc_ppp_ip-up.local 60 2007-07-07 12:37:42Z wimpunk $
######################################################################
##
## On my host, pppd invokes this script with args:
## /etc/ppp/ip-up.local ppp1 /dev/pts/1 115200 192.168.2.1 192.168.2.3
##
## From the manual page for my pppd, these aguments are:
##   scriptname interface-name tty-device speed local-IP-address remote-IP-address ipparam
##
## Some people have reported that their pppd returns their
## local-IP-address as $3.  If that's also the case for you,
## you may need to change the $4 below to $3.  This may not
## be necessary if your pppd also passes the local-ip-address
## in the environment as either PPP_LOCAL or IPLOCAL.
##
######################################################################
PATH=/usr/sbin:${PATH}
IP=
IP=${IP:-$PPP_LOCAL}
IP=${IP:-$IPLOCAL}
IP=${IP:-$4}

## update the DNS server unless the IP address is a private address
## that may be used as an internal LAN address (or PPtP tunnel).

logger -t ddclient $0 $*
case "$IP" in
10.*) ;;
172.1[6-9].* | 172.2[0-9].* | 172.3[0-1].*) ;;
192.168.*) ;;
"") logger -t ddclient No local IP given so cannot update
;;
*) (
sleep 5
ddclient -daemon=0 -syslog -use=if -if=$1 >/dev/null 2>&1
) &
;;
esac


Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
создал файл в /etc/ppp/ip-up.local такого файла не было, скрипт взял из инета, выполнил команду
Цитировать
cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.d/DynDNS.update
Ну не было файла ip-up.local, и фиг с ним, раз используется каталог ip-up.d. DynDNS.update там появился (с приведённым тут содержимым) ? Он исполняемый ?

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
Цитировать
DynDNS.update там появился (с приведённым тут содержимым) ? Он исполняемый ?
содержимое /etc/ppp/ip-up.d/DynDNS.update перешло из etc_ppp_ip-up.local, его я создал из установачной программы которую скачал с оф сайта dyn, мне показалась что версия ddclient на альт линукс урезаная, так как там нет некоторых файлов, например  etc_ppp_ip-up.local, не было и readmy, этот пример тоже оттуда
Цитировать
If you are using a ppp connection, you can easily update your DynDNS
entry with each connection, with:
  ## configure pppd to update DynDNS with each connection
  cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.local

Alternatively, you may just configure ddclient to operate as a daemon
and monitor your ppp interface.
если выполнить команду
Цитировать
cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.d/DynDNS.update
без всего этого то будет ругаться что нет файла etc_ppp_ip-up.local вот я его и создал, теперь не знаю правильно ли сделал и что делать дальше?

Оффлайн b_triton

  • Участник
  • *
  • Сообщений: 74
посмотрел логи на dyn.com в пять утра ip обновился от ddclient-a, получается помогло, еще я настраивал крон, не знаю точно крон или ppp сработало.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
если выполнить команду
Цитировать
cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.d/DynDNS.update
без всего этого то будет ругаться что нет файла etc_ppp_ip-up.local вот я его и создал, теперь не знаю правильно ли сделал и что делать дальше?
Смысл этой команды - положить в /etc/ppp/ip-up.d/ нужный скрипт. На самом деле, ни название исходного скрипта (sample-etc_ppp_ip-up.local ), но того, что в ip-up.d (DynDNS.update) заначения не имеют. Имеет значение то, что внутри скрипта с каким-то названием, который лежит в ip-up.d. А название просто должно быть понятным для себя же, и всё. Способ создания тоже не важен, можно его в текстовом редакторе руками напечатать, а не копировать посредством cp.
еще я настраивал крон
Зависит от того, что там написано. Задания крон отрабатываются в заданное время, скрипты в ppp/ip-up.d в момент получения IP-адреса демоном ppp. А делать они могут что угодно, в том числе и одно и то же.