Рейтинг:0

Интернет в linux netns недоступен, nexthop неверен

флаг jp

Я успешно настроил 2 октопринта в 1 armbian linux на 2 разных портах 5000 и 5001 с помощью netns. Я могу без проблем подключиться к ним как 10.10.10.233:5000 и 10.10.10.233:5001. Первый из них (5000) находится в основной системе и имеет успешное подключение к Интернету, второй (порт 5001) не может подключиться к Интернету, он может подключаться только к хосту через veth.

Все настройки такие:

sudo ip link add dev virt01 type veth имя однорангового узла virt02

sudo ip netns добавить 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-адрес добавить 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 добавить по умолчанию через 10.1.1.2

#разрешить переадресацию
sudo ip netns exec octo2 sysctl net.ipv4.ip_forward=1
эхо 1 > /proc/sys/net/ipv4/ip_forward

На данный момент в хосте есть:

netstat -rn
Таблица IP-маршрутизации ядра
Шлюз назначения Флаги Genmask MSS Window 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

в сети:

sudo ip netns exec octo2 netstat -rn
Таблица IP-маршрутизации ядра
Шлюз назначения Флаги Genmask MSS Window 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

Таким образом, соединения от хоста ХОРОШИЕ к Интернету (через маршрутизатор 10.10.10.1/24) и к netns

оранжевый пи:~$ пинг 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56 (84) байт данных.
64 байта из 1.1.1.1: icmp_seq=1 ttl=54 время=21,6 мс
64 байта из 1.1.1.1: icmp_seq=2 ttl=54 время=21,4 мс

оранжевый пи:~$ пинг 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56 (84) байт данных.
64 байта из 10.1.1.1: icmp_seq=1 ttl=64 время=0,242 мс

Но из netns есть только подключение к хосту и НЕТ ИНТЕРНЕТА:

Orangepi:~$ sudo ip netns exec octo2 ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2) 56 (84) байт данных.
64 байта из 10.1.1.2: icmp_seq=1 ttl=64 время=0,250 мс

# ОШИБКА ЗДЕСЬ, НЕТ ИНТЕРНЕТА ОТ NETNS:
Orangepi:~$ sudo ip netns exec octo2 ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56 (84) байт данных.
^ С
--- 1.1.1.1 статистика пинга ---
2 пакета передано, 0 получено, 100% потери пакетов, время 1017 мс

Orangepi:~$ sudo ip netns exec octo2 traceroute 1.1.1.1
traceroute до 1.1.1.1 (1.1.1.1), макс. 30 переходов, пакеты по 60 байт
 1 _шлюз (10.1.1.2) 0,288 мс 0,094 мс 0,079 мс
 2 * * *            
 3 * * *
 4 * * *
 5 * * *
 6 *^С

iptables хоста:

оранжевыйpi:~$ sudo iptables -S
-P ВВОД ПРИНЯТЬ
-P ВПЕРЕД ПРИНЯТЬ
-P ВЫВОД ПРИНЯТЬ

Orangepi:~$ sudo iptables -S -t nat
-P ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ ПРИНЯТЬ
-P ВВОД ПРИНЯТЬ
-P ВЫВОД ПРИНЯТЬ
-P ОТПРАВКА ПРИНЯТЬ

Также некоторые данные:

оранжевыйpi:~$ ip r
по умолчанию через 10.10.10.1 dev eth0 proto dhcp metric 100
10.1.1.0/24 dev virt02 прото-область ядра ссылка src 10.1.1.2
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.234 метрика 100
169.254.0.0/16 dev eth0 метрика ссылки области видимости 1000

Orangepi:~$ sudo ip netns exec octo2 ip r
по умолчанию через 10.1.1.2 dev virt01
10.1.1.0/24 dev virt01 ссылка на область ядра 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

оранжевый пи:~$ 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

В системе нет ufw и других брандмауэров.

Как исправить и дать netns доступ в интернет?

Рейтинг:0
флаг jp

Маршрутизатор 10.10.10.1 получил запрос от 10.1.1.1 (netns внутри OrangePi), поэтому он запрещает доступ к WAN, так как у него нет маршрута для него.

Исправление: используйте NAT внутри OrangePi, чтобы 10.1.1.1 был виден с маршрутизатора как 10.10.10.234 , чтобы у него был доступ в Интернет.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.