use File::Slurp;
use server;
+use ip;
sub ifconfig {
my $dev = shift;
system "brctl setfd virtual 0";
system("/sbin/ifconfig virtual $server::ip netmask $server::netmask") == 0 || warn "W: $!";
} else {
- warn "OK $ifconfig\n";
+ warn "using existing virtual configuration\n$ifconfig\n";
+ }
+ if ( my $dev = ip::default_route_dev() ) {
+ system "sudo sysctl -w net.ipv4.ip_forward=1";
+ my $network = ip::from_int( ip::to_int($server::ip) & ip::to_int($server::netmask) );
+ warn "# network $network";
+ system "sudo iptables -t nat -L POSTROUTING -n | grep $network || sudo iptables -t nat -A POSTROUTING -s $server::ip/$server::netmask -o $dev -j MASQUERADE";
+ warn "masquarade to $dev";
}
}