linux route láma

Van egy intranetes gépem, amin sok más mellett több virtuális gép is fut. Betettem egy új hálókártyát (192.168.5.3) egy új internetes routerhez kapcsolódva (192.168.5.254), és a lehető legegyszerűbben szeretném elérni, hogy az egyik virtuális gép (192.169.142.204) kimenő forgalma ezen az új hálókártyán menjen.
Az egyszerűség jegyében az is megfelelne, ha az össze virtuális gép (192.169.142.0/24) minden forgalma ezen az új kártyán zajlana.Az route -n kimenete jelenleg:


Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 br0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.169.142.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

Az általam talált leírások alapján újabb route táblát kéne létrehoznom, pedig nekem elég lenne az eth1-re egy egyedi átjárónak megadni a 192.168.5.254 címet. Egy táblában nem lehet több átjáró?
Mi erre a legegyszerűbb megoldás?

Hozzászólások

ohjajj, nem ígérkezik így egyszerűnek .. (bocs)

Mondjuk hasznos lenne, ha megadnád, milyen virtualizációt használsz. Ha csak egy gépen akarod használni, akkor a virtualizációs megoldásodban dedikáld annak a gépnek ezt a fizikai kártyát és ne keverd bele a host routing táblájába.

Lehet tobb gateway egy tablaban, interfacenkent lehet egy default. Szoval a defaultjat kell atirnod, az interfacenek, megpedig azert, mert destinationt kell megadnod, es az egesz internetet kb egy destinationnel lehet lefedni a 0.0.0.0-val, de fixme. A masik dolog, hogy nem fogod meguszni a cimforditast, ugyanis a router nem fogja tudni hol van a 192.169.142-as tartomany, szoval nem fog visszatalalni a csomag (ha elmegy egyaltalan).

-
First impressions of the new Cloud Native programming language Ballerina

Minden routing bejegyzésnek van gateway-e nyilván, ahogy a képen is, tehát abból lehet több.
Azzal vitatkoznék, hogy default-ból is lehet több (normál routing táblánál), lehet, hogy meg tudod adni, de attól az még nem úgy fog működni, ahogy itt ő akarja. iproute2-vel lehet trükközni, de nem kellene bevinni ilyen mélyre, amíg nem muszáj.

Szervusz !

egy évvel ezelőttig én is ilyen pongyolán fogalmaztam, de kezembe akadt nagyon jó, magyar nyelvű szakanyag a hálózatokról.

1. "internetes router": valószínűleg a hétköznapi emberek által használ "SOHO" routerre gondolsz, de az valójában egy router + bridge + switch összeépítése -- számomra is ez okozta a legnagyobb zavart, amíg le nem tisztult a kép.
Egyébként a címtartomány ( 192.168.x.y) is a "SOHO router"-re jellemző.

2. a router két eltérő hálózati című szegmens között teremt kapcsolatot.

3. a netmask meghatározza a szegmens nagyságát, a korábbi "klasszikus" A, B és C osztályú blokkok mellett van az ún. CIDR -> classless inter-domain routing. Az automatikus "összegzés" ki/be-kapcsolható, erre figyelni kell, hogy egymás melletti blokkok vagy egymástól távolabb eső blokkokat használsz

4. a linuxos route parancs alapértelmezett esete a
route add default gw 192.168.5.254 {a Te példád szerint},
de ha van még egy egy router, mely másik hálózat felé mutat, akkor
route add -net 192.168.142.0 netmask 255.255.255.0 dev eth1

A virtuális gépekkel/hálózattal most ismerkedem, de szerintem ehhez alapvető, hogy tisztában legyél a "klasszikus" hálózati ismeretekkel.
Anyagi lehetőségek szerint ( akár használt ) "valódi" routerek / switchek beszerzése is mérlegelendő, de legalábbis valamelyik hálózati szimulátor program kipóbálása javasolt.

Sziasztok
A feladat megoldásához nem áll minden info rendelkezésre, de a következő alapelvek ismeretében megoldható.
Az alap IP routing mindig a cél IP cimet veszi figyelembe. Tehát routing döntéseknél a forrás IP (alapértelmezetten) nem játszik.
Lehet 2db default route-od, de azok közül a nagyobb prió dönt.
Ha a forrás cimet is figyelembe akarjuk venni, akkor policy based routing-gal lehet játszani.
Újabb routing táblát kell késziteni (nem route-ot!): echo 100 othertable >> /etc/iproute2/rt_tables
És megmondani, hogy ezt a routing táblát melyik source IP használja. ip rule add from 192.169.142.204 lookup othertable
Tehát kifelé elmegy a packet. van a default, és az "egyedi" routing tábla, ezek alapján.
NAT persze kell a "végére", hisz internetkapcsolat lesz. Megfelelő internetkapcsolathoz megfelelő forrás cimre fordítással!
Elvileg igy rendben is vagyunk. De
- a szokásos upstart-os, systemd-s nw initek nem kezelik a policy routingot
- a NAT szabályokhoz bedrótozott IP címek kellenek ( -j SNAT), masquerade nem fog menni.
- igy, ha dinamikus (pl ppp) a publikus cim, címváltáskor mind routing táblákat, mind a iptables NAT szabályokat újra kell húzni.