Puncte:0

Internetul în linux netns este inaccesibil, nexthop este greșit

drapel jp

Am setat cu succes 2 octoprint-uri într-un linux armbian pe 2 porturi diferite 5000 și 5001 folosind netns. Mă pot conecta la ei ca 10.10.10.233:5000 și 10.10.10.233:5001 fără probleme. Primul dintre ei (5000) este pe sistemul principal și are o conexiune de succes la Internet, al doilea (portul 5001) nu se poate conecta la internet, se poate conecta doar la gazdă prin veth.

Toată configurația este:

sudo ip link add dev virt01 tip veth peer name virt02

sudo ip netns add octo2
sudo ip link set virt01 netns octo2
sudo ip netns exec octo2 ip addr add 10.1.1.1/24 dev virt01
sudo ip addr add 10.1.1.2/24 dev virt02
sudo ip netns exec octo2 ip link set dev virt01 up
sudo ip link set dev virt02 up
sudo ip netns exec octo2 ip link set lo up
sudo ip netns exec octo2 ip route add default prin 10.1.1.2

#permite înainte
sudo ip netns exec octo2 sysctl net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward

În acest moment, în gazdă aveți:

netstat -rn
Tabelul de rutare IP kernel
Destination Gateway Genmask Flags Fereastra MSS irtt Iface
0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 virt02
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0

în netns:

sudo ip netns exec octo2 netstat -rn
Tabelul de rutare IP kernel
Destination Gateway Genmask Flags Fereastra MSS irtt Iface
0.0.0.0 10.1.1.2 0.0.0.0 UG 0 0 0 virt01
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 virt01

Deci conexiunile de la gazdă sunt BUNE la Internet (prin router 10.10.10.1/24) și la netns

orangepi:~$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) octeți de date.
64 de octeți din 1.1.1.1: icmp_seq=1 ttl=54 timp=21,6 ms
64 de octeți din 1.1.1.1: icmp_seq=2 ttl=54 time=21,4 ms

orangepi:~$ ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56(84) octeți de date.
64 de octeți din 10.1.1.1: icmp_seq=1 ttl=64 time=0,242 ms

Dar de la netns există doar conexiune la gazdă și NU INTERNET:

orangepi:~$ sudo ip netns exec octo2 ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2) 56(84) octeți de date.
64 de octeți din 10.1.1.2: icmp_seq=1 ttl=64 time=0,250 ms

# EROARE AICI, FĂRĂ INTERNET DE LA NETNS:
orangepi:~$ sudo ip netns exec octo2 ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) octeți de date.
^C
--- 1.1.1.1 statistici ping ---
2 pachete transmise, 0 primite, 100% pierdere de pachete, timp 1017 ms

orangepi:~$ sudo ip netns exec octo2 traceroute 1.1.1.1
traceroute la 1.1.1.1 (1.1.1.1), 30 de hopuri max, pachete de 60 de octeți
 1 _gateway (10.1.1.2) 0,288 ms 0,094 ms 0,079 ms
 2 * * *            
 3 * * *
 4 * * *
 5 * * *
 6 *^C

iptable-urile gazdei:

orangepi:~$ sudo iptables -S
-P ACCEPT INTRARE
-P ACCEPTĂ ÎN ÎNTÂMPRE
-P ACCEPT IEȘIRE

orangepi:~$ sudo iptables -S -t nat
-P PREROUTING ACCEPT
-P ACCEPT INTRARE
-P ACCEPT IEȘIRE
-P POSTOUTING ACCEPT

De asemenea niste date:

orangepi:~$ ip r
implicit prin 10.10.10.1 dev eth0 proto dhcp metric 100
10.1.1.0/24 dev virt02 proto kernel scope link src 10.1.1.2
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.234 metric 100
169.254.0.0/16 dev eth0 scope link metric 1000

orangepi:~$ sudo ip netns exec octo2 ip r
implicit prin 10.1.1.2 dev virt01
10.1.1.0/24 dev virt01 proto kernel scope link src 10.1.1.1

ed@orangepizero:~$ cat /proc/sys/net/ipv4/ip_forward
1

ed@orangepizero:~$ sudo ip netns exec octo2 cat /proc/sys/net/ipv4/ip_forward
1

orangepi:~$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

orangepi:~$ sudo ip netns exec octo2 sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Sistemul nu are ufw și alte firewall-uri.

Cum să remediați și să acordați acces netns la Internet?

Puncte:0
drapel jp

Router, 10.10.10.1 a primit cerere de la 10.1.1.1 (netns în interiorul orangepi), deci interzice accesul la WAN deoarece nu are o rută pentru el.

Remediere: utilizați NAT în interiorul orangepi pentru ca 10.1.1.1 să fie vizibil de pe router ca 10.10.10.234, astfel încât va avea acces la Internet.

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.