Отправка пакета на одном интерфейсе и получение его на другом в целях тестирования

Это может сработать

# slurp the accounts file into a variable
accounts=$(< accounts.json)

# create the json, escaping the accounts quotes along the way
printf -v json '{"Args":["InitLedgerAdvanced","%s"]}' "${accounts//\"/\\\"}"

# and invoke the command
peer chaincode invoke -n cc -C channel1 -c "$json"

Если это все еще вызывает у вас затруднения, вам придется найти способ передать аргумент -cв «peer» через стандартный ввод или файл, а не в качестве аргумента командной строки.

0
24.05.2020, 19:42
2 ответа

«Пакеты-бумеранги» (, отправленные с одного локального интерфейса, полученные на другом локальном интерфейсе ), считаются ошибкой маршрутизации (зацикливаются где-то там )и по умолчанию отбрасываются ядром.

Кроме того, с фиктивными устройствами сложно работать.

Лучший подход :Создайте сетевое пространство имен (или два ), поместите пару veth между сетевым пространством имен и основным пространством имен (или двумя сетевыми пространствами имен ). Мост не нужен. Затем тестируйте все, что хотите.

Запустите xtermв каждом пространстве имен, чтобы упростить себе жизнь.

Вот сценарий, который я использую для этого. Измените, как вам нравится.

#!/bin/bash

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

# nsterm ns0 veth0 10.0.0 yellow 24
#
# tested: yellow, lime, orange, cyan

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 link set lo 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_username
0
18.03.2021, 23:33

Я думаю, что ответ (команды )здесь легко понять и следовать ему. Для пары veth ping не распознает имя интерфейса, а tc qdisc netem не работает

0
18.03.2021, 23:33

Теги

Похожие вопросы