14 |
|
|
15 |
sub tap { |
sub tap { |
16 |
|
|
17 |
|
if ( $server::ip !~ m{^172} ) { |
18 |
|
warn "W: not configuring tap0 interface!"; |
19 |
|
return; |
20 |
|
} |
21 |
|
|
22 |
my $interfaces = read_file '/etc/network/interfaces'; |
my $interfaces = read_file '/etc/network/interfaces'; |
23 |
|
|
24 |
if ( $interfaces !~ m{tap0}s ) { |
if ( $interfaces !~ m{tap0}s ) { |
32 |
address $server::ip |
address $server::ip |
33 |
netmask $server::netmask |
netmask $server::netmask |
34 |
vde2-switch - |
vde2-switch - |
35 |
|
# setup NAT for vde network |
36 |
|
post-up sysctl -w net.ipv4.ip_forward=1 |
37 |
|
post-up iptables -t nat -A POSTROUTING -s $server::ip/$server::netmask -o wlan0 -j MASQUERADE |
38 |
|
|
39 |
}; |
}; |
40 |
|
|
48 |
$ifconfig =~ m{$server::ip}s && return 'up'; |
$ifconfig =~ m{$server::ip}s && return 'up'; |
49 |
system("sudo /sbin/ifconfig tap0 $server::ip netmask $server::netmask") == 0 && return "ip changed $server::ip"; |
system("sudo /sbin/ifconfig tap0 $server::ip netmask $server::netmask") == 0 && return "ip changed $server::ip"; |
50 |
die "can't change IP address of tap0 to $server::ip"; |
die "can't change IP address of tap0 to $server::ip"; |
51 |
|
} else { |
52 |
|
die "bring interface up with: sudo ifup tap0\n"; |
53 |
} |
} |
|
system("sudo ifup tap0") == 0 && return 'started'; |
|
|
die "can't start tap0: $!"; |
|
54 |
} |
} |
55 |
|
|
56 |
1; |
1; |