Puncte:0

direcționează traficul prin tunelurile IPIP

drapel kr
seb

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

A.B avatar
drapel cl
A.B
oprindu-se la prima inconsecvență în întrebare: același 10.0.0.0 este setat pe ambele sisteme B și C.
seb avatar
drapel kr
seb
care este problema? Sunt pe un /32. Tunelul funcționează bine, se pot ping unul altuia prin tunel.
Puncte:0
drapel kr
seb

A spart.

Gazda B

sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.all.rp_filter=0
sysctl net.ipv4.conf.tunnel0.forwarding=1

ip tunnel add tunnel0 mode ipip remote 3.3.3.3 local 2.2.2.2
ip addr add 10.0.1.1/32 dev tunnel0
linkul ip setați tunnel0
ip route add 10.0.0.1/32 dev tunnel0

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 -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

Gazda C

sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.all.rp_filter=0
sysctl net.ipv4.conf.tunnel0.forwarding=1

ip tunnel add tunnel0 mode ipip local 3.3.3.3 remote 2.2.2.2
ip addr add 10.0.0.1/32 dev tunnel0
linkul ip setați tunnel0
ip route add 10.0.1.1/32 dev tunnel0

Adăugarea regulii ip din 10.0.0.1 căutare 11
ip route adăugați tabelul 11 ​​la implicit prin 10.0.0.1 dev tunnel0

Acum, tot traficul trimis de la A la B pe portul 6300 este redirecționat transparent către C. C vede că traficul vine de la A și trimite traficul înapoi către B.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.