Друзья, я сломал мозг.
Подскажите, как прозрачно перенаправить трафик с одного сервера на другой. Оба сервера на Debian, на обоих по 3-4 белых ip. Вариант с iptables, DNAT и маскарадом не катит т.к. на сервере куда передаётся трафик в запросах должны светиться ip клиентов, а не сервера транслирующего трафик.

Tagged with →  

33 Responses to Debian — как прозрачно перенаправить трафик с одного сервера на другой ?

  1. V-nSport:

    тунельчик ip-over-ip?

  2. Amtwhite:

    Надо понимать, что светиться они должны не в веб-сервере и вообще в приложениях, где нет штуки типа X-Forwarded-For, да?

    IP-спуфинг – это подмена адреса отправителя, одного из полей IP-заголовка, методом записи другого значения. Сложность заключается в том, что машина, получив заголовок с таким адресом, отправит ответ на этот адрес, а не на адрес крэкера.

  3. V-nSport:

    можно обратно в тунель зарулить через PBR

  4. XxxSwet:

    скажи хоть что за трафик то

  5. Amtwhite:

    Stephan-V: да, это подойдёт. Я загуглил слово ipencap.

  6. NomRain:

    обычный UDP трафик. сервера стрелялок всяких там висят.

  7. NomRain:

    Stephan-V: то есть мутить туннель между этими серверами и слать трафик в него?

  8. Amtwhite:

    Я, конечно, всегда в подобных постах против оффтопика и уклонения от ответа на конкретно заданный вопрос. Но здесь приемлемый ответ уже дан, поэтому всё-таки позволю себе спросить: а ты не рассматривал вариант поставить простую железячку вместо горождения туннелей?

  9. NomRain:

    есть чо? Не уверен. Мне через 4 машины в одном ДЦ нужно транслировать трафик (и отдавать) на 30 машин в другом ДЦ.

  10. XxxSwet:

    стандартный gre туннель вроде решит твои проблемы.

  11. Amtwhite:

    почему бы тебе через одну-две железки не транслировать трафик на все 34 машины, не загружая 4 из них простыми туннелями?

  12. NomRain:

    курить racoon?

  13. V-nSport:

    я б ipip воспользовался, зачем GRE

  14. XxxSwet:

    Stephan-V: да чет привык я как-то

  15. NomRain:

    упёрся в маршрутизацию: поднял gre туннель между сервером А х.х.х.х (10.9.8.1) и сервером В у.у.у.у (10.9.8.2), пытаюсь завернуть трафик
    на сервере А
    route add -net х.х.х.х netmask 255.255.255.252 gw 10.9.8.1 dev tun0
    неидёт :

  16. XxxSwet:

    ip r sh?
    tcpdump -i tun0?

  17. V-nSport:

    это неправильная идея вообще. маршруты между серверами у тебя итак правильные, между ними должны напрямую ходить только пакеты тунеля. а через тунель тебе нужно завернуть маршруты ко всем хостам при условии, что порт отправителя — порт твоего приложения. в этом тебе поможет PBR. а чтобы из тунеля трафик достигал цели, тебе нужно выключить rp_filter

  18. NomRain:

    и пусть все знают где я работаю
    на сервере А
    ip r sh
    188.127.246.124/30 via 10.0.201.1 dev tun0 scope link

    запускаю ping ip_на_котором_туннель
    tcpdump -i tun0 -n
    тишина

  19. V-nSport:

    я б вообще на туннелях не стал адреса поднимать

  20. NomRain:

    а что за железки то? я ж не настоящий сварщик, пока, — в утюгах не разбираюсь :

  21. Amtwhite:

    я тоже не знаю 🙂 кошками точно можно, чем-то подешевле — не знаю.

  22. TarLt:

    nc (netcat) может слушать на одном порту и перекидывать на другой

  23. NomRain:

    может, но у меня на вскидку больше 1200 пар — gateway_ip:port -> target_ip:port получается. 1200 nc запускать как то сыкотно.

  24. TamPhone:

    А что, для iptables нельзя написать правило, которое будет подменять source-ip?

  25. NomRain:

    можно, если нужно изменять на один и тот же адрес. А у меня нужно менять на адрес клиента, коих тысячи :

  26. NomRain:

    Stephan-V: снова взялся за этот кактус.
    Почитал про PBR, делаю
    ip route add default via 10.0.201.2 table 120
    ip rule add from all to 83.222.115.30 table 120
    По идее же если извне пинговать 83.222.115.30 tcpdump -i tun0 должен что то ловить?
    Или опять ошибаюсь?

  27. NomRain:

    Stephan-V: ну и sysctl net.ipv4.conf.tunl0.rp_filter=0 сделал

  28. V-nSport:

    критерием должен быть порт приложения

  29. NomRain:

    Stephan-V: да чёрт с ним с портом. весь трафик же можно таким образом перенаправить. Или обязательно iptables маркать пакеты и fwmark в правилах iproute использовать?

  30. V-nSport:

    если ты весь трафик хочешь направить через туннель, тогда вообще всё просто — маршрут к пиру тунеля через реальный гейт, а дефолтным dev tun0

  31. NomRain:

    Stephan-V: как то так
    ip route add 10.0.201.2 via 83.222.115.30 dev tun0
    ругется мол нет процесса — «RTNETLINK answers: No such process»

  32. V-nSport:

    никакого via

Добавить комментарий