polaczenie gRPC gdy oba hosty są za NAT

0

Klient gRPC za NAT
Serwer gRPC za NAT

Czy dało by radę zrobić usługę na serwerze Trzeci który widzi i Klient i Serwer tak aby umożliwić połączenie Klient <==> Serwer?

1

A gdzie problem? gRPC używa HTTP2, który używa TCP. Czemu używanie TCP, gdzie po drodze jest NAT miałoby nie działać?

0

Jest taka sytuacja:

     Klient                                Serwer   
[192.168.1.100]  <==> [INTERNET] <==>  [192.168.7.200]

Jak chce połączyć takie dwa komputery ze sobą to mogę je podłączyć do VPN-a

     Klient                                Serwer   
[192.168.1.100]  <==> [INTERNET] <==>  [192.168.7.200]
[10.8.1.1]       <==>   [VPN]    <==>  [10.8.1.2]

To zadziała , zastanawiam sie czy da sie bez VPN-a

1

Tunele SSH, albo socat może też da radę.
EDIT: czekaj: klient jest widoczny przez trzeci, czy trzeci jest widoczny przez klient?

klient # ssh -L 127.0.0.1:8888:127.0.0.1:9999 user@trzeci
serwer # ssh -R 127.0.0.1:9999:127.0.0.1:${PORT_SERWERA} user@trzeci

chyba jakoś tak bym próbował.

0

Poczytaj o prywatnym/publicznym ip. Sprawdź, czy dostawca internetu dla Klient i Server udostępnia publiczne IP.

1

Pytanie bardziej DevOpsowe. Poczytaj https://en.wikipedia.org/wiki/NAT_traversal

Natomiast pytanie, czemu nie chcesz VPNa między nimi? I czym są Klient i Serwer?

0

Myślałem bardziej nad rozwiązaniem które wykorzystuje zbudowane w gRPC mechanizm Reflection

serwer nawiązuje do połączenie do pośredni , za pomocą Reflection (albo pliku proto wgranego na serwer) udostępnia swój interfejs i czeka na dane
klient wysyła zapytanie które zostaje przekazane do serwer za pomocą połączenia serwer->pośredni
serwer realizuje zapytanie i odstała wynik do pośredni
pośredni odsyła wynik do klient

Taką pokrętna metodę wymyśliłem :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1