Puncte:0

trafic de redirecționare ip din interiorul rețelei de pod

drapel in

Am următoarea configurație de rețea.

diagrama rețelei

Rulez o gazdă cu 2 vms. Fiecare VM rulează debian cu cri-o, rulând niște containere. Containerele au fiecare o adresă ip pe subrețeaua 10.200.0.0/24. Un oaspete folosește ips pe subrețeaua 10.200.0.0.0/16, iar altul folosește ips pe subrețeaua 10.200.1.0/16.

Gazda are o interfață bridge, br0. Gazda eth0 interfața este legată de br0 și NIC-urile vms fac, de asemenea, parte din acel pod, așa că li se atribuie ip-uri pe subrețeaua mea lan (192.168.1.0/24).

Gazda are următoarele valori sysctl, deci iptables nu ar trebui să afecteze traficul bridge.

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Vreau ca containerele să se poată conecta între ele (10.200.0.4 la/de la 10.200.1.2).Acest lucru funcționează dacă configurez rute personalizate pentru fiecare oaspete:

# pe invitatul 01
ruta ip adăugați 10.200.1.0/24 prin 192.168.1.243
# pe invitatul 02
ruta ip adăugați 10.200.0.0/24 prin 192.168.1.242

Și apoi pot să pun ping la alte containere din fiecare container, dar nu vreau să setez rute statice pentru fiecare oaspete, deoarece ar trebui să fac asta pentru fiecare oaspete de fiecare dată când ceva se schimbă.

Dacă șterg aceste rute și adaug câteva rute statice la gazda mea, pot trimite ping la toate containerele de la gazda respectivă:

ruta ip adăugați 10.200.0.0/24 prin 192.168.1.242
ruta ip adăugați 10.200.1.0/24 prin 192.168.1.243

# tabelul de rutare al oaspeților rămâne ca inițial cu o rută implicită prin br0/eth0

# pentru 192.168.1.243
implicit prin 192.168.1.1 dev enp1s0 
10.200.1.0/24 dev cni0 proto kernel scope link src 10.200.1.1 
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.243

Dar, foarte important, containerele nu pot ajunge unul la celălalt. M-aș aștepta ca traficul să meargă de la containere, la br0, la eth0, care apoi ar redirecționa acel trafic înapoi la br0, la .242 sau .243 conform configurației cu ip route add.

Pot vedea cu tcpdump că traficul ajunge la br0 și eth0 pe gazdă, dar nu este redirecționat înapoi la br0, doar se întoarce la routerul meu care nu știe cum să direcționeze 10.200.0.0/16. Dacă adaug o rută statică la router, 10.200.0.0/16 prin 192.168.103, acest lucru funcționează de fapt, deoarece gazda mea (.103) știe apoi cum să redirecționeze acest trafic către br0 și către .242 sau .243, conform rutelor statice configurate manual.

Deci, se pare că traficul este direcționat corect atunci când vine din exteriorul eth0/br0, dar nu și când vine din interiorul oaspeților. Înțeleg că legătura funcționează pe L2, așa că traficul trebuie direcționat pe L3 undeva, dar cum de este redirecționat corect atunci când provine din afara oaspeților, dar nu atunci când provine din interiorul oaspeților?

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.