Сообщение из облака на машину за NAT / Firewall - PullRequest
1 голос
/ 12 августа 2011

Я хочу, чтобы облачный компьютер отправлял сообщение на компьютер за корпоративным NAT / Firewall.

Моя идея - установить на корпоративном компьютере клиент, который отправляет длинный HTTP-запрос на облачный компьютеркогда облако получает сообщение, оно возвращает ответ.

Я думал, что изобрел колесо, пока не прочитал о «туннелировании http» (это то, что я делаю?).Я также читал, что некоторые брандмауэры блокируют не HTML-трафик, даже если он находится на http.Так какой у меня шанс заставить это работать?

Я также читал, что в скайпе используется более изощренный механизм.Это потому, что моя идея не работает или потому, что их идея быстрее?

Теперь я могу пойти на компромисс в скорости - какой подход работает и прост в реализации?

Ответы [ 2 ]

3 голосов
/ 12 августа 2011

Я знаю, что вы хотели бы сделать это с TCP / HTTP, но я бы использовал «дырокол» UDP-NAT, создавая таким образом канал UDP, а затем используя пакеты UDP, отправленные по этому каналу.в качестве механизма сигнализации ...

Они могут (или не могут) быть полезными или актуальными:

http://en.wikipedia.org/wiki/STUN
http://en.wikipedia.org/wiki/Hole_punching
http://en.wikipedia.org/wiki/UDP_hole_punching
http://en.wikipedia.org/wiki/TCP_hole_punching

Также - если вам действительно нужно использовать HTTP, вы можете просто выпуститьновый HTTP-запрос каждые X секунд ...

HTTP-опрос, если хотите ...

2 голосов
/ 12 августа 2011

Если они блокируют не html на порту 80, вы можете попробовать порт 443. Если у вас нет прокси-сервера «человек посередине» (маловероятно), с вами все будет в порядке.

IIRC skype использует скачкообразную перестройку портов, поэтому в основном вам понадобится алгоритм для поиска нефильтрованного (путем грубой силы с помощью интеллектуальных догадок) порта, к которому вы можете подключиться.

...