Настройка Foo over UDP с docker / compose - PullRequest
0 голосов
/ 22 марта 2020

Я хочу настроить 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.

Любой совет будет принят с благодарностью! Спасибо

...