transparentni proxy

Marek Soudny soumar at linux.fjfi.cvut.cz
Tue Nov 14 10:25:09 CET 2017


Ahoj,

Zbavujem se v praci starych HW loadbalanceru a nahrazuju je SW resenim - 
dvojice fbsd serveru ve vmware s virtul IPckama na CARPu, mezi nimi 
pfsync a na lodbalancing, mam haproxy. Routovani resi pf. Fbsd je 
aktualni 11.1, haproxy 1.7.9.

Co se tyka obycejneho HTTP/L7 provozu, jede vsechno jak ma. Problem 
nastal ve chvili, kdy jsem zmigroval farmu, kde member servery potrebuji 
v prichozim packetu videt source IP klienta (jedna se o obstarozni java 
appku, ktera je davno bez podpory, ale visi na ni cca 20 tisic 
zakazniku, takze mam zakaz do ni "stourat", navic neprezije vic jak 400 
spojeni..).

Nejprve jsem zkusil balancovat farmu ciste na urovni pf pomoci dvojice 
rdr + pass rule, coz jelo, ale chybi check, jestli je server zivy.

Pak jsem zkusil transparentni proxy s haproxy, ale skoncil jsem na tom, 
ze vsechny priklady jsou pro ipfw, ale zadny pro pf. Tedy jeden je, ale 
ten pouze zminuje pouziti divert-reply, coz je popsane v  man(5) 
pf.conf, ale prakticky mi pf zarve, ze divert-reply nema na fbsd v pf(4) 
zadny vyznam. Zkusil jsem kldloadnout ipdivert.ko, ale tahle akce 
komplet zablokovala sit, takze stroj prestal odpovidat na vsech vlanach.

V soucasne dobe mi reseni pf+haproxy funguje tak napul - packet mi 
dorazi na member server se source IP klienta, ale uz mi nedorazi zpatky 
na klienta. Ano, mam tam nejspis problem s routovanim, ale sedim na tom 
uz asi 3 tydny a nejsem schopnej prijit na to, kde presne ten problem 
je. Tedy vim, ze je problem na ceste zpatky, ale nejsem pf/network 
mistr, tak se obracim s prosbou o pomoc na vas, jestli jste uz nekdo 
podobnou vec neresil. Nebranim se ani reseni s jinou technologii, pokud 
ji ma nekdo vyzkousenou.

Na LB (fbsd) mam 3 fyzicke interfacy:
vmx0 - management iface, pfsync, drzi default routu pro server.
vmx1 - pripojeny k jednomu routeru, promiscious mode, vlany z daneho routeru
vmx2 - pripojeny ke druhemu routeru, promiscious mode, vlany z daneho 
routeru (tady resim ten problem)

Na interfacu vmx2 mam vlanu 234 - 213.90.2.192/27, GW 213.90.2.193. Na 
ni mam "self" IP 213.90.2.203, IPcko farmy 213.90.2.202 a IPcko pro GW 
member serveru 213.90.2.199. IPcka nejsou v soucasne dobe na CARPu, tam 
budou az mi bude proxy fungovat.

Member server ma IP 213.90.2.201 a default routu 213.90.2.199, aby 
routoval provoz zpatky pres LB. Na testovani mame pouze jeden server.

pf pravidla mam zde (vmx1 a ostatni vmx2 vlany pravidla jsem vynechal, 
imho nejsou pro tohle tema potreba, kdybych se pletl, dodam): 
https://soudny.net/transparent_pf.conf

haproxy config (bez ostatnich farem) je zde: 
https://soudny.net/transparent_haproxy.conf


Budu rad za jakoukoliv radu, dekuju.
Marek


More information about the Users-l mailing list