linux route láma

 ( plt | 2019. augusztus 13., kedd - 9:52 )

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á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ő.

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.

Pont azt irtam, hogy defaultbol csak egy lehet interfacenkent, vagy arra gondolsz, hogy per os lehet egy? De akkor minek megadni az interfacet a commandnal??

-
First impressions of the new Cloud Native programming language Ballerina

Alapból egy lehet OS szinten. Nem értem a kérdést, ha több interface-ed van, meg kell adnod, melyik legyen az az egy.

Fyi: ma futottam bele egy ilyenbe:

# ip r
default via 10.130.118.111 dev eth0
default via 10.130.118.65 dev eth0 proto static

Szoval megdolt "egy lehet OS szinten"

-
First impressions of the new Cloud Native programming language Ballerina

És ez működik is?
Mindkettőn kilát, használja?

Sajnos mar nem derul ki, mer a kollega elkuldte oke a levesbe.

-
First impressions of the new Cloud Native programming language Ballerina

?
Ez egy sub, ha működik is ez a megoldás.

Ó, és ebben a network name space-ek benne sincsenek, pedig virtualizációtól függően lehet, hogy azokat használva lenne a legegyszerűbb megoldani a problémát.

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.

Megosztanád a könyv címét és szerzőjét? Érdekelne.

+1

Ez nem az, de jól jöhet többeknek:
http://www.tiszai.tricon.hu/

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.