Előre jelzem, hogy hülye vagyok a hálózatokhoz :)
Van egy gép, amiben 2 hálókártya van, 2 publikus fix ip-vel 2 különböző tartományból.
Az eth0 az rendben működik.
A eth1-el viszont nem boldogultam, kívülről nem lehetett pingelni.
Miután ez alapján beállítottam, már pingelni tudtam bárhonnan:
http://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System
ip route add xxx.xxx.xxx.0/24 dev eth1 src xxx.xxx.xxx.xxx table rt2
ip route add default via xxx.xxx.xxx.1 dev eth1 table rt2
ip rule add from xxx.xxx.xxx.xxx/32 table rt2
ip rule add to xxx.xxx.xxx.xxx/32 table rt2
Viszont kifelé kommunikálni csak a xxx.xxx.xxx.0/24 hálózat felé tudok az eth1-ről.
ping -I eth1 xxx.xxx.xxx.15 működik, ping -I eth1 8.8.8.8 nem.
Az kellene, hogy az eth1-ről bárhova tudjak csomagot küldeni (és bárhonnan fogadni).
(A fix ip-k mögött nat-olt VPS-ek vannak, amit kívülről a fix IP-vel lehet elérni, iptables irányítja a kéréseket a megfelelő VPS-nek.)
Ha valami zavaros, akkor elnézést, napok óta már alig aludtam.
- 4802 megtekintés
Hozzászólások
Lartc.org-ot látogasd meg, policy routing-ra keress rá.
Annyi a lényeg, h azokat a csomagokat amig eth1-en jönnek be, eth1-ről válaszod meg, uez igaz eth0-ra is (a válaszok azon menjenek).
A 2 default gw már a második lépcső - itt tudod beállítani, hogy milyen irányba melyik default gw legyen. (ill. default gw-ből adott metric esetén csak 1et használj, de a defaultnál lehet "more specific" route a másik vonalra)
- A hozzászóláshoz be kell jelentkezni
Köszönöm a válaszod.
"azokat a csomagokat amik eth1-en jönnek be, eth1-ről válaszod meg, uez igaz eth0-ra"
Ezt hogy tudom tesztelni/debuggolni? Kívülről ha pingelem, jön válasz, szerintem ezzel nincs gond.
Azt nem értem, hogy a "ping -I eth1" miért nem akar menni, mikor a csomagokat jó estközön jó gw felé küldi?
$ ip route get 8.8.8.8 from xxx.xxx.xxx.xxx
8.8.8.8 from xxx.xxx.xxx.xxx via xxx.xxx.xxx.1 dev eth1
Milyen hálózati debug eszköz van még, amivel ki tudnám deríteni hol akad el?
- A hozzászóláshoz be kell jelentkezni
debug pl két külön ablakban a külön interfészekre tcpdump
"Kívülről ha pingelem, jön válasz, szerintem ezzel nincs gond." - erre ne vegyél mérget. Alapban ha interfész A-n van a default route, és B-re jön a ping req, a válasz interfészA-n fog kimenni!
tcpdump a barátod.
az fontos, hogy az iproute mutassa mindkét "táblát"! (talán ip route ls table xy a szintakis)
- A hozzászóláshoz be kell jelentkezni
tcpdump 2 ablakban, saját gépről pingelve mindig csak azon az interface-en volt oda-vissza ICMP forgalom amelyiket pingeltem, ez jónak tűnik.
Az eth0 routolását nem merem piszkálni, nem csináltam neki külön táblát, csak 1 tábla van ami az eth1-hez tartozik (rt2). Ez gond lehet?
(Csak ssh hozzáférésem van, és nem akarom magam elvágni a hálózattól az eth0 piszkálásával, de összedobok egy teszt környezetet.)
$ ip rule show
0: from all lookup local
32762: from all to xxx.xxx.xxx.xxx lookup rt2
32763: from xxx.xxx.xxx.xxx lookup rt2
32766: from all lookup main
32767: from all lookup default
$ ip route show table rt2
default via xxx.xxx.xxx.1 dev eth1
xxx.xxx.xxx.0/24 dev eth1 scope link src xxx.xxx.xxx.xxx
tcpdump-al játszok még, hátha...
- A hozzászóláshoz be kell jelentkezni
Talán meg van mi a gond, de fogalmam sincs mi okozza:
Ha eth1-et adok meg ping parancs paraméterében, akkor a ping az eth0 IP-jéről küldi eth1 helyett. (yyy.yyy.yyy.yyy az eth0 IP-je). Ha pingnek a forrás IP-t adom meg, akkor jó.
$ ping -I eth1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from yyy.yyy.yyy.yyy eth1: 56(84) bytes of data.
$ ping -I xxx.xxx.xxx.xxx 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from xxx.xxx.xxx.xxx : 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=47 time=25.9 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=47 time=26.0 ms
Ezt hogy sikerült összehoznom? :)
- A hozzászóláshoz be kell jelentkezni
Ez valami bug lehetett, vagy nem tudom, "curl --interface" -el működött.
A nat-olt VPS-ből nem tudtam először kifelé kommunikálni, de az szintén routolási gond volt. Csináltam egy rule-t neki az eth1 (rt1) táblához, most már az is jó. Működik kifelé-befelé, minden a megfelelő IP-ről. :)
Köszi wpeople!
- A hozzászóláshoz be kell jelentkezni
szívesen, akartam írni, hogy a két tábla muszáj - de eljutottál odáig :-)
Az arhívum kedvéért:
a két tábla arra való, hogy az interfészre beérkező csomagokat meg tudja különböztetni a rendszer,
a default táblában való routing pedig arra, hogy gépről induló (azaz nem válasz) csomagok is tudják mi merre
- A hozzászóláshoz be kell jelentkezni
+ sub
- A hozzászóláshoz be kell jelentkezni
subs
- A hozzászóláshoz be kell jelentkezni