Mình đã setup thành công 2 octoprints trong 1 armbian linux trên 2 cổng khác nhau 5000 và 5001 bằng netns. Tôi có thể kết nối với chúng dưới dạng 10.10.10.233:5000 và 10.10.10.233:5001 mà không gặp sự cố nào.
Đầu tiên trong số chúng (5000) nằm trên hệ thống chính và có kết nối thành công với Internet, thứ hai (cổng 5001) không thể kết nối với internet, nó chỉ có thể kết nối với máy chủ thông qua veth.
Tất cả các thiết lập là:
Sudo ip link thêm dev virt01 gõ veth tên ngang hàng 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
liên kết sudo ip thiết lập dev virt02 lên
sudo ip netns exec octo2 liên kết ip được thiết lập lo
Sudo ip netns exec octo2 ip route thêm mặc định qua 10.1.1.2
#cho phép chuyển tiếp
sudo ip netns exec octo2 sysctl net.ipv4.ip_forward=1
tiếng vang 1 > /proc/sys/net/ipv4/ip_forward
Tại thời điểm này trong máy chủ có:
netstat -rn
Bảng định tuyến IP hạt nhân
Cổng đích Cờ genmask Cửa sổ 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 đức hạnh02
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
trong mạng:
sudo ip netns exec octo2 netstat -rn
Bảng định tuyến IP hạt nhân
Cổng đích Cờ genmask Cửa sổ MSS irtt Iface
0.0.0.0 10.1.1.2 0.0.0.0 UG 0 0 0 đức hạnh01
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 đức hạnh01
Vì vậy, các kết nối từ máy chủ đến Internet (thông qua bộ định tuyến 10.10.10.1/24) và mạng là TỐT
campi:~$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) byte dữ liệu.
64 byte từ 1.1.1.1: icmp_seq=1 ttl=54 time=21,6 ms
64 byte từ 1.1.1.1: icmp_seq=2 ttl=54 time=21,4 ms
campi:~$ ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56(84) byte dữ liệu.
64 byte từ 10.1.1.1: icmp_seq=1 ttl=64 time=0,242 ms
Nhưng từ netns chỉ có kết nối đến máy chủ và KHÔNG CÓ INTERNET:
orangepi:~$ sudo ip netns exec octo2 ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2) 56(84) byte dữ liệu.
64 byte từ 10.1.1.2: icmp_seq=1 ttl=64 time=0,250 ms
# LỖI TẠI ĐÂY , KHÔNG CÓ INTERNET TỪ NETNS:
orangepi:~$ sudo ip netns exec octo2 ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) byte dữ liệu.
^C
--- 1.1.1.1 thống kê ping ---
Truyền 2 gói, nhận 0 gói, mất gói 100%, thời gian 1017ms
orangepi:~$ sudo ip netns exec octo2 theo dõi 1.1.1.1
theo dõi thành 1.1.1.1 (1.1.1.1), tối đa 30 bước nhảy, gói 60 byte
1 _gateway (10.1.1.2) 0,288 ms 0,094 ms 0,079 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 *^C
iptables của máy chủ:
campi:~$ Sudo iptables -S
-P CHẤP NHẬN ĐẦU VÀO
-P CHẤP NHẬN VỀ PHÍA TRƯỚC
-P CHẤP NHẬN ĐẦU RA
orangepi:~$ Sudo iptables -S -t nat
-P CHẤP NHẬN TRƯỚC
-P CHẤP NHẬN ĐẦU VÀO
-P CHẤP NHẬN ĐẦU RA
-P SAU KHI CHẤP NHẬN
Ngoài ra một số dữ liệu:
campi:~$ ip r
mặc định qua 10.10.10.1 dev eth0 proto dhcp metric 100
10.1.1.0/24 dev virt02 liên kết phạm vi kernel proto src 10.1.1.2
10.10.10.0/24 dev eth0 liên kết phạm vi hạt nhân proto src 10.10.10.234 số liệu 100
169.254.0.0/16 dev eth0 chỉ số liên kết phạm vi 1000
orangepi:~$ sudo ip netns exec octo2 ip r
mặc định qua 10.1.1.2 dev virt01
10.1.1.0/24 dev virt01 liên kết phạm vi kernel proto 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
campi:~$ 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
Hệ thống không có ufw và tường lửa khác.
Làm cách nào để sửa lỗi và cấp quyền truy cập Internet cho netns?