Просто маршрутной таблицы недостаточно.
Нужно включать
IP Forwarding и NAT (MASQUERADE), иначе пакеты не будут проходить между сетями (две ethernet карты).
По умолчанию в Ubuntu IP Forwarding =0;
Проверить:
cat /proc/sys/net/ipv4/ip_forward
Включить:
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
Только что читал про
Beowulf Cluster Setup - модная тема :)
Там предполагается что
ADSL router with four ethernet ports,
то есть в оригинальной конфиге предполагается, что трафик в инет есть на разъемах ethernet
А в вашей конфиге указание в нетплане default :
routes:
- to: default
via: 192.168.0.1
В netplan по умолчанию для кластера такая конфига имеется ввиду:
192.168.0.1 это роутер ADSL
192.168.0.8 это master node и с 192.168.0.9 идут slave nodes
Если такое написать в вашей конфиге, то теоретически должно положить интернет вообще с момента рестарта netplan, но он будет работать, пока кеш днс валиден. Для гугла 10 мин, для каких то сайтов до 30 дн. Если у них не выходят обновления по днс записям.
Почему просто маршрутной таблицы недостаточно. ?
IP Forwarding позволяет ядру Linux пересылать пакеты между интерфейсами. Без него пакеты не передаются.
NAT (MASQUERADE) нужен, если устройства из одной сети (
enp0s8) должны выходить в интернет через другой интерфейс (
enp0s3).
Настроить NAT через iptables или nft :
План А :
Читать netfilter.org:
https://www.netfilter.org/documentation/HOWTO/NAT-...
План Бэ :
Довериться советам из интернета и выполнить команды:
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
iptables -A FORWARD -i enp0s3 -o enp0s8 -m state --state RELATED,ESTABLISHED -j ACCEPT
работает до перезагрузки надо сохранить если поможет. Но сначала определитесь со шлюзами какой куда ведет. Default route это для шлюза с доступом в интернет.
Мост в ваших скринах не видно. Он вообще есть? Проверьте. Я бы убрал и сделал все на iptables.
Вопрос - промт к chat GPT
NAT между ethernet картами как пробросить интернет в локалку
# netplan /etc/netplan/50-cloud-init.yaml
-----------
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: no
addresses:
- 192.168.0.108/24
routes:
- to: default
via: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
-------------------------------
всё :)