В каком поле заголовка TCP/IP можно передать информацию и как её закодировать?

Имеется схема сети ( с условными IP адресами) клиент(192.168.0.10/24) -> Linux( gw 192.168.0.1/24) -> Интернет( различные устройства которые маршрутизируют пакеты) -> Linux(gw 192.168.1.1/24) - > клиент(192.168.1.10/24), Общение происходит в обе стороны, при том, что изначально допустим не будут известны сети( сеть заказчика) для настройки ната. Мы не можем знать откуда вообще поступит подключение.
Суть в том что нужно из одной сети подключится к другой ( Знаю что можно GRE и тому подобное, не буду уходить в глубь вопроса,а по существу)
Я написал небольшую утилиту, которая при помощи очередей (NFQUEUE) захватывает пакет и модифицирует так как необходимо из файла конфигурации (сети на линукс шлюзах работают на VRF), далее данные которые были изначально посылаю через NATS вот такой структурой (src_ip,dst_ip,sid) и в поле dataoffset ставил sid по которому другой шлюз уже доставал пришедшие данные и модифицировал пакет для дальнейшей передачи( наоборот точно также), но когда пустил в рабочую схему ( через cisco) пакеты перестали пролетать ( хотя флага нету что пакет фрагментированный циска все равно туда смотрела и пакеты дропались) передал так что поле sid стало в поле заголовка Identificator и всё забегало как надо, но хочется избавится он Nats, тут и вопрос как я могу закодировать и в каком поле маршрут пакета клиента (src_ip dst_ip) и так чтобы потом по алгоритму его и восстановить. Думал,что в поле urgent (но опять же оно используется при телнет соединении)
  • Вопрос задан
  • 283 просмотра
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Senior .NET developer
Посмотрите на TOS
https://tools.ietf.org/html/rfc791

Немного дополню, посмотрите на вот эту концепцию https://zeltser.com/c2-dns-tunneling/
Все тоже самое, только с заголовками TOS.
Конечно это будет жутко тормозить и возможно где то срежется маршрутизаторами.
Другой вариант это подняться до прикладного уровня, но как я понимаю это не ваш путь.

Совсем отмороженный вариант это своеобразная морзянка. То есть модифицируете пакет что бы у него было 2 каких либо различия. И работаете по протоколу:

........ - 0x00
.......- - 0x01
......-. - 0x03
......-- - 0x04
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы