The cause was that my ADSL connection got stuck due to sudden disconnection.
The problem was solved by resetting the ADSL connection from Bezeq’s side.
For future reference, I am writing some information which I collected during the process.
I use the following script to connect to ADSL:
#!/usr/bin/perl
#
# Supports hidden pap-secrets and chap-secrets files.
#
# Copyright (C) 2004 by Omer Zak, all rights reserved.
# Licensed under the GPL (version 2 or later).
#
($prog = $0) =~ s/.*///;
$usage = <<EOT;
Usage: $prog [ start | stop ]
OPTIONS:
start - Starts the connection
stop - Stops it
!!! implement also clean - to clean if the script
!!! was aborted and did not clean up its act
EOT
######### Parameters ################################################
## 1. Hardwired parameters needed for both adsl.pl start and adsl.pl stop
$ramdisk = "/dev/ram2";
$ramdisk_mountpoint = "/tmp/ram_adsl";
$ramdisk_log = "/tmp/ramdisk_log$$"; # For messages created by RAMdisk related commands
$pap_secrets = "$ramdisk_mountpoint/alternate-pap-secrets";
$chap_secrets = "$ramdisk_mountpoint/alternate-chap-secrets";
$fw_adsl = "fw-adsl.sh";
## 2. User configurable parameters
$username = "your-username";
$ispname = "your-ISP"; # iactcom, to connect to Actcom
$debug = 0;
######### End of Parameters #########################################
######### Prepare RAMdisk for the secrets files #####################
sub prepare_ramdisk {
$old_umask = umask(0177);
$rc = system("dd if=/dev/zero of=$ramdisk bs=1k count=256 >& $ramdisk_log"); # RAMdisk size = 256K
die "RAMdisk clear operation failed!n" unless (($rc/256) == 0);
$rc = system("/sbin/mke2fs -vm0 $ramdisk 256 >> $ramdisk_log 2>&1");
die "Filesystem construction in RAMdisk failed!n" unless (($rc/256) == 0);
die "Could not make RAMdisk mountpoint!n" unless mkdir($ramdisk_mountpoint,0600);
$rc = system("mount $ramdisk $ramdisk_mountpoint");
die "Attempt to mount the RAMdisk failed!n" unless (($rc/256) == 0);
umask($old_umask);
}
######### End of RAMdisk preparation ################################
######### Create a secrets file in RAMdisk ##########################
sub write_secrets_file {
local($secret_type,$ramdisk_filename,$psw) = @_;
# $secret_type is either "pap" or "chap"
# $ramdisk_filename is the actual RAMdisk filename to which we
# establish a symbolic link.
# $psw is the password which we do not want to actually save on disk.
$old_umask = umask(0177);
# Replace /etc/ppp/$secret_type-secrets (if any) by link into the RAMdisk.
if (-e "/etc/ppp/$secret_type-secrets")
{
die "Could not rename existing /etc/ppp/$secret_type-secrets!n" unless rename("/etc/ppp/$secret_type-secrets","/etc/ppp/$secret_type-secrets.old.$$");
print "Existing /etc/ppp/$secret_type-secrets was renamed as /etc/ppp/$secret_type-secrets.old.$$n";
}
die "Could not set up symbolic link at /etc/ppp/$secret_type-secrets!n" unless symlink($ramdisk_filename,"/etc/ppp/$secret_type-secrets");
######### Write secrets file ########################################
die "Failed to open the alternate $secret_type secrets file!n" unless open(SECRETS,">$ramdisk_filename");
print SECRETS "\"$username@$ispname\" \"10.0.0.138 RELAY_PPP1\" $pswn";
die "Failed to close the alternate $secret_type secrets file!n" unless close(SECRETS);
umask($old_umask);
}
###### End of procedure for creation of a RAMdisk secrets file ######
unless ($ARGV[0]) {
die $usage;
}
if ($ARGV[0] =~ /^start/) {
$start = 1;
}
elsif ($ARGV[0] =~ /^stop/) {
$stop = 1;
}
elsif ($ARGV[0] =~ /^clean/) {
die "The clean option is not implemented yet.n"
}
else {
die $usage;
}
if ($start) {
##### Validate ##################################################
$who = `whoami`;
die "Only the superuser is permitted to run this script!n" unless ($who eq "rootn");
##### Obtain user's password ####################################
if (-t STDIN) {
system 'stty', '-echo';
}
$| = 1; # Unbuffer STDOUT
print "Password: ";
chop($password = );
print "n";
if (-t STDIN) {
system 'stty', 'echo';
}
# NOTE: !!! The above is not protected against signals.
# !!! Aborting the script file at this point will
# !!! cause the terminal to enter Helen Keller mode.
##### Debian Addition: need to create /dev/ppp if nonexistent ##
if (!-e "/dev/ppp") {
print "/dev/ppp does not exist, creating it.n";
$rc = system("mknod /dev/ppp c 108 0");
die "Attempt to create /dev/ppp failed!n" unless (($rc/256) == 0);
}
else {
die "/dev/ppp is not a character special file!n" unless(-c "/dev/ppp");
}
##### Prepare RAM disk and links ################################
prepare_ramdisk();
# Replace /etc/ppp/pap-secrets (if any) by link into the RAMdisk.
write_secrets_file("pap",$pap_secrets,$password);
# Replace /etc/ppp/chap-secrets (if any) by link into the RAMdisk.
write_secrets_file("chap",$chap_secrets,$password);
# Now can start the ADSL connection.
print "Calling Actcom via ADSL...n";
system("/usr/sbin/pptp 10.0.0.138 --quirks=BEZEQ_ISRAEL debug user $username@$ispname remotename \"10.0.0.138 RELAY_PPP1\" defaultroute mtu 1452 mru 1452 noauth &");
sleep 5; # Should wait until a connection is really established.
system($fw_adsl);
}
if ($stop) {
print "Disconnecting from Actcom...n";
system("/sbin/ifconfig ppp0 down");
system("killall pppd");
sleep 2;
print "Restoring regular iptables settings...n";
system("/etc/rc.d/init.d/iptables restart");
# Now wipe out the PAP secrets and chat script files and do
# other cleanup activities.
die "Could not remove the symbolic link at /etc/ppp/pap-secrets!n" unless unlink("/etc/ppp/pap-secrets");
die "Could not remove the symbolic link at /etc/ppp/chap-secrets!n" unless unlink("/etc/ppp/chap-secrets");
$rc = system("umount $ramdisk_mountpoint");
die "Attempt to unmount the RAMdisk failed!n" unless (($rc/256) == 0);
die "Could not remove RAMdisk mountpoint!n" unless rmdir($ramdisk_mountpoint);
$rc = system("dd if=/dev/zero of=$ramdisk bs=1k count=256 >> $ramdisk_log 2>&1"); # RAMdisk size = 256K
die "RAMdisk wipe operation failed!n" unless (($rc/256) == 0);
#### End of hidden pap-secrets support ##############################
}
######## Hidden pap-secrets file support code ###########################
if ($debug < = 0)
{
die "Could not remove $ramdisk_log!n" unless unlink($ramdisk_log);
}
######## End of hidden pap-secrets support ##############################
# End of adsl.pl perl script.
(The above script calls another script – fw-adsl.sh – to configure the firewall. This script is not reproduced here.)
When my ADSL connection was stuck, pppd yielded the following error-message:
[pppd] LCP: timeout sending Config-Requests_
I took the following steps:
- Turned off and back on the ADSL modem.
- Ensured that the two rightmost lights in the modem are green and light steadily. Other lights blinked when there were connection attempts.
- Pinging the ADSL modem itself worked.
- Bezeq provides a special username for testing – 1@1, with empty password. If you can connect to this special username, but not to your ISP then the problem is with your ISP’s infrastructure. I could not connect to 1@1, proving that the problem was with Bezeq’s infrastructure.
- Since Bezeq does not support Linux, they need the user to connect a MS-Windows PC to ADSL and try to connect via it, and to note the error message given by MS-Windows! Since I do not have such a machine at home, I was stuck.
- I turned to a friend who might have such a laptop. He did not have a laptop, but told me his war story and advised me to ask Bezeq to reset my ADSL connection from their side. This advice worked!
Moral: we need a table relating pptp/pppd error messages to MS-Windows error codes, which Bezeq support personnel know.
The following FAX numbers are relevant to the problem resolution efforts:
- Actcom – FAX 04-8676116 – active both during daytime and at night, but support personnel must be notified some other way to look at the FAX machine.
- Bezeq Internet support center – FAX 03-6829048 – not clear if they answer FAX messages also at night and during weekend, because I contacted them also by alternative means (an hearing person making a phone call in my behalf).
Like this:
Like Loading...