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