Fornece às instâncias do aplicativo seus próprios IPs? Containerização extremamente leve?

1

Cerca de dois anos atrás, recebi uma observação com um método, mas não consegui encontrar a nota ou o método agora. Alguém sabe a maneira mais fácil de conseguir isso?

J.E.B.

    
por JEB of Ponderworthy 07.01.2018 / 23:00

2 respostas

0

Para começar, aqui está um script simples que cria um novo namespace de rede e inicia um xterm nele, portanto todas as ações ali acontecem nesse namespace. Ele também conecta o namespace ao namespace principal por um par de veth.

Coloque todos os veth-endpoints no namespace principal em uma bridge para que o multicasting seja trivial (ou adicione um roteador multicast, se você quiser), execute seus aplicativos a partir do xterm (ou modifique o script), veja se isso já você quer. Você precisa substituir your_userid pelo ID do usuário que deve executar as instâncias.

#!/bin/bash

# Setup network namespace with veth pair, start xterm in it

# nsterm ns0 veth0 10.0.0 yellow 24
#

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

NS=${1:-ns0}
DEV=${2:-veth0}
DEV_A=${DEV}a
DEV_B=${DEV}b
ADDR=${3-:10.0.0}
ADDR_A=${ADDR}.254
ADDR_B=${ADDR}.1
MASK=${5:-24}
COL=${4:-yellow}

# echo ns=$NS dev=$DEV col=$COL mask=$MASK

ip netns add $NS
ip link add $DEV_A type veth peer name $DEV_B netns $NS
ip addr add $ADDR_A/$MASK dev $DEV_A
ip link set ${DEV}a up
ip netns exec $NS ip addr add $ADDR_B/$MASK dev $DEV_B
ip netns exec $NS ip link set ${DEV}b up
ip netns exec $NS ip route add default via $ADDR_A dev $DEV_B
ip netns exec $NS su -c "xterm -bg $COL &" your_userid
    
por 10.01.2018 / 18:47
0

Ah, a resposta foi e é Firejail . Muito mais simples de manusear que namespaces de rede.

    
por 02.02.2018 / 20:06