Changeset 3119 in /cluster/svnroot


Ignore:
Timestamp:
Apr 10, 2011 11:33:33 PM (10 years ago)
Author:
skylar
Message:

nat seems to work now in liberation (#609)

Location:
bccd-ng/branches/skylar-devel/trees
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • bccd-ng/branches/skylar-devel/trees/bin/bccd-nic-setup

    r3118 r3119  
    3434if(! -f $LOCK_FILE) {
    3535
    36         my($Bccd,$nic_conf,$response,$d,$rc);
     36        my($Bccd,$nic_conf,$response,$d,$out,$rc);
    3737       
    3838        $Bccd = new Bccd();
     
    6262        $nic_conf = $Bccd->config_nic_dialog($d,$nic_conf);
    6363       
    64         $Bccd->config_interfaces($nic_conf);
    65         $Bccd->config_dhcp($nic_conf);
     64        $nic_conf = $Bccd->config_interfaces($nic_conf);
     65        $nic_conf = $Bccd->config_dhcp($nic_conf);
     66
     67        ($out,$rc) = $Bccd->run_test("system","","Starting networking","/etc/init.d/networking start"); # No invoke-rc.d because utmp has not been updated
     68        if(!$rc) {
     69                $Bccd->log_and_cont("ERROR",'main',"Couldn't start networking: $out");
     70        }
     71
    6672        $Bccd->config_nat($nic_conf);
     73
    6774        $rc = touch($LOCK_FILE);
    6875        if(!$rc) {
  • bccd-ng/branches/skylar-devel/trees/usr/local/lib/site_perl/5.10.0/Bccd.pm

    r3118 r3119  
    18771877    close($INT);
    18781878    $self->leave_sub($sub);
     1879
     1880        return $nic_conf;
    18791881}
    18801882
     
    21602162        }
    21612163    }
    2162    
     2164    return $nic_conf;
    21632165}
    21642166
     
    21712173        }
    21722174
    2173         NIC:
    2174         foreach my $nic (keys(%{$nic_conf})) {
    2175                 if(defined($nic_conf->{$nic}->{'bccdnet'})) {
    2176                         $natnic = $nic;
    2177                         # Test for virtual NIC and use base if it's configured
    2178                         if($natnic =~ m{(\w+):1$} && defined($nic_conf->{$1})) {
    2179                                 $natnic = $1;
    2180                         }
    2181                 }
    2182         }
     2175    open(my $NETSTAT, '-|', '/bin/netstat', '-rn') or
     2176        $self->log_and_die("ERROR",$sub,"Couldn't open up netstat for piping!");
     2177
     2178    NETSTAT:
     2179    while(my $line = <$NETSTAT>) {
     2180        chomp $line;
     2181        my @splitline = split(/\s+/, $line);
     2182        if($splitline[0] eq '0.0.0.0') {
     2183            if($self->is_log($INFO) || $self->is_log($DEBUG)) {
     2184                $self->log_and_cont('INFO',$sub,"$splitline[7] is a default router");
     2185            }
     2186            $natnic = $splitline[7];
     2187            last NETSTAT;
     2188        }
     2189    }
     2190    close($NETSTAT);
    21832191
    21842192        if(defined($natnic)) {
     
    21892197                        $self->log_and_die("ERROR",$sub,"Couldn't open $NATSH for writing: $!");
    21902198
     2199                my $natip = $self->get_nic_ip($natnic);
     2200                if(!defined($natip)) {
     2201                        $self->log_and_die("ERROR",$sub,"Couldn't get IP address for $natnic!");
     2202                }
     2203
    21912204                print $NAT qq{#!/bin/bash\n\n};
    21922205                foreach my $LINE (
     
    21952208                                                                q{--delete-chain},
    21962209                                                                q{-t nat --delete-chain},
    2197                                                                 qq{-t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to-source }.$self->get_nic_ip($natnic)
     2210                                                                qq{-t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to $natip},
    21982211                                                        ) {
    21992212                        print $NAT "/sbin/iptables $LINE\n";
Note: See TracChangeset for help on using the changeset viewer.