Установка включает маршрутизатор, мост и устройство конечного пользователя. Я настроил настройку, используя следующие инструкции:
- Создайте 2 пространства имен ns1 для моста и ns2 для конечного устройства. .
Код: Выделить всё
sudo ip netns add ns1
sudo ip netns add ns2
- Создайте интерфейс моста в пространстве имен по умолчанию
Код: Выделить всё
sudo ip link add nsd-br type bridge
sudo ip address add 10.0.0.1/24 dev nsd-br
- Создайте пару veth для подключения моста nsd-br в пространстве имен по умолчанию к пространству имен ns1
Код: Выделить всё
sudo ip link add ns1-veth0 type veth peer name nsd-veth0
sudo ip link set ns1-veth0 netns ns1
sudo ip link set dev nsd-veth0 master nsd-br
- Создайте мост ns1-br в пространстве имен ns1
Код: Выделить всё
sudo ip netns exec ns1 ip link add ns1-br type bridge sudo ip netns exec ns1 ip address add 10.0.1.1/24 dev ns1-br
- Соедините ns1-br и ns2 с помощью veth
Код: Выделить всё
sudo ip link add ns2-veth1 type veth peer name ns1-veth1 sudo ip link set ns1-veth1 netns ns1 sudo ip link set ns2-veth1 netns ns2
- Установите 'ns1-brns1-veth1`
Код: Выделить всё
as master for
Код: Выделить всё
sudo ip netns exec ns1 ip link set dev ns1-veth1 master ns1-br
- Настройте IP-адрес для ns2-veth1 в пространстве имен ns2
< /ол>Код: Выделить всё
sudo ip netns exec ns2 ip address add 10.0.1.2/24 dev ns2-veth1
- Включите все интерфейсы:
Код: Выделить всё
sudo ip link set dev nsd-br up
sudo ip link set dev nsd-veth0 up
sudo ip netns exec ns1 ip link set dev ns1-br up
sudo ip netns exec ns1 ip link set dev ns1-veth0 up
sudo ip netns exec ns1 ip link set dev ns1-veth1 up
sudo ip netns exec ns2 ip link set dev ns2-veth1 up
- Настройка маршрутизации для всех пространств имен
Код: Выделить всё
sudo ip route add 10.0.0.1/24 via 10.0.0.1 dev nsd-br (automatically configured by kernel)
sudo ip route add 10.0.1.0/24 via 10.0.0.1 dev nsd-br
# for ns1
sudo ip netns exec ns1 ip route add 10.0.0.0/24 via 10.0.0.4 dev ns1-veth0 (automatically configured by kernel)
sudo ip netns exec ns1 ip route add 10.0.1.0/24 via 10.0.1.1 dev ns1-br
# for ns2
sudo ip netns exec ns2 ip route add 10.0.1.0/24 via 10.0.1.1 dev ns2-veth1 (automatically configured by kernel)
sudo ip netns exec ns2 ip route add 10.0.0.0/24 via 10.0.1.1 dev ns2-veth1
Проблема
- Я не могу пинговать 10.0.0.1 (nsd-br) из ns2 и не иметь возможности пинговать 10.0.1.2 из пространства имен по умолчанию.
- I я не могу пинговать Интернет (1.1.1.1) из ns2
Код: Выделить всё
10:04:37.576618 ARP, Request who-has 10.0.1.2 tell 10.0.0.1, length 28
MAC-адрес 10.0.1.2 отсутствует в интерфейсе ns1-veth0, но присутствует в ns1-br, почему таблицы ARP не используются совместно интерфейсами, если оба интерфейса находятся в одном пространстве имен?
Кроме того, здесь отсутствуют правила NAT, и весь трафик по умолчанию перенаправляется в пространства имен ns1 и ns2.>
Подробнее здесь: https://stackoverflow.com/questions/782 ... erfaces-li