gnunet

Main GNUnet Logic
Log | Files | Refs | Submodules | README | LICENSE

nat_router.sh (2193B)


      1 #!/bin/bash
      2 dirname=$(dirname "$0")
      3 PREFIX=$3
      4 echo start $2 >> timeout_$PREFIX.log
      5 if [ $2 -eq 1 ]
      6 then
      7    if [ ! -d /tmp/netjail_scripts ]
      8    then
      9         mkdir /tmp/netjail_scripts
     10    fi 
     11    if [ -f timeout_$PREFIX.out ]
     12    then
     13        rm timeout_$PREFIX.out
     14    fi
     15    touch timeout_$PREFIX.out
     16    if [ -f timeout_$PREFIX.log ]
     17    then
     18        rm timeout_$PREFIX.log
     19    fi
     20    touch timeout_$PREFIX.log
     21    timeout=6000000000
     22    $dirname/timeout.sh $timeout $PREFIX &
     23    echo gaga >> timeout_$PREFIX.log
     24    timeout_pid=$!
     25    conntrack -E -e NEW -s 192.168.15.1 -d 92.68.150.1/24 | while read line
     26    do
     27        protocol=$(echo $line|awk '{printf $2"\n"}'|awk '{printf $1"\n"}')
     28        dst=$(echo $line|awk -Fdst= '{printf $2"\n"}'|awk '{printf $1"\n"}')
     29        src=$(echo $line|awk -Fdst= '{printf $1"\n"}'|awk -Fsrc= '{printf $2"\n"}')
     30        port=$(echo $line|awk -Fdport= '{printf $2"\n"}'|awk '{printf $1"\n"}')
     31        echo dnat >> timeout_$PREFIX.log
     32        now=$(date +%s%N)
     33        kill -TSTP $timeout_pid
     34        if [ $(wc -l < timeout_$PREFIX.out) -eq 0 ]
     35        then
     36            iptables-nft -t nat -A PREROUTING -p $protocol -s $dst -d 92.68.150.$PREFIX -j DNAT --to $src
     37            # echo iptables-nft -t nat -A PREROUTING -p $protocol -s $dst -d 92.68.150.1 -j DNAT --to $src >> timeout_$PREFIX.out
     38            echo forwarding >> timeout_$PREFIX.log
     39        fi
     40        # echo $line >> timeout_$PREFIX.out
     41        echo $now $protocol $dst $src $port >> timeout_$PREFIX.out
     42        kill -CONT $timeout_pid
     43    done
     44    echo gigi >> timeout_$PREFIX.log
     45    rm timeout_$PREFIX.out
     46 else
     47    #echo "find -L /proc/[1-9]*/task/*/ns/net -samefile /run/netns/$1|while read x" >> timeout_$PREFIX.log
     48    #find -L /proc/[1-9]*/task/*/ns/net -samefile /run/netns/$1|while read x
     49    #do
     50        #if [ "" != "$(ps aux|grep $x|grep conntrack)" ]
     51        #then
     52            echo kill conntrack >> timeout_$PREFIX.log
     53            killall conntrack #$x
     54        #fi
     55        #if [ "" != "$(ps aux|grep $x|grep timeout)" ]
     56        #then
     57            echo kill timeout >> timeout_$PREFIX.log
     58            killall timeout.sh #$x
     59            echo kill getmsg >> timeout_$PREFIX.log
     60            killall getmsg.sh
     61        #fi
     62    #done
     63 fi