Назад | Перейти на главную страницу

linux - маршрутизация между мостовыми сетями без наложения

Вот сценарий. В подсети два хоста (оба являются виртуальными машинами виртуальных ящиков), и оба находятся в одной сети 192.168.1.0. Я дополнительно создал два интерфейса моста с отдельными сетевыми сегментами.

Вопрос: Есть ли способ связи ip на мосту host1 с ip на мосту host2? Ищу способ настроить маршруты с помощью ip route или что-то подобное, чтобы маршрутизировать пакеты L3 с одного моста на другой без необходимости устанавливать дополнительный сетевой уровень, например vxlan или что-то в этом роде.

Конфигурация:

Интерфейсы Host1:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:ca:4a:14 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.197/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:feca:4a14/64 scope link
       valid_lft forever preferred_lft forever```

7: br-faf88cbd32f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:28:8c:40:00 brd ff:ff:ff:ff:ff:ff
    inet 172.11.11.1/24 brd 172.11.11.255 scope global br-faf88cbd32f0
       valid_lft forever preferred_lft forever

Маршрутизация Host1:

default via 192.168.1.1 dev enp0s3 proto static
172.11.11.0/24 dev br-faf88cbd32f0 proto kernel scope link src 172.11.11.1
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.197

Host2 интерфейсы:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:40:ae:5f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.196/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe40:ae5f/64 scope link
       valid_lft forever preferred_lft forever

92: br-037dfd7b32bc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:fe:0d:54:86 brd ff:ff:ff:ff:ff:ff
    inet 172.11.12.1/24 brd 172.11.12.255 scope global br-037dfd7b32bc
       valid_lft forever preferred_lft forever
    inet6 fe80::42:feff:fe0d:5486/64 scope link
       valid_lft forever preferred_lft forever

Маршрутизация Host2:

default via 192.168.1.1 dev enp0s3 proto static
172.11.12.0/24 dev br-037dfd7b32bc proto kernel scope link src 172.11.12.1
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.196

если я правильно понимаю, вы хотите, чтобы что-то подключенное к host1 или host2 через его мост, разговаривало с другим хостом?

ты бы сделал

ip route add 172.11.11.0/24 via 192.168.1.197 # on host2
ip route add 172.11.12.0/24 via 192.168.1.196 # host1

но остерегайтесь брандмауэра или NAT, которые могли быть включены Virtualbox, они могут нарушить вашу маршрутизацию

У вас включена перенаправление IP-адресов ядра? Вы можете проверить:

 cat /proc/sys/net/ipv4/ip_forward

Если он возвращает 1, он включен. Если 0, его необходимо включить на каждом хосте, на который вы хотите маршрутизировать трафик. Вы можете запустить это, чтобы включить его для вашей текущей оболочки:

echo 1 > /proc/sys/net/ipv4/ip_forward

Чтобы сделать изменение постоянным, вы можете отредактировать /etc/sysctl.conf, чтобы добавить его в новую строку:

net.ipv4.ip_forward = 1

После обновления sysctl.conf перезагрузите или запустите его, чтобы загрузить новое значение из файла:

sysctl -p

Похоже, вы знаете, что такое маршрутизация.