Public repo to distribute scripts and config's
Nevar pievienot vairāk kā 25 tēmas
Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
|
- #!/usr/bin/bash
- #
- NATNET=172.16.0.0/16
- NUMOFNS=254
- alias IPN='sudo ip net'
- alias IPL='sudo ip link'
- alias IPA='sudo ip addr add'
-
- peers='tcp://188.40.132.242:9651 tcp://65.21.231.58:9651'
-
- function IPNA() {
- local name=$1
- shift
- sudo ip -n ${name} addr add $@
- }
- function IPNL() {
- local name=$1
- shift
- sudo ip -n ${name} link $@
- }
- function IPNR() {
- local name=$1
- shift
- local defrtr=${1/\/24/}
- shift
- sudo ip -n ${name} route add default via ${defrtr}
- }
- function createns() {
- local iname=$1
- local in_ip=$2
- local out_ip=$3
- local name=n-${iname}
- IPN add $name
- IPL add in_${iname} type veth peer name out_${iname}
- IPL set in_${iname} netns ${name}
- IPNL ${name} set lo up
- IPNL ${name} set in_${iname} up
- IPL set out_${iname} up
- IPNA ${name} ${in_ip} dev in_${iname}
- IPA ${out_ip} dev out_${iname}
- IPNR ${name} ${out_ip}
- # start mycelium, relying on local discovery
- nohup sudo ip netns exec ${name} ./mycelium --key-file ${name}.bin --disable-peer-discovery --api-addr ${in_ip/\/24/}:8989 --peers ${peers} > ${iname}.out &
- }
- function dropns() {
- local iname=$1
- local name=n-${iname}
- IPL del out_${iname}
- IPN del ${name}
- }
-
- function doit() {
- nohup sudo ./mycelium --key-file host.bin --api-addr 127.0.0.1:8989 --peers ${peers}>host.out &
- for i in $(seq 1 $NUMOFNS); do
- createns ${i} 172.16.${i}.2/24 172.16.${i}.1/24
- done
- }
- function dropit() {
- sudo pkill -9 mycelium
- for i in $(seq 1 $NUMOFNS); do
- dropns ${i}
- done
- }
-
- function cleanit() {
- dropit
- sudo rm ./*.bin
- sudo rm ./*.out
- }
-
- function showit() {
- sudo killall -USR1 mycelium
- }
-
- function getmycelium(){
- wget https://github.com/threefoldtech/mycelium/releases/latest/download/mycelium-x86_64-unknown-linux-musl.tar.gz \
- -O- | gunzip -c | tar xvf - -C ${PWD}
-
- }
|