I did a lot of googling today and made two changes, got brave, rebooted and everything is working. Everything was ready and right in my ifcfg-ppp0 for IPv4, just needed the ONBOOT=yes And IPv6 allocation needed in ifcfg-ppp0: IPV6INIT=yes PPPD_EXTRA="ipv6 ," Not the later can be placed in /etc/ppp/options, but I thought it better to keep all PPPoE customizations in one place. Robert Moskowitz wrote: > I need basic PPPoE startup help. > > adsl-start DID bring up my PPPoE link (ppp0) to my ISP over eth0 via > the DSL modem/bridge. My IPv4 CIDR block is routing and Shorewall is > doing the firewalling. > > But shorewall has to be started after ppp0 is up and working. For now > this means running shorewall restart (or start?). Shorewall 4.2 will > have a way to restart shorewall without recompiling, I learned on the > their list. > > In /etc/sysconfig/network-scripts/ifcfg-ppp0 I have: > > BOOTPROTO=dialup > NAME=DSLppp0 > DEVICE=ppp0 > TYPE=xDSL > ONBOOT=no > > Should ONBOOT be changed to yes, or is there some startup script that > I should add the > > /sbin/adsl-start ppp0 > > command line followed with the shorewall restart command? > > I am away at IEEE 802 plenary meeting next week, and I need this to be > automated in case of system glitches. > > Also sometimes the Speedstream just stops forwarding datagrams. > Supposedly if it overheats. This requires a power recycle for the > speedstream (and my ISP will not use anything else for the modem > services). I suspect this will glich the PPPoE connection as well, so > I will need some sort of watchdog and a restart of ppp0 and Shorewall. > Attached is a rather large script of a user that I picked up on the > Shorewall list for some Linux distro. I am NOT a script reader, let > alone writer. Should I use this (how would I modify it for Centos and > a ppp0 interface) and where would I place it to run as needed? > > ======================================================= > > #!/usr/bin/perl -w > > #THIS SCRIPT CREATED BY EJM (alias Erik Mundall) IN ORDER TO MAINTAIN > A CONSTANT CONNECTION WITH THE TWO > #PPPOE ADSL LINES WHICH HAVE PROVEN TO BE UNRELIABLE/UNSTABLE. 15 > APRIL 2008 > # > #THIS PROGRAM NEEDS TO FOLLOW THE FOLLOWING ROUTINE IN ORDER TO > MAINTAIN CONNECTIVITY OF THE TWO PPPOE LINES > #AND TO SHARE THE INTERNET LOAD ACROSS THOSE AND ACROSS THE STATIC LINE > # > #THE STATIC SHOULD NEVER FAIL. THIS SCRIPT IS INTENDED TO ADDRESS ONLY > THE INSTABILITY OF THE TWO PPPOE > #LINES, AND WILL DO NOTHING FOR THE STATIC LINE IF IT SHOULD FAIL. > # > # > #STEP ONE: THE PROGRAM SHOULD IDENTIFY THE LINE(S) THAT ARE DOWN, IF > ANY, AND ISOLATE THEM. > #STEP TWO: THE PROGRAM SHOULD RECONFIGURE AND RESTART SHOREWALL TO > MATCH THE LINES THAT ARE UP. > #STEP THREE: THE PROGRAM SHOULD FOCUS ON RESTORING THE DROPPED PPPOE > LINE(S). > #STEP FOUR: THE PROGRAM MUST REPEAT STEP TWO ONCE STEP THREE HAS > SUCCEEDED. > > ############################################### > # REQUIRED VARIABLES. THESE MUST BE SET PROPERLY!!! > our $admin_email =q`your_email_address at your_domain_name.com`; > our $domain_name = "your_domain_name.com"; > our $GATEWAY_1 = 'x.x.x.x'; #GATEWAY OF PPP0 LINE > our $GATEWAY_2 = 'x.x.x.x'; #GATEWAY OF PPP1 LINE > our $IPADDRESS_1 = 'x.x.x.x'; #STATIC IP ADDRESS OF PPP0 LINE > (ASSIGNED BY ISP) > our $IPADDRESS_2 = 'x.x.x.x'; #STATIC IP ADDRESS OF PPP1 LINE > (ASSIGNED BY ISP) > > our $DEBUG=1; #SET THIS TO 1 FOR DEBUGGING, 0 TO TURN DEBUGGING OFF > our $DEBFILE='/var/log/ppp/debug.log'; #THE /var/log/ppp DIRECTORY > MUST EXIST FOR THE DEBUG FILE > our $logfile='/var/log/ppp/maint.log'; #THE /var/log/ppp DIRECTORY > MUST EXIST FOR LOGGING. > > ############################################### > # BELOW THIS LINE, NOTHING MORE SHOULD NEED TO BE CONFIGURED. > our @ifconf = (); > our @iprout = `/sbin/ip route`; > our $p1; > our $p2; > our $ppp0=0; > our $ppp1=0; > our $FAILED='FALSE'; > our $FAIL='TRUE'; > our $attempt=0; > our $date=''; > our @data=(); > our @updata=(); > our @log=(); > our @total_log=(); > our $cur_day=0; > our $cur_month=0; > our $cur_year=0; > our $late_day=0; > our $late_month=0; > our $late_year=0; > our > %months=(Jan,1,Feb,2,Mar,3,Apr,4,May,5,Jun,6,Jul,7,Aug,8,Sep,9,Oct,10,Nov,11,Dec,12); > > our $start_time=`/bin/date`; > our $stop_time; > > ############################################# > ### SAFEGUARD AGAINST MULTIPLE PROCESSES! ### > ############################################# > our @pslist = `/bin/ps auxw`; > our $line=''; > our $scripts=0; > > foreach $line(@pslist) { > if ($line=~s/(ppp-line-maintenance\.pl)/$1/) { #THIS SCRIPT MUST NOT > BE RENAMED, OR IF IT IS, THIS LINE MUST BE ADJUSTED ACCORDINGLY!!!! > $scripts++; > if ($DEBUG==1) {print "Line:$line\nScripts:$scripts\n" }; > }; > }; > if ($scripts<=2) { #CONTINUE THIS SCRIPT IF ONLY ONE OCCURRENCE (THIS > ONE) OF THIS SCRIPT IN CURRENT PROCESS LIST > > > ############# > ### BEGIN ### > ############# > if ($DEBUG==1) {open DLOG, ">$DEBFILE" or die "Cannot open debugging > file!\n"}; > > > &ping1; > &ping2; > &checkdowned; > &trimlog; > > if ($DEBUG==1) {close DLOG}; > > } #END 'CONTINUE SCRIPT' > > sleep 2; > > exit; > > > ###################################################################################################### > > ### SUBROUTINES ### > ################### > > sub ping1 { > $p1=`/bin/ping -c 3 $GATEWAY_1`; > if ($p1=~s/100\%\spacket\sloss//) {$p1='DOWN'}; > if ($p1=~s/unreachable//) {$p1='DOWN'}; > if ($DEBUG==1) {print DLOG "p1:$p1\n"}; > return $p1; > }; > > sub ping2 { > $p2=`/bin/ping -c 3 $GATEWAY_2`; if ($p2=~s/100\%\spacket\sloss//) > {$p2='DOWN'}; > if ($p2=~s/unreachable//) {$p2='DOWN'}; > if ($DEBUG==1) {print DLOG "p2:$p2\n"}; > return $p2; > }; > > > sub trimlog { > ################ > ### TRIM LOG ### > ################ > # THIS PRUNES THE LOG FILE TO JUST THE PREVIOUS THREE MONTH PERIOD. > open DATA, "<$logfile" or die "Cannot read PPP maint log file!\n"; > @data = <DATA>; > close DATA; > $date = `/bin/date`; > #$cur_month = > (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)[(localtime)[4]]; > $cur_month = (localtime)[4]; > $cur_year = (localtime)[5]; $cur_year+=1900; > $cur_day = (localtime)[3]; > #PPP Check: Wed Jan 30 09:20:01 CST 2008 [sample from log] > foreach $line(@data) { > if ($line=~m/PPP\sCheck:\s\w{3}\s(\w{3})\s(\d{2}).{14}(\d{4})/) { > $late_month=$months{$1}; $late_day=$2; $late_year=$3; > if ( ($late_year==$cur_year) && ( (($cur_month-$late_month)>=3) && > ($late_day<=$cur_day) ) ) {@updata=()} > elsif ( ($late_year<$cur_year) && ( (($late_month-$cur_month)<=9) && > ($late_day<=$cur_day) ) ) {@updata=()} > else { push @updata, $line } > } else { push @updata, $line }; > } > open DATA, ">$logfile" or die "Cannot write PPP maint log file!\n"; > print DATA @updata; > close DATA; > ################### END TRIM LOG > }; > > ############################## > ### Check for Downed Lines ### > ############################## > > sub checkdowned { > while ($FAIL eq 'TRUE') { > @ifconf=(); > @ifconf = `/sbin/ifconfig`; > $FAIL='FALSE'; > > while (@ifconf) { > $line=shift @ifconf; > if ($line=~m/ppp0/) { > if ($DEBUG==1) {print DLOG "PPPO:$ppp0 "}; > > $ppp0=1; > if ($DEBUG==1) {print DLOG "PPPO:$ppp0 "}; > > $line=shift @ifconf; > if ($line=~m/$IPADDRESS_1/) {$ppp0+=2}; > if ($DEBUG==1) {print DLOG "PPPO:$ppp0 "}; > $line=shift @ifconf; > if ($line=~m/UP /) {$ppp0+=4}; > if ($DEBUG==1) {print DLOG "PPPO:$ppp0\n"}; > }; > if ($line=~m/ppp1/) { > if ($DEBUG==1) {print DLOG "PPP1:$ppp1 "}; > $ppp1=1; > if ($DEBUG==1) {print DLOG "PPP1:$ppp1 "}; > $line=shift @ifconf; > if ($line=~m/$IPADDRESS_2/) {$ppp1+=2}; > if ($DEBUG==1) {print DLOG "PPP1:$ppp1 "}; > $line=shift @ifconf; > if ($line=~m/UP /) {$ppp1+=4}; > if ($DEBUG==1) {print DLOG "PPP1:$ppp1\n"}; > print $line > }; > } > > $attempt++; > if ($DEBUG==1) {print "ATTEMPT: $attempt\n"}; > if ($FAILED eq 'TRUE') {push @log, "Attempt#:$attempt > PPP0:$ppp0 > PPP1:$ppp1\n"}; > > if ($ppp0<7) { > if ($DEBUG==1) {print "$ppp0: Restarting ppp0 line by ifdown/ifup > commands...\n"}; > system("/sbin/ifdown ppp0"); > sleep 3; > system("/sbin/ifup ppp0"); > }; > if ($ppp1<7) { > if ($DEBUG==1) {print "$ppp1: Restarting ppp1 line by ifdown/ifup > commands...\n"}; > system("/sbin/ifdown ppp1"); > sleep 3; > system("/sbin/ifup ppp1"); > }; > if ($FAILED eq 'TRUE') { > push @log, `/bin/date`."\n"; > push @log, @iprout."\n\n"; > open LOG, ">>$logfile"; > print LOG @log; > close LOG; > } > push @total_log, @log; > @log=(); > > my $testppp0=ping0; > my $testppp1=ping1; > if ($DEBUG==1) {print "testppp0: $testppp0 testppp1:$testppp1\n"}; > if (($testppp0 eq 'DOWN') || ($testppp1 eq 'DOWN')) { $FAIL='TRUE' }; > if ($FAIL eq 'TRUE') {$FAILED='TRUE'}; > if ($DEBUG==1) {print DLOG "FAIL:$FAIL\n"}; > > > if ($FAILED eq 'TRUE') { > > system("/etc/init.d/shorewall", "restart"); > system("/etc/init.d/snmpd restart"); > open LOG, ">>$logfile" or die "Cannot open PPP maint log file!\n"; > print LOG @log; > close LOG; > push @total_log, @log; > $stop_time=`/bin/date`; > > ######################################################################################################### > > #NOW, SEND AN EMAIL OR CAUSE AN ERROR SO THAT CRON WILL EMAIL THE > SYSADMIN A NOTICE OF THIS NECESSITY!!! > system("/bin/mail -t <<EOF > To: $admin_email > From: pppoe-maintenance\@$domain_name > Subject: PPPoE Dropped Connection Restored!\n\n > > A PPPoE Connection was dropped or was lost. It should now be restored. > The restoration of the line began at: > > $start_time -- and finished at -- $stop_time. > > Here is the log from this process: > > @total_log > > END OF REPORT. > > EOF > "); > ############################################################################################################ > > > } else { > > open LOG, ">>$logfile" or die "Cannot open PPP maint log file!\n"; > print LOG "PPP Check: ".`/bin/date`; > close LOG; > }; #END IF FAILED > } #END WHILE FAIL > > print "SUCCEEDED AFTER $attempt ATTEMPTS!\n"; > } #END SUB CHECKDOWNED > > > _______________________________________________ > CentOS mailing list > CentOS at centos.org > http://lists.centos.org/mailman/listinfo/centos >