17 if ( my $dev = $ENV{DEV} ) {
18 warn "W: running under device $dev, not configuring tap0\n";
22 if ( $server::ip !~ m{^172} ) {
23 warn "W: server ip mismetch, not configuring tap0\n";
27 my $interfaces = read_file '/etc/network/interfaces';
29 if ( $interfaces !~ m{tap0}s ) {
31 system "sudo apt-get install vde2";
33 write_file '/tmp/interfaces', qq{
36 iface tap0 inet static
38 netmask $server::netmask
40 # setup NAT for vde network
41 post-up sysctl -w net.ipv4.ip_forward=1
42 post-up iptables -t nat -A POSTROUTING -s $server::ip/$server::netmask -o wlan0 -j MASQUERADE
46 system q|sudo sh -c 'cat /tmp/interfaces >> /etc/network/interfaces'|;
47 system q|sudo sh -c 'usermod -G vde2-net -a $SUDO_USER'|;
51 my $ifconfig = ifconfig('tap0');
52 if ( $ifconfig =~ m{UP} ) {
53 $ifconfig =~ m{$server::ip}s && return 'up';
54 system("sudo /sbin/ifconfig tap0 $server::ip netmask $server::netmask") == 0 && return "ip changed $server::ip";
55 die "can't change IP address of tap0 to $server::ip";
57 die "bring interface up with: sudo ifup tap0\n";