ICMP туннелирование IP против туннелирования TCP?

1299
Shane

Может ли кто-нибудь объяснить разницу между туннелированием данных IP с использованием пакетов ICMP и туннелированием данных TCP через ICMP?

Очевидно, я знаю, что это будет иметь отношение к различным уровням OSI, но что на самом деле делается на другом уровне?

Я немного понимаю общую концепцию туннелирования, но не «туннелирование IP или TCP через ICMP», что на самом деле происходит?

0
Не отвечая на вопрос, но туннелирование TCP приведет к тому, что туннелируются только CONNECTIONS в смысле TCP, а не DATAGRAMS, как другой трафик ICMP и UDP. sinni800 12 лет назад 0

1 ответ на вопрос

0
LawrenceC

Туннелирование IP-данных с использованием ICMP-пакетов

ICMP-пакеты используются для инкапсуляции IP-дейтаграмм. Эта дейтаграмма IP может представлять собой: пакет UDP, часть сегмента TCP, часть блока данных протокола SCTP / GRE / MPLS или любой другой протокол выше уровня 2.

Туннелирование данных TCP через ICMP

Пакеты ICMP используются для инкапсуляции сегментов TCP или дейтаграмм IP, которые состоят только из сегментов TCP.

Эхо-запрос ICMP позволяет отправителю указать полезную нагрузку. «Взлом» ICMP может, например, использовать этот факт и поместить пакет TCP в полезную нагрузку. Что-то на принимающей стороне должно было бы знать это и играть в игру. Если вы проявите творческий подход к другим типам запросов ICMP, вы, вероятно, могли бы многое сделать.

Отличным примером искажения протокола в целях, для которых он не предназначен, является iodine( http://code.kryo.se/iodine/ ), который туннелирует IP через DNS-запросы.

(Примечание: обратите внимание, что в заголовке IP есть «поле протокола», которое определяет, какой протокол верхнего уровня транспортируется. TCP - это протокол № 6, GRE - это протокол № 47 и т. Д. ( Http: //www.iana. org / assignments / protocol-numbers / protocol-numbers.xml ))