proxmoxの仮想ポートに物理ポートを専用にします(libvirtは不要)。

proxmoxの仮想ポートに物理ポートを専用にします(libvirtは不要)。

libvirt の助けを借りずに、1 つのホスト物理ポートを 1 つのゲスト仮想ポート専用に使用できます。

ホストは次のとおりです。

  • 2つの物理インターフェイス:eth0とeth1
  • すべてのVMの仮想インターフェイスを含む1つの仮想ブリッジ(vmbr0)
  • eth0 と vmbr0 はブリッジモードになっています。。これは、すべてのゲストとホストが同じサブネット(192.168.247.0/24)にあるためです。

これが私の設定です。/etc/network/interfaces

auto lo
iface lo inet loopback

iface eth0 inet manual
iface eth1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.247.2
        netmask 255.255.255.0
        gateway 192.168.247.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

eth1はISPモデムに接続する必要があります。したがって、eth1はインターネットを終了します。ホストの仮想マシンの1つである仮想ファイアウォールにeth1を専用に使用したいと思います。仮想ファイアウォールは、ホストではなくすべてのルーティング操作を実行します。

私が知っている限り、これを行うにはMacVTap(macvlan)を使用する必要がありますが、私が見るすべてのガイドはKVM + libvirtについてです。そして私はlibvirtを持っていません!Proxmoxは「ユーザーフレンドリーな作業」をすべて行っています。

以下に示すように、インターフェイスTap101i0とTap101i1の1つのVMのみがアクティブになりました。ここで、Tap101i0 は vmbr0 にあり、ホストの eth0 と同じサブネットマスクを共有すると仮定します。そして、tap101i1はホストのeth1に100%バインドする必要があるため、インターネットはシャットダウンされます。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP mode DEFAULT group default qlen 1000
    link/ether 00:15:17:50:95:66 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:15:17:50:95:67 brd ff:ff:ff:ff:ff:ff
6: tap101i0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 06:97:77:30:cc:a7 brd ff:ff:ff:ff:ff:ff
7: tap101i1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether ce:b4:f3:40:38:0d brd ff:ff:ff:ff:ff:ff
8: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 00:15:17:50:95:66 brd ff:ff:ff:ff:ff:ff

答え1

この目的のためにmacvlanを使用することができます。

  1. eth1にmacvlanインターフェースを作成します。
    ip link add link eth1 name macvlan1 type macvlan mode bridge
    
  2. macvlan インターフェイスに IP アドレスを割り当てます。 VM は次の IP アドレスを使用します。
    ip addr add 192.168.247.3/24 dev macvlan1
    
  3. macvlan インターフェイスを呼び出します。
    ip link set macvlan1 up
    
  4. 仮想マシンのPIDを取得します(vm-name実際の名前に置き換えます)。
    ps aux | grep [v]m-name
    
  5. 仮想マシンのネットワークネームスペースにmacvlanインターフェイスを追加します(PID実際のPIDに置き換えます)。
    ip link set macvlan1 netns PID
    
  6. 仮想マシンでmacvlanインターフェイスを開きます(PIDを交換し直します)。
    ip netns exec PID ip link set macvlan1 up
    

これで、仮想マシンはまるでeth1に直接接続されているかのように使用できます。仮想マシンのIPアドレスは192.168.247.3で、eth1を介してインターネットと通信できます。

関連情報