Báo cáo vấn đề
Với cấu hình bên dưới, một cặp veth được tạo giữa không gian tên mạng mặc định/chính và một mạng được gọi là ns1
.
Cấu hình cũng tạo ra một cặp veth thứ hai: veth2 nằm trong netns ns1
và veth3 nằm trong netns ns2
, điều này tham gia ns1
đến ns2
tạo chuỗi: netns-veth0 mặc định <-> veth1-ns1-veth2 <-> veth3-ns2
.
Sudo ip link thêm veth0 gõ veth tên ngang hàng veth1
sudo ip -6 addr add CCFF::0/127 ngang hàng CCFF::1/127 dev veth0
thiết lập liên kết sudo ip dev veth0
sudo ip netns add ns1
Sudo ip link set veth1 netns ns1
sudo ip -n ns1 -6 addr add CCFF::1/127 ngang hàng CCFF::0/127 dev veth1
Sudo ip -n ns1 thiết lập liên kết dev veth1
Sudo ip -n ns1 -6 route thêm mặc định qua CCFF::0
Sudo ip link add veth2 type veth peer name veth3
Sudo ip link set veth2 netns ns1
sudo ip -n ns1 -6 addr add CCFF::2/127 ngang hàng CCFF::3/127 dev veth2
Sudo ip -n ns1 thiết lập liên kết dev veth2
Sudo ip -n ns1 -6 route thêm CCFF::/64 qua CCFF::3
sudo ip netns thêm ns2
Sudo ip link set veth3 netns ns2
Sudo ip -n ns2 -6 addr add CCFF::3/127 ngang hàng CCFF::2/127 dev veth3
Sudo ip -n ns2 thiết lập liên kết dev veth3
Sudo ip -n ns2 -6 route thêm mặc định qua CCFF::2
Sudo ip -6 r thêm CCFF::/64 qua CCFF::1
Từ các mạng mặc định, tôi có thể ping veth0 trong cùng một mạng.
Từ mạng mặc định, tôi có thể ping veth1 và veth2, cả hai đều có trong ns1
.
Từ mạng mặc định, tôi không thể pint veth3 trong ns2
.
Nếu tôi mở rộng thay đổi như sau, bằng cách thêm veth4 vào ns2
và veth5 trong ns3
Tôi có cùng một vấn đề. Tôi có thể ping từ bất kỳ giao diện nào trong ns1
đến bất kỳ giao diện nào trong ns2
, nhưng không thể truy cập bất kỳ giao diện nào trong ns3
.
Sudo ip link thêm veth4 gõ veth tên ngang hàng veth5
Sudo ip link set veth4 netns ns2
sudo ip netns exec ns2 ip -6 addr add CCFF::4/127 ngang hàng CCFF::5/127 dev veth4
sudo ip netns exec ns2 thiết lập liên kết ip dev veth4
Sudo ip netns exec ns2 ip -6 route thêm CCFF::/64 qua CCFF::5
sudo ip netns thêm ns3
Sudo ip link set veth5 netns ns3
sudo ip netns exec ns3 ip -6 addr add CCFF::5/127 ngang hàng CCFF::4/127 dev veth5
sudo ip netns exec ns3 thiết lập liên kết ip dev veth5
Sudo ip netns exec ns3 ip -6 route thêm mặc định qua CCFF::4
Có vẻ như tôi chỉ có thể ping một giao diện trong một mạng "láng giềng"/"được kết nối" trực tiếp với giao diện mà tôi đang ping từ đó. Tôi không thể ping qua chuỗi không gian tên mạng. Tất cả các định tuyến đều hợp lệ; netns mặc định có thể ping bất kỳ giao diện nào trong ns1
nhưng không có gì hơn nữa, giao diện trong ns1
có thể ping bất kỳ giao diện nào trong mạng mặc định hoặc ns2
nhưng không có gì trong ns3
, và ns3
có thể ping bất cứ thứ gì trong ns2
nhưng không có gì ngoài trong ns1
hoặc mạng mặc định.
Đây có phải là giới hạn của không gian tên mạng không?
Xử lý sự cố
Chuyển tiếp IPv6 được bật, ip6tables chỉ được đặt thành "cho phép tất cả", tôi không chắc cần kiểm tra điều gì khác.
$ip -6 r
ccff::1 dev veth0 proto kernel metric 256 pref medium
ccff::/127 dev veth0 proto kernel metric 256 pref medium
ccff::/64 qua ccff::1 dev veth0 metric 1024 pref medium
fe80::/64 dev veth0 proto kernel metric 256 pref medium
$ sudo ip -n ns1 -6 r
ccff:: dev veth1 proto kernel metric 256 pref medium
ccff::/127 dev veth1 proto kernel metric 256 pref medium
ccff::3 dev veth2 proto kernel metric 256 pref medium
ccff::2/127 dev veth2 proto kernel metric 256 pref medium
ccff::/64 qua ccff::3 dev veth2 metric 1024 pref medium
fe80::/64 dev veth1 proto kernel metric 256 pref medium
fe80::/64 dev veth2 proto kernel metric 256 pref medium
mặc định qua ccff :: dev veth1 metric 1024 pref medium
$sudo ip -n ns2 -6 r
ccff::2 dev veth3 proto kernel metric 256 pref medium
ccff::2/127 dev veth3 proto kernel metric 256 pref medium
ccff::5 dev veth4 proto kernel metric 256 pref medium
ccff::4/127 dev veth4 proto kernel metric 256 pref medium
ccff::/64 qua ccff::5 dev veth4 metric 1024 pref medium
fe80::/64 dev veth3 proto kernel metric 256 pref medium
fe80::/64 dev veth4 proto kernel metric 256 pref medium
mặc định qua ccff::2 dev veth3 metric 1024 pref medium
$sudo ip -n ns3 -6 r
ccff::4/127 dev veth5 proto kernel metric 256 linkdown pref medium
mặc định qua ccff::4 dev veth5 metric 1024 linkdown pref medium
$cat /proc/sys/net/ipv6/conf/all/chuyển tiếp
1
$cat /proc/sys/net/ipv6/conf/default/chuyển tiếp
1
$sudo ip6tables-save
# Được tạo bởi ip6tables-save v1.8.4 vào Thứ Tư ngày 17 tháng 11 22:02:48 năm 2021
*lọc
:CHẤP NHẬN ĐẦU VÀO [76565:173401906]
:CHẤP NHẬN VỀ PHÍA TRƯỚC [0:0]
:CHẤP NHẬN ĐẦU RA [50440:6536664]
LÀM
# Hoàn thành vào Thứ 4 ngày 17 tháng 11 22:02:48 2021
$lsb_release -a
Không có mô-đun LSB nào khả dụng.
ID nhà phân phối: Ubuntu
Mô tả: Ubuntu 20.04.3 LTS
Phát hành: 20.04
Tên mã: tiêu cự
$ uname -a
Linux l13-ubuntu 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Thứ ba ngày 26 tháng 10 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux