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

Как применить несколько подсетей к серверу с одной сетевой картой?

Я пытаюсь маршрутизировать несколько IP-адресов через один физический сетевой адаптер на моем выделенном сервере для использования с виртуальными машинами Proxmox KVM. У меня есть выделенный сервер, на котором в настоящее время работает Debian 4.4.5-8 с 3 доступными IP-адресами для использования, которые будут отображаться как 176.xxx.xxx.196 (основной), 176.xxx.xxx.198 (в той же подсети как основной) и 5.xxx.xxx.166 (другая подсеть). В настоящее время я пытаюсь маршрутизировать третий IP-адрес с помощью dedi для использования с vps, который я настроил с помощью proxmox v2.x, но мне очень, очень трудно это сделать. Виртуальные интерфейсы, связывающие дополнительные IP-адреса, работают должным образом, что исключает проблемы внешней маршрутизации.

Провайдер предоставил следующую информацию для IP-адресов в основной подсети:
шлюз: 176.xxx.xxx.193
маска сети: 255.255.255.224
трансляция: 176.xxx.xxx.223

А также следующую информацию об IP-адресе во второй подсети:
шлюз: 5.xxx.xxx.161
сетевая маска: 255.255.255.248
трансляция: 5.xxx.xxx.167

Все, что я пробовал с / etc / network / interfaces, либо не работает, либо делает сеть совершенно бесполезной.

Это текущее состояние файла, в котором вторичный IP-адрес работает в той же подсети, а также работает IPv6, но не вторая подсеть.

# Nativen IPv6 Schnittstelle
iface eth0 inet6 manual


# Bridge IPv4 Schnittstelle (176.xxx.xxx.193/27)
auto vmbr0
iface vmbr0 inet static
    address 176.xxx.xxx.196
    netmask 255.255.255.224
    gateway 176.xxx.xxx.193
    broadcast 176.xxx.xxx.223
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0
    post-up ip addr add 176.xxx.xxx.198/27 dev vmbr0

auto vmbr1
iface vmbr1 inet static
    address 5.xxx.xxx.166
    netmask 255.255.255.248
    gateway 5.xxx.xxx.161
    broadcast 5.xxx.xxx.167
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0
    post-up ip addr add 5.xxx.xxx.166/29 dev vmbr1

# Bridge IPv6 Schnittstelle (Reichweite: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx::/64)
iface vmbr0 inet6 static
    address xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
    netmask 64
    up ip -6 route add xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0
    down ip -6 route del xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0
    up ip -6 route add default via xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0
    down ip -6 route del default via xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0

Это было полностью исправлено переустановкой гостевой vm. Провайдер выделенного сервера предоставил каждому гостю MAC-адреса, которые затем назначили ему IP-адрес через dhcp, это решило проблему.

У тебя есть два моста (vmbr0 и vmbr1) который обе иметь eth0 как участник, так что у вас, по сути, есть один домен уровня 2, который, как я подозреваю, вызовет странности. Вы пытаетесь предоставить виртуальной машине два сетевых адаптера? Если это так, вам лучше предоставить одну сетевую карту и присоединить к ней два адреса внутри виртуальной машины. Хост должен иметь единственный мост, содержащий eth0.

Поскольку во вторичной подсети уже есть шлюз, хост не должен действовать как один. Не настраивайте адреса или маршруты для дополнительной подсети на узле. В гостевой системе подключите один из дополнительных IP-адресов к его сетевой карте и настройте шлюз по умолчанию на 5.xxx.xxx.161. Хост будет просто действовать как мост второго уровня, позволяющий виртуальной машине достигать шлюза.