virtuális etherneten routolas, virtualizált oprendszer nélkül.

Fórumok

Szóval adott egy gép, linuxal, és egy elvileg elötte álló (mármint elvileg közte és az internet között lenne még egy router, amit emulálni szeretnék.
Tehát:
internet felé gw---hiányzó router külső ip---hiányzó router belső ip---saját ip a hálózat, és ebből az utolsó három az én gépemen van.

Például ha uml-el akkor az uml (bridgel) kezeli a gépemben lévő hálókártyát ez a "hiányzó router külső címe" és kommunikál kifelél az "internet felé gw"-vel, vagy azon keresztül.
uml-es rendszernek lenne egy másik interface befelé (tuntap), ami uml-ben "hiányzó router belső ip", rendes rendszeremben "saját ip"

és ha a saját rendszeremból internetezni akarok, akkor így mennének a csomagok:
saját ip
hiányzó router belső
hiányzó router külső
internet felé gw
...

Hogy lehet ezt megcsinálni virtualizált oprendszer nélkül?

Például létrehozok tunctl-el egy tap0-át és egy tap1-et.
iptables mangle:
ami bejön eth0-án az PREROUTING utan FORWARD és nem INPUT annak ellenére hogy ez tulajdonképpen saját ip az is amire jön a csomag mivel a tap1-a cél, de én azt nem közvetlenül az eth00-ról bejövet szeretném INPUT, hanem majd mikor a tap0-án jön be, mivel oda forwardoltam.

Itt: http://hup.hu/node/25455
-j ROUTE -ifo tap0 vagy amit bandorka írt jó lenne? azaz iptables -t mangle -A PREROUTING -i eth0 -j ROUTE -iof tap0
(tap0-tap1 bridge)

Sehogy sem sikerült rálelnem a rendszeremben erre a -j ROUTE -ra, etch-ben nincs ilyen cél lennyiben már a man iptablesben sincs ilyen kapcsoló...
Mi kell hozzá?
etct-ben kellene de újabb kernellel.

Bocs ha kicsit hosszúra sikeredett túlmagyaráztam, maga a feladat kiírás végülis teljesen egyszerű.

Hozzászólások

"és egy elvileg elötte álló (mármint elvileg közte és az internet között lenne még egy router, amit emulálni szeretnék."

Nem elég a tűzfal?

"maga a feladat kiírás végülis teljesen egyszerű."

Ha veszel egy routert még egyszerűbbé válik. :)

"Nem elég a tűzfal" kérdésre az a válasz hogy nem a "feladat kiírását" kell megoldani hanem a már kiírt feladatot! Ezt most én írtam ki... a feladat adott.
"Ha veszel egy routert..." dologra pedig az, hogy ezzel nem oldottad meg a feladatot hanem kerestél egy kibúvót hogy ne kelljen megoldani.

Biztos segítő szándékkal írtad amit..., de én ezt meg szeretném csinálni, nem kikerülni. Egyszóval itt nem az a cél hogy "menjen az internet..." - Miért nem megy áááá...
Azt szeretném itt megtanácskozi veletek hogy a feladatot hogyan lehet, érdemes, stb.... megcsinálni.

Akit nem érdekell hogyan lehet ilyet megoldani, ne oldja meg vagy ne gondolkodjon rajta a kedvemért...

Valami ilyesmire gondoltam:

tunctl -u hu
tuntcl -u hu

ifconfig tun0 0.0.0.0 promisc up
ifconfig tun1 0.0.0.0 promisc up
brctl addbr bridge
brctl setfd bridge 0
brctl sethello bridge 0
brctl stp bridge off

brctl addif bridge tap0
brctl addif bridge tap1

ifconfig eth0 192.168.1.2
ifconfig tap0 192.168.2.1
ifconfig tap1 192.168.2.2

iptables -t mangle -A PREROUTING -i eth0 -j MARK --set-mark 51
iptable -t mangle -A PREROUTING -i tap0 -j MARK --set-mark 51
ip rule add fwmark 51 table emulalt

ip route add 192.168.2.0/24 dev tap1 table emulalt #belso halozatom
ip route default via 192.168.1.1 dev eth0 table emulalt

ip route default via 192.168.2.1 dev tap1
echo 1 > /proc/sys/net/ipv4/ip_forward

Mi a rossz az elképzelésben?
Ha teljesen nem rossz, akkor végülis az egyik tap-om helyett ott a bridge nevű interface-em is..., vagy maradjak inkább két darab tap-nál?

Szóval holnap kipróbálom, de azért jó lenne tudni, hogy vesztegessem-e rá az időt, vagy halálra van ítélve a dolog :)