LINUX.ORG.RU
ФорумAdmin

Некорректные пакеты от провайдера

 , ,


0

2

Собственно, сегодня я столкнулся с тем, что от провайдера приходили примерно такие пакеты:

  • Я отправляю:
src 100.64.8.1 dst 8.8.8.8 proto ICMP
  • Я от провайдера получаю:
src 192.0.2.1 dst 100.64.8.1 proto ICMP

Во втором случае в поле src должно быть: 8.8.8.8

У провайдера NAT.

Я думаю, что можно как то исправлять пакеты через tc-pedit. Но как можно через iptables изменять на входящем пакете адрес источника на правильный?

★★★★★

Последнее исправление: ne-vlezay (всего исправлений: 1)

Весело

This document describes three IPv4 address blocks that are provided for use in documentation.  
The use of designated address ranges for documentation and examples reduces the likelihood of conflicts 
and confusion arising from the use of addresses assigned for some other purpose.

   [RFC1166] reserves the first of the three address blocks,
   192.0.2.0/24.  

https://datatracker.ietf.org/doc/rfc5737/

i3wm
()

Во втором случае в поле src должно быть: 8.8.8.8

А это был не какой-нибудь port-unreachable?

iptables'ом вы такое не исправите, iptables не изменяет адреса в пакете, там создаётся записи в conntrack. Все пакеты, попадающие под условия в записи, относятся к одному соединению и у них изменяются адреса/порты. У вас первый пакет прошёл, запись (точнее две записи) созданы.

Возможно, получится что-то сделать с помощью ″conntrack -I″, парся вывод ″conntrack -E″

mky ★★★★★
()
Ответ на: комментарий от mky

Это inside/outside NAT у провайдера.
Можно попробовать поднять NAT на самой машине.
Двойной NAT получится. Один на тачке, второй у прова.

i3wm
()
Ответ на: комментарий от i3wm

Четко по документации нат настраивали. Вот и настроили двойной :)

keir ★★
()

Может лучше спросить у провайдера почему так ? Проблему провайдера лучше чтоб решал сам провайдер :-)

Вообще в таком случае у вас не должна работать связь с внешним миром, полностью, т.к. вы отправляете пакеты на один адрес, а ответы всегда приходят с другого. Ни одно tcp-соединение не создастся.
Если же всё работает, значит есть большое подозрение, что эти пакеты, как написал mky, - просто ответы об ошибках от какого-то провайдерского маршрутизатора. Это выглядит не совсем красиво, но в целом нормально, ибо на возможность связи с внешним миром не влияет.

spirit ★★★★★
()
Ответ на: комментарий от spirit

Но, можно сделать через pedit так:

tc qdisc add dev wan0 handle ffff: ingress
tc filter add dev wan0 protocol ip u32 match ip src 192.0.2.1 match ip dst 100.64.8.1 action pedit ex murge ip src set <ip своей vps на которой vpn> pipe action csum ip and udp and tcp and icmp

Потом через этот vpn выйти в мир.

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

ne-vlezay ★★★★★
() автор топика
Последнее исправление: ne-vlezay (всего исправлений: 1)

Скажи что ничего не пингуется, а тебе очень нужно пинговать!

anonymous
()
Ответ на: комментарий от spirit

У меня возникли подозрения, что у ТС'а не провайдер, а хостер и ТС не решает проблему, а ковыряет дырку в обход его запретов...

mky ★★★★★
()

Но как можно через iptables изменять на входящем пакете адрес источника на правильный?

Например, с помощью nfqueue.

ValdikSS ★★★★★
()
Ответ на: комментарий от mky

Нет, это обход технических проблем провайдера.

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ValdikSS
  • Это как минимум надо знать C
  • Это не более 300Mbps.

tc-pedit наше всё

ne-vlezay ★★★★★
() автор топика
Последнее исправление: ne-vlezay (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.