Gazdă A --internet-- Gazdă B --Internet ipip tunnel-- Gazdă C
Gazdă A: 1.1.1.1
Gazda B: 2.2.2.2
Gazdă C: 3.3.3.3
Ubuntu 18.04.
Configurarea tunelului ipip gazdă B
ip tunnel add tunnel0 mode ipip remote 3.3.3.3 local 2.2.2.2
ip addr add 10.0.0.0/32 dev tunnel0
linkul ip setați tunnel0
ip route add 10.0.0.1/32 dev tunnel0
Configurarea tunelului host C ipip
ip tunnel add tunnel0 mode ipip remote 2.2.2.2 local 3.3.3.3
ip addr add 10.0.0.0/32 dev tunnel0
linkul ip setați tunnel0
ip route add 10.0.1.1/32 dev tunnel0
De asemenea
sysctl net.ipv4.ip_forward=1
Tunelul este activ, ambele gazde pot ping IP-ul local al capătului de la distanță (10.x).
Încerc să redirecționez traficul de la gazda A la gazda B pe portul 6300 la gazda C.
Nu putem pune o rută de la Host C la 1.1.1.1 prin Host B, deoarece ip-ul gazdei A se poate schimba în orice.
Nu putem pune o rută implicită de la gazda C la gazda B, deoarece nu tot traficul vine de la gazda B.
Practic, vreau ca Host C să răspundă la orice trafic de intrare prin interfața prin care a venit traficul.
Traficul din 1.1.1.1 a venit prin tunel0? Trimiteți răspunsul la tunnel0.
Traficul din 1.1.1.1 a venit prin xxx0? Trimiteți răspunsul la xxx0.
Traficul de la x.y.z.w a venit prin interfața xxx0? Trimiteți răspunsul la xxx0.
NAT este interzis. Filtrarea se face pe gazda C, astfel încât gazda C trebuie să fie conștientă de IP-ul gazdei A.
Pe gazda B am încercat
iptables -A FORWARD -i eth0 -o tunnel0 -j ACCEPT
iptables -A FORWARD -i tunnel0 -o eth0 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 6300 --jump DNAT --to-destination 10.0.0.1
dar asta nu a făcut nimic. Traficul din 1.1.1.1 nu trece prin tunnel0.
Nici măcar nu știu ce ar trebui să investighez. Redirecționare? Rutare? iptables? Marcare? Orice indicații despre ceea ce ar trebui să lucrez ar fi foarte apreciat!
EDITAȚI | ×
S-au adăugat acele comenzi pe Host B
sysctl net.ipv4.conf.eth0.forwarding=1
sysctl net.ipv4.conf.tunnel0.forwarding=1
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 6300 -j DNAT --to-destination 10.0.0.1:6300
iptables -A FORWARD -p tcp -d 10.0.0.1 --dport 6300 -m stare --state NOU, INSTALAT, RELATED -j ACCEPT
iar acum traficul de la Gazda A intră în tunel către Gazda C! Mare progres!
Dar nu există trafic de întoarcere.
Am încercat să adaug acest lucru în Host C pentru a sursa pachetele de rută
regulă ip adăugați tabelul 11 din 10.0.0.1/32 dev tunnel0
ip route adăugați tabelul 11 la implicit prin 10.0.0.1 dev tunnel0
dar fara noroc. Vreo greșeală evidentă în comenzile pe care le-am introdus? -Mulțumiri