NAT másodlagos IP címre

 ( gazsiazasz | 2015. augusztus 24., hétfő - 20:09 )

Sziasztok!

Van az alábbi konfigom. 10.0.0.1-ről kapcsolódnék 3.3.3.3-ra.
Felveszek egy másodlagos címet az eth0-ra (172.16.0.2).
Készítek egy routing táblát, ami alapján a 1-essel jelölt csomagok megtalálják az útjukat (table 1 - van több is, de az egyszerűség kedvéért kihagytam).
Felveszek iptables szabályokat, ami alapján a 10.0.0.2-re küldött csomagok 3.3.3.3-ra érkeznek. Szeretném, ha majd vissza is érkeznének 10.0.0.1-re később.
És a végén a routing táblának megfelelően a MASQUERADE szabálynak le kellene cserélnie az forrás IP-t a 172.16.0.2-re.

Na most problémám az, hogy olyan, mintha a csomagok kihagynák a table 1-et és a main routing tábla szerint közlekednének és a MASQUERADE az eth0 elsődleges címére cserélné ki a forrás IP-ket..


ip address add 172.16.0.2/24 dev eth0
ip rule add fwmark 1 table 1
ip route add 0.0.0.0/0 via 172.16.0.254 src 172.16.0.2 table 1
ip route add 10.0.0.0/30 table 1 dev usb0

iptables -t mangle -A PREROUTING -i usb0 -j MARK --set-mark 1
iptables -t nat -A PREROUTING -d 10.0.0.2 -j DNAT --to-destination 3.3.3.3 -m mark --mark 1
iptables -t nat -A POSTROUTING -d 3.3.3.3 -o eth0 -j MASQUERADE -m mark --mark 1

Mi lehet a megoldás?
Itt az ábra a jobb átláthatóság kedvéért:


http://1drv.ms/1fDDdFP

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Először is sztem. rajtad kívül senki nem érti mi is van. Kaptunk néhány infót, de nem azzal önmagában nem lehet mit kezdeni. Ezért kellene egy "móricka" ábra arról,hogy milyen hálózati csatolók vannak abban a gépben, ami minden hálózatba belát és az hova kapcsolódik. Ehhez kellenek a hozzárendelt IP cím tartományok. A 3.3.3.3 az a Te publikus IP címed vagy csak így maszkoltad el a sajátod? Azért érdekes, mert 3.3.3.3 az nem ún. belső hálózati cím, ezért azt nem használhatod, ha nem a tied.
Ha ezek megvannak,akkor meg kéne fogalmazni,hogy pontosan mit is szeretnél. Melyik hálózatból, hová és milyen funkciókat kell,hogy tudjon kezelni. Utána megpróbálunk segíteni neked,hogy merre menj tovább.
Ha ezeket leírod és szépen összeszeded, hogy mit is szeretnél, akkor utána meglátom (meglátjuk) mit tehetek (tehetünk), hogy sikerrel járj. Addig érdemi segítséget nem fogsz kapni.

+1

De, azért annyit kisilabizáltam belőle: a MASQUERADE - amennyire tudom - mindig a kilépő kártya elsődleges IP címére fordítja a csomagokat. Ha konkrét kilépő címet szeretnél használni, akkor SNAT lesz a barátod.

-------------------------------^v-----------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"

Elvileg a route bejegyzésben az src mező arra szolgálna, hogy megsúgja a kernelnek, hogy milyen IP-n csúsztassa ki a csomagokat.

Itt "ip route add 10.0.0.0/30 table 1 dev usb0" mit keres USB0?

-------------------------------^v-----------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"

Az azért, mert a 10.0.0.2/30 csatoló egy USB port, amin ethernet forgalom megy.

És ezt az ifconfig/ip addr is így gondolja? Ott figyel a kimenetükben az usb0 nevű interfész?

Kiegészítettem ábrával a sok infót. A 3.3.3.3 csak a példa kedvéért van, lehetne ott bármilyen másik IP is.
Azt szeretném, hogy ha a 10.0.0.1/30-as eszközről a 10.0.0.2-re csatlakozom, akkor az valójában a 3.3.3.3-ra csatlakozzon, de úgy, hogy a kifelé menő kapcsolatok a megadott eth0-ra felvett IP-n keresztül menjenek, mert így meg tudom jelölgetni ezeket a csomagokat. Erre a többi eszköz kapcsolataitól megkülönböztetés miatt van szükség, de ha lehet egyszerűbben nekem úgy is jó.

Akkor most kéne rajzolni egy hálózati ábrát. Mert nem nyilvánvaló, hogy melyik IP cím kié. Meg ki kivel van...