AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 666310
Accepted
Mike
Mike
Asked: 2015-02-10 14:39:52 +0800 CST2015-02-10 14:39:52 +0800 CST 2015-02-10 14:39:52 +0800 CST

使用具有多个 IP 地址的单个网卡启用桥接连接

  • 772

我有一台服务器,里面有一张网卡(eth1)。我的服务器分配了 5 个公共 IP 地址,目前配置如下 ( /etc/network/interfaces):

# The primary network interface
allow-hotplug eth1
iface eth1 inet static
    address xxx.yyy.zzz.130
    netmask 255.255.255.248
    network xxx.yyy.zzz.128
    broadcast xxx.yyy.zzz.135
    gateway xxx.yyy.zzz.129

iface eth1:0 inet static
    address xxx.yyy.zzz.131
    netmask 255.255.255.248

iface eth1:1 inet static
    address xxx.yyy.zzz.132
    netmask 255.255.255.248

iface eth1:2 inet static
    address xxx.yyy.zzz.133
    netmask 255.255.255.248

iface eth1:3 inet static
    address xxx.yyy.zzz.134
    netmask 255.255.255.248

这工作得很好,但是我想添加一个与公共 IP 桥接的 KVM 虚拟机xxx.yyy.zzz.131。

如果我这样做:

auto br0
iface br0 inet static
  bridge-ports eth1
  bridge_stp off
  bridge_fd 0
  bridge_maxwait 0
  address xxx.yyy.zzz.131
  netmask 255.255.255.248

然后才 xxx.yyy.zzz.131可以访问。其他IP都不是。

如果我将其更改为bridge-ports eth1:0我收到错误:

SIOCSIFFLAGS: Cannot assign requested address
RTNETLINK answers: File exists
Failed to bring up br0.

如果我注释掉关于 的其他部分eth1:0,除了上面的错误,我也得到Ignoring unknown interface eth1:0=eth10.了开头。

如果我只有一个 NIC 和多个 IP,如何添加桥接设备?

linux
  • 3 3 个回答
  • 1762 Views

3 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2015-02-10T14:43:59+08:002015-02-10T14:43:59+08:00

    您应该只有主机桥上主机的 IP地址。来宾的 IP 地址应仅在来宾中分配。

    • 1
  2. Anton Danilov
    2019-08-05T11:20:25+08:002019-08-05T11:20:25+08:00

    您可以使用多种方法在 VM 内使用公共 ip。

    第一种方式是,你选择了什么。在这种情况下,您创建一个桥接接口eth1作为桥接端口。

    你的interfaces文件应该看起来像。

    iface br0 inet static
        bridge-ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
        address xxx.yyy.zzz.130
        netmask 255.255.255.248
        gateway xxx.yyy.zzz.129
    
    iface br0:1 inet static
        address xxx.yyy.zzz.132
        netmask 255.255.255.248
    
    iface br0:2 inet static
        address xxx.yyy.zzz.133
        netmask 255.255.255.248
    
    iface br0:3 inet static
        address xxx.yyy.zzz.134
        netmask 255.255.255.248
    

    注意,xxx.yyy.zzz.131没有在主机上分配。broadcast和选项也network没有用,所以我省略了它们。

    在此之后,您可以在 VM 内使用公共 ip 而无需任何额外的技巧,因为 VM 将作为桥接端口连接。

    其他方法是使用代理 arp 功能。为此,您不需要更改接口文件。您只需在 VM 内分配公共 ip(作为主要或次要),在主机上添加到该公共 ip 的路由,并在接口上启用 proxy-arp 功能eth1。请注意,不应在主机本身上分配此公共 ip,而应仅在 VM 内分配。另外,不要忘记将这些更改永久化(您可以使用文件post-up中的选项interfaces)。

    ip route add <public-ip> dev <virt-bridge-iface>
    sysctl -w net.ipv4.conf.eth1.proxy_arp=1
    
    • 1
  3. Mike
    2015-02-11T14:58:55+08:002015-02-11T14:58:55+08:00

    无法为一个 IP 地址创建桥接网络。它需要对整个网络接口进行或根本不需要。如果您只有一个 NIC,您唯一的选择是分配主机上的所有 IP 地址,然后使用防火墙(例如iptables)对来宾操作系统进行 NAT。

    本文有一个脚本,它会在来宾操作系统启动/停止时自动为您执行此操作。

    • -1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve