Итак, у меня следующий сценарий: у меня есть сервер с 1 физическим сетевым интерфейсом. На этом сервере я хочу создать 2 сетевых пространства имен (NS_NASty
и NS_MongoDB
). Оба пространства имен должны иметь доступ к Интернету через физический интерфейс (ens192
) и NS_NASty
, а также пространство имен по умолчанию, должны иметь доступ к NS_MongoDB
.
Конфигурация интерфейса:
дефолт
ens192: 172.20.7.57/22
veth0: 192.168.1.1/24
veth2: 192.168.2.1/24
NS_MongoDB
veth1: 192.168.1.2/24
NS_NASty
veth3: 192.168.2.2/24
Вот текущая конфигурация, которую я использую:
# create namespaces
ip netns add NS_NASty
ip netns add NS_MongoDB
# create virtual adapter pairs
ip link add veth0 type veth peer name veth1
ip link add veth2 type veth peer name veth3
# assign veth peer to namespace
ip link set veth3 netns NS_NASty
ip link set veth1 netns NS_MongoDB
# activate veth peers
ip netns exec NS_NASty ip link set veth3 up
ip netns exec NS_MongoDB ip link set veth1 up
# assign IPs to veth peers
ip netns exec NS_NASty ip addr add 192.168.2.2/24 dev veth3
ip netns exec NS_MongoDB ip addr add 192.168.1.2/24 dev veth1
# add veth IPs in default namespace
ip addr add 192.168.1.1/24 dev veth0
ip addr add 192.168.2.1/24 dev veth2
# create ethernet bridge
brctl addbr vbr0
brctl stp vbr0 off
brctl addif vbr0 veth0
brctl addif vbr0 veth2
# activate veth in default namespace
ip link set dev vbr0 up
ip link set veth0 up
ip link set veth2 up
# add default routes
ip netns exec NS_NASty ip route add default via 192.168.2.1
ip netns exec NS_MongoDB ip route add default via 192.168.1.1
Я не могу ping
любые адреса, кроме соответствующего шлюза пространства имен.
Я думаю, вы используете IP-адреса 192.168.2.1 и 192.168.1.1 с маской подсети 24. Чтобы сетевые пространства могли взаимодействовать друг с другом, они должны находиться в одном сетевом блоке. SO изменение маски подсети на 16 или изменение IP-адресов на 192.168.2.1 и 192.168.2.2 может сработать.