Declarație problemă
Cu configurația de mai jos este creată o pereche veth între spațiul de nume implicit/principal și un netns numit ns1.
Configurația creează și o a doua pereche veth: veth2 este în netns ns1 iar veth3 este in netns ns2, aceasta se alătură ns1 la ns2 crearea lanțului: implicit netns-veth0 <-> veth1-ns1-veth2 <-> veth3-ns2.
sudo ip link add veth0 tip veth peer name veth1
sudo ip -6 addr add CCFF::0/127 peer CCFF::1/127 dev veth0
sudo ip link set up dev veth0
sudo ip netns add ns1
sudo ip link set veth1 netns ns1
sudo ip -n ns1 -6 addr add CCFF::1/127 peer CCFF::0/127 dev veth1
sudo ip -n ns1 link set up dev veth1
sudo ip -n ns1 -6 route add default prin CCFF::0
sudo ip link add veth2 tip veth peer name veth3
sudo ip link set veth2 netns ns1
sudo ip -n ns1 -6 addr add CCFF::2/127 peer CCFF::3/127 dev veth2
sudo ip -n ns1 link set up dev veth2
sudo ip -n ns1 -6 route add CCFF::/64 prin CCFF::3
sudo ip netns adauga ns2
sudo ip link set veth3 netns ns2
sudo ip -n ns2 -6 addr add CCFF::3/127 peer CCFF::2/127 dev veth3
sudo ip -n ns2 link set up dev veth3
sudo ip -n ns2 -6 route add default prin CCFF::2
sudo ip -6 r adăugați CCFF::/64 prin CCFF::1
Din rețelele implicite pot ping veth0 care este în același netns.
Din rețelele implicite pot trimite ping la veth1 și veth2, care sunt ambele în ns1.
Din netn-urile implicite nu pot să pintez veth3 care este în ns2.
Dacă extind modificarea după cum urmează, adăugând veth4 în ns2 si veth5 in ns3 Am aceeasi problema. Pot da ping din orice interfață ns1 la orice interfață în ns2, dar nu pot ajunge la nicio interfață în ns3.
sudo ip link add veth4 tip veth peer name veth5
sudo ip link set veth4 netns ns2
sudo ip netns exec ns2 ip -6 addr add CCFF::4/127 peer CCFF::5/127 dev veth4
sudo ip netns exec ns2 ip link set up dev veth4
sudo ip netns exec ns2 ip -6 route add CCFF::/64 prin CCFF::5
sudo ip netns adauga ns3
sudo ip link set veth5 netns ns3
sudo ip netns exec ns3 ip -6 addr add CCFF::5/127 peer CCFF::4/127 dev veth5
sudo ip netns exec ns3 ip link set up dev veth5
sudo ip netns exec ns3 ip -6 route add default prin CCFF::4
Se pare că pot face ping doar la o interfață dintr-o rețea „învecinată”/„conectată” direct la cea din care fac ping. Nu pot face ping printr-un lanț de spații de nume net. Rutarea este valabilă; netn-urile implicite pot trimite ping la orice interfață ns1 dar nimic mai mult, interfețe în ns1 poate ping orice interfață în netns sau implicit ns2 dar nimic in ns3, și ns3 poate ping orice ns2 dar nimic dincolo de in ns1 sau netn-urile implicite.
Este aceasta o limitare a spațiilor de nume de rețea?
Depanare
Redirecționarea IPv6 este activată, ip6tables este doar setat la „permite tot”, nu sunt sigur ce altceva să verific.
$ip -6 r
ccff::1 dev veth0 proto kernel metric 256 pref mediu
ccff::/127 dev veth0 proto kernel metric 256 pref mediu
ccff::/64 prin ccff::1 dev veth0 metric 1024 pref mediu
fe80::/64 dev veth0 proto kernel metric 256 pref mediu
$sudo ip -n ns1 -6 r
ccff:: dev veth1 proto kernel metric 256 pref mediu
ccff::/127 dev veth1 proto kernel metric 256 pref mediu
ccff::3 dev veth2 proto kernel metric 256 pref mediu
ccff::2/127 dev veth2 proto kernel metric 256 pref mediu
ccff::/64 prin ccff::3 dev veth2 metric 1024 pref mediu
fe80::/64 dev veth1 proto kernel metric 256 pref mediu
fe80::/64 dev veth2 proto kernel metric 256 pref mediu
implicit prin ccff:: dev veth1 metric 1024 pref mediu
$sudo ip -n ns2 -6 r
ccff::2 dev veth3 proto kernel metric 256 pref mediu
ccff::2/127 dev veth3 proto kernel metric 256 pref mediu
ccff::5 dev veth4 proto kernel metric 256 pref mediu
ccff::4/127 dev veth4 proto kernel metric 256 pref mediu
ccff::/64 prin ccff::5 dev veth4 metric 1024 pref mediu
fe80::/64 dev veth3 proto kernel metric 256 pref mediu
fe80::/64 dev veth4 proto kernel metric 256 pref mediu
implicit prin ccff::2 dev veth3 metric 1024 pref mediu
$sudo ip -n ns3 -6 r
ccff::4/127 dev veth5 proto kernel metric 256 linkdown pref mediu
implicit prin ccff::4 dev veth5 metric 1024 linkdown pref medium
$cat /proc/sys/net/ipv6/conf/all/forwarding
1
$cat /proc/sys/net/ipv6/conf/default/forwarding
1
$sudo ip6tables-save
# Generat de ip6tables-save v1.8.4 pe miercuri 17 noiembrie 22:02:48 2021
*filtru
:INPUT ACCEPT [76565:173401906]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [50440:6536664]
COMMIT
# Finalizat miercuri 17 noiembrie 22:02:48 2021
$lsb_release -a
Nu sunt disponibile module LSB.
ID distribuitor: Ubuntu
Descriere: Ubuntu 20.04.3 LTS
Lansare: 20.04
Nume de cod: focal
$uname -a
Linux l13-ubuntu 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Mar 26 octombrie 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux