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

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

ip r add 0.0.0.0 через 172.20.10.10 src 10.0.100.10

GOT:

Ошибка: недопустимый адрес prefsrc

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

Цель: {{ 1}} netns (host) => ppp0 => Интернет через ppp0

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

/home# ip netns
ns2
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
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
15: virt1@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 02:e6:f6:3a:19:2f brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.0.100.10/24 scope global virt1    <<<<<<<<<<<<<<<<<<<<<<<<<<<
       valid_lft forever preferred_lft forever
    inet6 fe80::e6:f6ff:fe3a:192f/64 scope link
       valid_lft forever preferred_lft forever

/home# ip netns exec ns1 ip r
default via 10.0.100.1 dev virt1
10.0.100.0/24 dev virt1 proto kernel scope link src 10.0.100.10

/home# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 11:22:33:44:31:34 brd ff:ff:ff:ff:ff:ff
    inet 1.2.3.4/20 brd 1.2.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.10.0.8/16 brd 10.10.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 1111::2222:3333:4444:5555/64 scope link
       valid_lft forever preferred_lft forever
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp
    inet 172.20.10.1 peer 172.20.10.10/32 scope global ppp0
       valid_lft forever preferred_lft forever
14: virt-h@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f2:7e:68:40:ff:13 brd ff:ff:ff:ff:ff:ff link-netns ns1
    inet 10.0.100.1/24 scope global virt-h   <<<<<<<<<<<<
       valid_lft forever preferred_lft forever
    inet6 fe80::f07e:68ff:fe40:ff13/64 scope link
       valid_lft forever preferred_lft forever

netns: virt1 <> virt-h

/home# ip r
default via 1.2.3.4 dev eth0 proto static
10.0.100.0/24 dev virt-h proto kernel scope link 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 proto kernel scope link src 172.20.10.1

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

также:

/home# ip netns exec ns1 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=2.39 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=1.52 ms

/home# ip netns exec ns1 ping 172.20.10.1
PING 172.20.10.1 (172.20.10.1) 56(84) bytes of data.
64 bytes from 172.20.10.1: icmp_seq=1 ttl=64 time=0.071 ms
64 bytes from 172.20.10.1: icmp_seq=2 ttl=64 time=0.118 ms

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

/home# ip netns exec ns1 ip r add default via 172.20.10.10 src 10.0.100.10
Error: Nexthop has invalid gateway.
0
задан 30 June 2021 в 20:47
1 ответ

Решение:
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 добавить 0.0.0.0/0 через 172.20.10.10 таблицу ns1

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

0
ответ дан 28 July 2021 в 14:36

Теги

Похожие вопросы