Changeset 3238 in /cluster/svnroot


Ignore:
Timestamp:
Jun 19, 2011 12:19:30 AM (9 years ago)
Author:
skylar
Message:

only generate NAT rules for node000 (#644)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • bccd-ng/branches/skylar-devel/trees/usr/local/lib/site_perl/5.10.0/Bccd.pm

    r3233 r3238  
    21662166
    21672167sub config_nat{
    2168         my($self,$nic_conf) = @_;
    2169         my($natnic,$sub);
    2170         $sub = 'config_nat';
    2171     if($self->is_log($INFO) || $self->is_log($DEBUG)) {
    2172                 $self->log_and_cont('INFO',$sub,"Gathering routing information");
    2173         }
    2174 
     2168    my($self,$nic_conf) = @_;
     2169    my($natnic,$sub);
     2170    $sub = 'config_nat';
     2171    if($self->is_log($INFO) || $self->is_log($DEBUG)) {
     2172        $self->log_and_cont('INFO',$sub,"Gathering routing information");
     2173    }
     2174   
    21752175    open(my $NETSTAT, '-|', '/bin/netstat', '-rn') or
    21762176        $self->log_and_die("ERROR",$sub,"Couldn't open up netstat for piping!");
    2177 
    2178     NETSTAT:
     2177   
     2178  NETSTAT:
    21792179    while(my $line = <$NETSTAT>) {
    21802180        chomp $line;
     
    21892189    }
    21902190    close($NETSTAT);
    2191 
    2192         if(defined($natnic)) {
     2191   
     2192    if(defined($natnic)) {
    21932193        if($self->is_log($INFO) || $self->is_log($DEBUG)) {
    2194                         $self->log_and_cont('INFO',$sub,"Writing out $NATSH");
    2195                 }
    2196                 open(my $NAT, '>', $NATSH) or
    2197                         $self->log_and_die("ERROR",$sub,"Couldn't open $NATSH for writing: $!");
    2198 
    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 
    2204                 print $NAT qq{#!/bin/bash\n\n};
    2205                 foreach my $LINE (
    2206                                                                 q{--flush},
    2207                                                                 q{-t nat --flush},
    2208                                                                 q{--delete-chain},
    2209                                                                 q{-t nat --delete-chain},
    2210                                                                 qq{-t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to $natip},
    2211                                                         ) {
    2212                         print $NAT "/sbin/iptables $LINE\n";
    2213                 }
    2214 
    2215                 close($NAT);
     2194            $self->log_and_cont('INFO',$sub,"Writing out $NATSH");
     2195        }
     2196        open(my $NAT, '>', $NATSH) or
     2197            $self->log_and_die("ERROR",$sub,"Couldn't open $NATSH for writing: $!");
     2198       
     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       
     2204        print $NAT qq{#!/bin/bash\n\n};
     2205 
     2206        print $NAT q{if hostname|grep -q node000; then\n};
     2207       
     2208        foreach my $LINE (
     2209            q{--flush},
     2210            q{-t nat --flush},
     2211            q{--delete-chain},
     2212            q{-t nat --delete-chain},
     2213            qq{-t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to $natip},
     2214            ) {
     2215            print $NAT "\t/sbin/iptables $LINE\n";
     2216        }
     2217        print $NAT q{fi\n};
     2218       
     2219        close($NAT);
    22162220        if($self->is_log($INFO) || $self->is_log($DEBUG)) {
    2217                         $self->log_and_cont('INFO',$sub,"Making $NATSH executable");
    2218                 }
    2219                 chmod(S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, $NATSH) or
    2220                         $self->log_and_die("ERROR",$sub,"Couldn't set $NATSH to be executable: $!");
    2221                
    2222                 return 1;
    2223         }
    2224         return undef;
     2221            $self->log_and_cont('INFO',$sub,"Making $NATSH executable");
     2222        }
     2223        chmod(S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, $NATSH) or
     2224            $self->log_and_die("ERROR",$sub,"Couldn't set $NATSH to be executable: $!");
     2225       
     2226        return 1;
     2227    }
     2228    return undef;
    22252229}
    22262230
Note: See TracChangeset for help on using the changeset viewer.