На сервере Proxmox (Debian) я изменил свою сетевую конфигурацию следующим образом:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto enp0s31f6
iface enp0s31f6 inet static
address 88.99.69.241
netmask 255.255.255.192
gateway 88.99.69.193
up route add -net 88.99.69.192 netmask 255.255.255.192 gw 88.99.69.193 dev enp0s31f6
post-up echo 1 > /proc/sys/net/ipv4/conf/enp0s31f6/proxy_arp
# route 88.99.69.192/26 via 88.99.69.193
auto vmbr1
iface vmbr1 inet static
address 10.3.5.1
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
к этому:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto enp0s31f6
iface enp0s31f6 inet static
address 66.xx.xx.241
netmask 255.255.255.192
gateway 66.xx.xx.193
up route add -net 66.xx.xx.192 netmask 255.255.255.192 gw 66.xx.xx.193 dev enp0s31f6
post-up echo 1 > /proc/sys/net/ipv4/conf/enp0s31f6/proxy_arp
# route 66.xx.xx.192/26 via 66.xx.xx.193
auto vmbr0
iface vmbr0 inet static
address 66.xx.xx.241
netmask 255.255.255.255
pointopoint 66.xx.xx.193
gateway 66.xx.xx.193
bridge_ports enp0s31f6
bridge_stp off
bridge_fd 1
bridge_hello 2
bridge_maxage 12
auto vmbr1
iface vmbr1 inet static
address 10.3.5.1
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
Мой сервер находится на Hetzner, и я хочу связать свой дополнительный IP-адрес с одной из моих виртуальных машин.
После перезагрузки я не могу пинговать 66.xx.xx.241, может кто-нибудь объяснить мне, почему я больше не могу подключиться ?. В мостовой сети gw должен быть определен в vmbr0 ?.
Я изменил конфигурацию сети на основе этот учебник от Хетцнера:
Да, это довольно тривиально и описано во множестве мест: члены интерфейса моста не должны иметь IP-адресов, а скорее должен сам мост.
Вы путаете основной интерфейс и мостовой интерфейс. При использовании мостового интерфейса этот интерфейс должен получать IP-адрес, а основной интерфейс становится мостовым, что означает, что он также не может иметь этот адрес.
Итак, у вас есть первый интерфейс с именем enp0s31f6
. Этот интерфейс подключен к вашему мосту, поэтому он настраивается не напрямую, а в конфигурации моста: ключевое слово manual
для этого используется:
auto enp0s31f6
iface enp0s31f6 inet manual
Затем при настройке моста:
auto vmbr0
iface vmbr0 inet static
address 66.xx.xx.241
netmask 255.255.255.255
pointopoint 66.xx.xx.193
gateway 66.xx.xx.193
bridge_ports enp0s31f6
bridge_stp off
bridge_fd 1
bridge_hello 2
bridge_maxage 12
У вас не может быть двух интерфейсов с одним и тем же IP-адресом.
Во-вторых, ты route
объявление недействительно, поскольку оно создает маршрут, который уже существует в соответствии с конфигурацией адреса и маски сети. Действительно, сеть 66.xx.xx.192 / 26 подключена напрямую (уровень 2, Ethernet и разрешение ARP) и не требует дополнительной настройки маршрута (уровень 3).
По поводу маршрутизации, поскольку пакеты в реальном мире перехватываются вашим enp0s31f6
интерфейс, но передается на ваш vmbr0
, вам нужно будет написать вам следующую строку /etc/sysctl.conf
файл :
net.ipv4.ip_forward=1
Вам нужно будет запустить команду sysctl -p
для принудительного ввода этой новой строки в учетную запись напрямую (без ожидания следующей перезагрузки).
Я не уверен, что вам нужно активировать прокси-сервер arp (строка post-up echo 1 > /proc/sys/net/ipv4/conf/enp0s31f6/proxy_arp
). По сути, то, что вы делаете, - это прокси ARP; однако это может быть неявно реализовано pointopoint
линия.
Сообщите нам, поможет ли это решить вашу проблему или нет;
РЕДАКТИРОВАТЬ. По-прежнему можно использовать режим моста. Вы настраиваете внешний интерфейс, как обычно, и мост, имеющий IP-адрес в диапазоне 1918. И тогда ip_forward = 1.