Я хочу настроить TCP-туннель через UDP и чтобы сервисы по обе стороны взаимодействовали так, как если бы они использовали TCP, однако это TCP-соединение будет туннелироваться через UDP. Допустим, у меня есть служба A и служба B, которые хотели бы общаться по TCP. Но у меня есть реле в середине, которое принимает принимающий узел / порт UDP и узел / порт UDP назначения. Трафик c между службой A и B должен проходить через это реле UDP.
Я хочу настроить docker образы для этих трех компонентов / служб, но я немного запутался в сетевой настройке образов для запуска этого. Я хотел бы использовать docker -compose для настройки и запуска этих трех образов.
Поток есть ..
Служба A => UDP Relay => Служба B
Я наткнулся на следующее Репо , в котором была некоторая информация о настройке «Foo over UDP» .. в основном в каждом из моих сервисных образов, мне нужно будет настроить следующее ..
modprobe fou
ip fou add port $FOU_LOCAL_PORT ipproto 4
ip link add name fou0 type ipip \
remote $FOU_REMOTE_IP local $FOU_LOCAL_IP \
encap fou encap-sport $FOU_LOCAL_PORT encap-dport $FOU_REMOTE_PORT encap-csum \
dev eth0
ip link set up dev tunl0
ip link set up dev fou0
ip addr add 10.200.1.1/24 dev fou0
В чем я не уверен, так это в том, как использовать сеть / ссылки в docker -составить сгенерированные IP-адреса для инициализации этого образа. Так что при запуске образа я могу успешно выполнить предыдущую настройку / скрипт на образе.
Буду ли я использовать оверлейную сеть? Если вы ссылаетесь на сетевое имя, это тоже должно быть в формате network-name / udp?
А для IP / CIDR в команде:
ip addr add 10.200.1.1/24 dev fou0
Это что-то, что я могу генерировать / ссылаться из docker -compose, или это то, что мне нужно создать? Может ли быть что-нибудь на самом деле? В конечном счете, я предполагаю, что этот IP-адрес должен быть известен только внутри изображения для приложения, мне не понадобится ссылка на этот IP-адрес за пределами изображения. Это понадобится приложению, но в противном случае фактическое общение выходит за рамки UDP.
Другие хосты / порты, связанные с UDP, я считаю довольно простыми ... но я немного больше озадачен TCP / CIDR TCP. Здесь я предполагаю, что мои приложения в службах A и B (соответственно) будут подключаться к (TCP) для связи через туннель UDP.
Любой совет будет принят с благодарностью! Спасибо