Kiderítettem, hogy mi a baj... csak nem tudom rá a megoldást ebben kéne némi segítség!
Van egy debianos gépen, amiben 3 hálókártya van.
Egy belső és két külső, két ADSL-hez. Napok óta kínlódok azzal, hogy kifelé tökéletesen müxik, terheléselosztással de befelé a benti hálón lévő egyik gépre nem tudok DNAT-ot csinálni az SSH-hoz....
Most eljutottam odáig, hogy talán nem az iptables script rossz, hanem az iproute nem jó...
Most ha kiadom az "ip route list table main" parancsot ezt látom:
külső-net2/mask dev eth2 proto kernel scope link src külső-ip1
külső-net1/mask dev eth1 proto kernel scope link src külső-ip2
belső-net/mask dev eth0 proto kernel scope link src belső-ip
default
nexthop via külső-átjáró2 dev eth2 weight 1
nexthop via külső-átjáró1 dev eth1 weight 1
Az a gond, hogy soha nem lesz tökéletes, mert visszafelé az egyik csomag az eth1-n megy ki a másik meg az eth2-n ahogyan be lett állítva nexthop-al!
Létezik erre valami megoldás egyáltalán????
Próbáltam az iptables MARK célt is de az sem volt jó...
A helyzet azzal van súlyosbítva, hogy mivel annak a servernek ahová DNAT-olni szeretnék, nem ez a gép (amiről DNATolok) az átjárója, csak úgy jó,ha a DNAT-oló router mindhárom lábán SNAT van...
Kissé zavaros de Ebben a hálózatban több átjáró van a netfelé, ebből kettőt szeretnék összefogni terheléselosztással és ennek az átjárónak kéne a netfelől DNAT, egy olyan gépre a belső hálózatban amelyik a harmadik ADSL felé lát ki a netre...
Egyáltalán lehetséges ez???
Ha valaki csinált már hasonlót kérem írjon valami bíztatót vagy azt, hogy igyak inkább egy sört és felejtsem el :)
- 2585 megtekintés
Hozzászólások
Előre is köszi a válaszokat!
- A hozzászóláshoz be kell jelentkezni
up
- A hozzászóláshoz be kell jelentkezni
A tcpdump lát bejövő kéréseket a nat mögötti gépen?
- A hozzászóláshoz be kell jelentkezni
Létrehoztad külön a táblákat a 2 adsl-hez?
http://lartc.org/howto/lartc.rpdb.multiple-links.html
- A hozzászóláshoz be kell jelentkezni
Természetesen!
Óriási gondolkozás után az egyiket T1 nevűre, a másikat T2-re neveztem...
- A hozzászóláshoz be kell jelentkezni
Ez is megvolt?
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy a load balance miatt van a gond? Bejön a kérés, de a load balance miatt a másikon menne vissza a válasz? Tegyél bele olyat, hogy ami tcp 22-es port, az mindig az egyik vonalon menjen ki.
- A hozzászóláshoz be kell jelentkezni
Biztosan ez a baj csak fogalmam sincsen, hogy hogyan kéne....
- A hozzászóláshoz be kell jelentkezni
Ha nem ez a gép a másik átjárója, akkor ott lesz a gond. Gondolom az a gép az alapértelmezett átjárón próbálja visszaküldeni a válaszcsomagokat.
Ez alapján mindenképp hozzá kell nyúlni ahhoz a géphez, amire DNAT-olsz.
Ott kellene szerintem fwmark az ssh csomagokra, és routingból megmondani, hogy a megjelölt csomagok másfelé menjenek.
- A hozzászóláshoz be kell jelentkezni
Igazad van!! Ez volt a hiba első körben. Ezután a tűzfalas gépen (amiben a load balance van) a belső hálókártyát is NAT-oltam (a belső háló felé SNAT-al) így már teljesen jó lenne a dolog.
DE:
az ssh-s gép válaszol-> a csomag megjön a gateway belső lábára -> majd az egyik csomag az egyik külső NIC-en, a másik csomag a másik NIC-en megy kifelé... Pontosan ahogyan a nexthop-os szabály mondja!
Az a gondom, hogy miképpen tudom beállítani úgy hogy csak arra a külső NIC-re menjen a válasz, ahonnan a DNAT elindult.
Az fwmark-ot próbáltam de az sem jó, lehet elszúrtam?
Az sem világos, hogy most ezt az iproute-al kéne megoldanom vagy mindent csináljon a iptables??
Most tétován nézek ki a fejemből... nem létezik, hogy ezt nem lehet megoldani valahogyan.
- A hozzászóláshoz be kell jelentkezni
Csak iptables nem fogja megoldani szerintem.
Ha jól sejtem, iptablessel markolni kellene a csomagokat, majd a route a mark alapján eldönti, hogy merre küldje.
Az nem megoldás, hogy az a gép mindig ugyanazt a netet használja?
- A hozzászóláshoz be kell jelentkezni