Вот сценарий. В подсети есть два хоста (оба - виртуальные машины virtualbox), и оба находятся в одной сети 192.168.1.0. Я дополнительно создал два интерфейса моста с отдельными сетевыми срезами.
Question:
Есть ли способ для ip на мосте host1 взаимодействовать с ip на мосте host2?
Я ищу способ настроить маршруты, используя ip route
или аналогичный, чтобы направлять L3-пакеты с одного моста на другой без необходимости устанавливать дополнительный сетевой уровень, например vxlan или что-то подобное.
Configuration:
Host1 interfaces:
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 routing:
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 interfaces:
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 routing:
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
Похоже, вы знаете часть маршрутизации.