Ethernet MAC address szerinti "routolas"

Fórumok

Sziasztok,

az eth0-an bejovo forgalmat MAC address tartomanyonkent el lehessen iranyitani az eth1-re vagy az eth2-re........

pl : 11:22:33:xx:xx:xx csak az eth1-fele mehet (ip cimtol fuggetlenul)

Ez a feladat :(

valami otlet ?

Hozzászólások

mangle tálba, mac-re szűrsz, MARK target, majd ip parancsban ez alapján állítod be a route-olást. Haverok így oldották meg (csak IP cím alapján), viszont nem láttam a konkrét parancsokat.

Ha MAC szerint kell, akkor ez nem biztos hogy linux-kezdő. :)

iptables -t mangle -A PREROUTING -j ROUTE --oif eth1 --tee
iptables -t mangle -A PREROUTING -j ROUTE --oif eth2

iptables -t filter -A FORWARD -o eth1 -m mac --mac-source 11:11:11:00:00:00 -j ACCEPT
iptables -t filter -A FORWARD -o eth1 -j DROP
iptables -t filter -A FORWARD -o eth2 -m mac --mac-source 22:22:22:00:00:00 -j ACCEPT
iptables -t filter -A FORWARD -o eth2 -j DROP

...és az iptables forráskódjában az xt_mac.c meghegesztése, hogy csak az első 3 byte-ot vegye figyelembe... vagy a -j ROUTE hegesztése, hogy lehessen MAC szerint irányítani... vagy ahogy Panther mondja, MARK-kal, és akkor megint csak az xt_mac.c szerkesztése...

(B terv: tc filter ami tud MARK-ot változtatni, és az alapján ip route... de így hirtelen nem ugrik be hogy a tc tudna fwmarkolni, az ip-ben meg nincs filter...)

Es mi az a specialis helyzet, hogy MACre kell szurnod? IMHO sokkal egyszerubb lenne, ha ip alapjan valasztanal utvonalat.

Van egy nagysebessegu (100 mega) bejovo vonal, amin most megy egy pppoe szerver, de mar akkora a terhelese, hogy lassul.
Ugy gondoltam beallitok meg egyet es megprobalom megosztani a terhelest, mindezt ugy, hogy ne kelljen tobb millioert cisco-t venni :)

Ezert van az, hogy nem dobhatom ki egyetlen csomagot sem es nem foglalkozhatok az IP cimekkel :( akkor konnyu lenne :)

Pont ez a lenyeg, hogy a mac address "routolas" vegett a user csak az egyik pppoe servert latja.

szerk:
A winfos XP-n tudomasom szerint nem lehet beallitani az access concentrator nevet, csak ha feltennem a RASPPPOE-t(free), de nem akarnam ezt tobb szaz gepen megtenni :(

Lett megoldás?

Én célport alapján szeretnék if1 vagy if2-re routolni.
Nekem szimpatikusnak tűnik a -j ROUTE- de nemtudom működik e:
pl
iptables -A PREROUTING -t mangle -p tcp --dport 25 -j ROUTE --oif eth1

Az is jól hangzik, hogy mark-al megjelölöm, és az alapján "ip route add ..."
Van valakinek erre példája?

nem ismerem a feladat részleteit, nem jobb neked az ebtables?

Tiszteletem.

Hasonlo temakorben kellett forgalmat iranyitanom.

Megoldaskeppen: http://lartc.org/howto/lartc.netfilter.html oldalon bukkantam ra a
Chapter 11. Netfilter & iproute - marking packets leirasban.

Elso alkalommal megjelolni a beerkezo forgalmat.
# iptables -A PREROUTING -i $int_iface -t mangle -p tcp --dport 80 -j MARK --set-mark 1

A bejovo tcp 80-ast celzo csomagot markolja.

# echo 201 web.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table web.out

# ip route add default via $ext_ip dev $ext_iface table web.out

... es a 80-as keresek az altalam megadott $ext_iface-n megy keresztul

remelem ebbol at tudod alakitani.

Udv: HB

routing: L3
mac cím: L2

Ami neked kell az egy managelhető switch.
(vagy bridge-utils és ebtables)