Рейтинг:0

использовать ppp для интернета для netns

флаг jp

Использование

ip r добавить 0.0.0.0 через 172.20.10.10 src 10.0.100.10

ПОЛУЧИЛ:

Ошибка: неверный адрес prefsrc

Как это исправить?

Цель: netns (хост) => ppp0 => Интернет через ppp0

Моя конфигурация:

/home# IP netns
нс2
ns1 (id: 0) <<<<<<<<<<<<<<<<<<<

/home# ip netns exec ns1 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
    инет 127.0.0.1/8 область хоста lo
       valid_lft навсегда
    inet6 :: 1/128 узел области видимости
       valid_lft навсегда
2: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop состояние DOWN группа по умолчанию qlen 1000
    ссылка/ipip 0.0.0.0 брд 0.0.0.0
15: virt1@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    ссылка/эфир 02:e6:f6:3a:19:2f brd ff:ff:ff:ff:ff:ff ссылка-netnsid 0
    inet 10.0.100.10/24 глобальная область видимости virt1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
       valid_lft навсегда
    inet6 fe80::e6:f6ff:fe3a:192f/64 ссылка на область действия
       valid_lft навсегда

/home# ip netns exec ns1 ip r
по умолчанию через 10.0.100.1 dev virt1
10.0.100.0/24 dev virt1 ссылка на область ядра proto src 10.0.100.10

/home# ip а
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
    инет 127.0.0.1/8 область хоста lo
       valid_lft навсегда
    inet6 :: 1/128 узел области видимости
       valid_lft навсегда
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 11:22:33:44:31:34 брд ff:ff:ff:ff:ff:ff
    inet 1.2.3.4/20 brd 1.2.3.255 глобальная область действия eth0
       valid_lft навсегда
    inet 10.10.0.8/16 brd 10.10.255.255 глобальная область действия eth0
       valid_lft навсегда
    inet6 1111::2222:3333:4444:5555/64 ссылка на область
       valid_lft навсегда
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1450 qdisc fq_codel состояние НЕИЗВЕСТНО группа по умолчанию qlen 3
    ссылка/ppp
    inet 172.20.10.1 одноранговый узел 172.20.10.10/32 глобальный охват ppp0
       valid_lft навсегда
14: virt-h@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    ссылка/эфир f2:7e:68:40:ff:13 brd ff:ff:ff:ff:ff:ff link-netns ns1
    inet 10.0.100.1/24 глобальная область virt-h <<<<<<<<<<<<
       valid_lft навсегда
    ссылка на область inet6 fe80::f07e:68ff:fe40:ff13/64
       valid_lft навсегда

netns : virt1 <> virt-h

/home# ip р
по умолчанию через 1.2.3.4 dev eth0 proto static
10.0.100.0/24 dev virt-h ссылка на область действия ядра proto src 10.0.100.1
1.2.3.0/20 dev eth0 proto kernel scope link src 1.2.3.4
172.20.10.10 dev ppp0 прото-ссылка на область ядра src 172.20.10.1

Переадресация включена. netns настроен так, как написано здесь: https://blogs.igalia.com/dpino/2016/04/10/сетевые пространства имен/

также:

/home# ip netns exec ns1 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56 (84) байт данных.
64 байта из 8.8.8.8: icmp_seq=1 ttl=117 время=2,39 мс
64 байта из 8.8.8.8: icmp_seq=2 ttl=117 время=1,52 мс

/home# ip netns exec ns1 ping 172.20.10.1
PING 172.20.10.1 (172.20.10.1) 56 (84) байт данных.
64 байта из 172.20.10.1: icmp_seq=1 ttl=64 время=0,071 мс
64 байта из 172.20.10.1: icmp_seq=2 ttl=64 время=0,118 мс

УПД 1: этот маршрут должен быть установлен на хосте, но для комментатора это также дает ошибку (как написано в Почему «Nexthop имеет недопустимый шлюз», когда он кажется определенным?):

/home# ip netns exec ns1 ip r добавить по умолчанию через 172.20.10.10 src 10.0.100.10
Ошибка: Nexthop имеет недопустимый шлюз.
Michael Hampton avatar
флаг cz
Вы, конечно, не запускали его в ns1.
Master avatar
флаг jp
добавил upd 1. Это нужно делать в netns ns1 так как он должен роутиться на хосте, ns1 не видит ppp0, но может быть можно сделать так?
Michael Hampton avatar
флаг cz
Вы не можете установить маршрут по умолчанию к удаленному узлу PPP, пока канал PPP не установлен!
Master avatar
флаг jp
`/home# ip link set ppp0 down /home# ip r add 0.0.0.0 через 172.20.10.10 src 10.0.100.10 Ошибка: Nexthop имеет недопустимый шлюз`
Рейтинг:0
флаг jp

Решение:
0.0.0.0 => 0.0.0.0/0

Но задача не решена, полное решение:

  1. добавить правило в /etc/iproute2/rt_tables с новым индексом
  2. ip правило добавить из таблицы 10.0.100.0/24 ns1
  3. ip route add 0.0.0.0/0 через таблицу 172.20.10.10 ns1

src не нужно устанавливать, так как правило по умолчанию работает на всех локальных сетевых интерфейсах.

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

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