Сетевое пространство имен и мосты

Привет всем, я иногда пользуюсь Linux, но у меня есть проект, и мне нужна помощь с мостом :)
Я пробовал использовать Google, но не решил проблему.

Моя задача - создать сетевое пространство имен, чтобы из него можно было выполнять некоторые другие задачи.

Debian 8.2 используется в виртуальной машине VMWare на Windows 7. Я тоже пробовал те же вещи на Raspberry Pi 2, но возникают те же проблемы.

Сначала я следовал руководству https://lwn.net/Articles/580893/, чтобы создать пару виртуальные интерфейсы Ethernet. Итак, теперь у меня есть veth0 в глобальном пространстве имен с IP-адресом 10.1.1.2/24 и veth1 в пространстве имен netns1 с IP-адресом 10.1.1.1/24.

Затем я следовал руководству http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge для соединения eth0 и veth0, чтобы я мог получить доступ в Интернет из пространства имен netns1.

  • Во-первых, я удалил IP-адреса для интерфейсов eth0 и veth0 и установил для них состояние DOWN.

  • Создается новый мост (br0) и к нему добавляются оба интерфейса (eth0 и veth0).

  • Затем оба интерфейса устанавливаются в состояние UP, и я запускаю «dhclient br0», чтобы назначить IP-адрес для br0.

Из глобального пространства имен теперь можно запустить «ping google.com», но из пространства имен netns1 я получаю сообщение об ошибке «Сеть недоступна». (Я полагаю, что есть проблема с маршрутами, я попытался добавить некоторые маршруты по умолчанию в пространство имен netns1, но безуспешно. Мои знания о сети скромные, поэтому я прошу помощи.)

$ ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    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 pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:0c:29:45:b6:1d brd ff:ff:ff:ff:ff:ff
4: veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 86:e4:6c:02:b6:79 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::84e4:6cff:fe02:b679/64 scope link 
       valid_lft forever preferred_lft forever
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 00:0c:29:45:b6:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.135/24 brd 192.168.178.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe45:b61d/64 scope link 
       valid_lft forever preferred_lft forever

$ route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.178.2   0.0.0.0         UG    0      0        0 br0
default         192.168.178.2   0.0.0.0         UG    1024   0        0 br0
192.168.178.0   *               255.255.255.0   U     0      0        0 br0

$ ip netns exec netns1 ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    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
3: veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether ee:b8:f3:47:f7:0c brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.1/24 brd 10.1.1.255 scope global veth1
       valid_lft forever preferred_lft forever
    inet6 fe80::ecb8:f3ff:fe47:f70c/64 scope link 
       valid_lft forever preferred_lft forever

$ ip netns exec netns1 маршрут

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.1.1.0        *               255.255.255.0   U     0      0        0 veth1

$ brctl показать

bridge name    bridge id        STP enabled    interfaces
br0        8000.000c2945b61d    no        eth0
                            veth0

Заранее спасибо за помощь :)


person miki    schedule 26.01.2016    source источник


Ответы (1)


Я нашел решение.

По сути, ip forward отсутствовал, а также еще 2 шага (я пробовал их раньше, но из-за того, что ip forward не был включен, он не работал).

Вот шаги для будущих читателей (после того, как мост будет работать в глобальном пространстве имен):

  • Назначьте ip-адрес veth0 в глобальном пространстве имен (10.1.1.2), потому что IP-адрес был удален перед созданием моста (в учебнике для моста они говорят: «IP-адрес должен быть установлен после того, как мост был настроен»).
  • Назначьте шлюз по умолчанию в пространстве имен netns1 как veth0 в глобальном пространстве имен "ip netns exec netns1 route add default gw 10.1.1.2"
  • Включить переадресацию IP "echo 1> / proc / sys / net / ipv4 / ip_forward"
person miki    schedule 27.01.2016