--- lib/PXElator/network.pm 2009/08/03 20:59:23 130 +++ lib/PXElator/network.pm 2009/08/09 16:37:46 179 @@ -14,6 +14,16 @@ sub tap { + if ( my $dev = $ENV{DEV} ) { + warn "W: running under device $dev, not configuring tap0\n"; + return; + } + + if ( $server::ip !~ m{^172} ) { + warn "W: server ip mismetch, not configuring tap0\n"; + return; + } + my $interfaces = read_file '/etc/network/interfaces'; if ( $interfaces !~ m{tap0}s ) { @@ -27,6 +37,9 @@ address $server::ip netmask $server::netmask vde2-switch - + # setup NAT for vde network + post-up sysctl -w net.ipv4.ip_forward=1 + post-up iptables -t nat -A POSTROUTING -s $server::ip/$server::netmask -o wlan0 -j MASQUERADE }; @@ -40,9 +53,9 @@ $ifconfig =~ m{$server::ip}s && return 'up'; system("sudo /sbin/ifconfig tap0 $server::ip netmask $server::netmask") == 0 && return "ip changed $server::ip"; die "can't change IP address of tap0 to $server::ip"; + } else { + die "bring interface up with: sudo ifup tap0\n"; } - system("sudo ifup tap0") == 0 && return 'started'; - die "can't start tap0: $!"; } 1;