我有一个带有单个 NIC 的小型服务器,我试图让网桥在其上运行,以便我可以运行 KVM。在这个 NIC 上,我静态分配了几个 IP:
eth0 = 192.168.1.1
eth0:1 = 192.168.1.2
eth0:2 = 192.168.1.3
eth0:3 -> Assign the bridge to this
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下说明设置网桥:
sudo brctl addbr br0
sudo brctl addif br0 eth0:3
sudo ifconfig br0 192.168.1.120 netmask 255.255.255.0 up
sudo route add -net 192.168.1.0 netmask 255.255.255.0 br0
sudo route add default gw 192.168.1.1 br0
sudo tunctl -b -u root -t tap0 > /dev/null
sudo ifconfig tap0 up
sudo brctl addif br0 tap0
Run Code Online (Sandbox Code Playgroud)
但是,当我执行第二个命令时:
sudo brctl addif br0 eth0:3
Run Code Online (Sandbox Code Playgroud)
它将整个 …
你好,
我正在尝试使用 KVM 设置桥接网络,但一无所获。有关于该主题的文档和教程,但它们似乎都有冲突或没有提供足够的信息。我想知道是否有人可以给我一个有关如何使其工作的高级概述。我可能可以自己解决细节(配置接口,添加路由等),我只需要大局方面的帮助:一切如何相互关联。
我有一个安装并运行 KVM 的 RHEL5 服务器。它有两个物理网卡,eth0 和 eth1 在同一个 VLAN 中。如果可能,我想将 eth1 用于来宾与网络其余部分之间的所有流量,并保留 eth0 用于主机管理、来宾迁移等。我不挑剔哪一个获得默认路由,尽管如果我们能把它设为 eth0 会很好。所有来宾都将拥有静态 IP。我更喜欢在添加新来宾时,只需从来宾本身内部设置网络配置。基本上,我想要这个:
eth0:所有主机流量
eth1:所有访客流量
如果这是不可能的或将是笨拙/困难的,请接受任何其他建议。指向现有文档的指针可能没有帮助,因为我已经了解了那里的所有内容。
谢谢你的帮助。
更新
好的,这是我到目前为止所拥有的:
使用此配置,我可以从来宾内部连接到外部机器,但发往来宾的数据包永远不会成功。这是我的配置到目前为止的样子:
# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=YES
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# host-only interface
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:23:7D:E1:1F:22
IPADDR=10.8.91.18
NETMASK=255.255.252.0
GATEWAY=10.8.91.254
BOOTPROTO=none
ONBOOT=yes
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# guest-only interface
DEVICE=eth1
TYPE=Ethernet
BRIDGE=br0
HWADDR=00:23:7d:e1:1f:26
BOOTPROTO=NONE …Run Code Online (Sandbox Code Playgroud) 为方便起见,我使用 DHCP 预留而不是静态 IP,这取决于我计算机的 MAC 地址。
我最近用我的 VirtualBox 适配器桥接了我的主适配器。当事情停止工作时,我意识到 MAC 地址现在不同了。有没有办法在每次桥接或取消桥接时保持相同,或者每次都需要重新配置路由器?
我正在设置一个带有多个以太网接口的 Ubuntu Server 11.10 机器,这些接口被绑定在一起以实现冗余。我打算将它用作 KVM 主机,所以我需要一个网桥。
为此,我安装了 ifenslave 和 bridge-utils,然后编写了我的/etc/network/interfaces文件。相关部分如下:
auto br0
iface br0 inet static
address 10.1.254.101
netmask 255.255.255.0
network 10.1.254.0
broadcast 10.1.254.255
gateway 10.1.254.50
dns-nameservers 10.1.254.252
bridge_ports bond0
bridge_stp off
iface bond0 inet manual
bond-slaves eth0 eth3
bond_mode balance-rr
bond_miimon 100
Run Code Online (Sandbox Code Playgroud)
不幸的是,这并没有给我连接。ifup br0给我“ can't add bond0 to bridge br0: Invalid argument”,ifdown br0给我“ device bond0 is not a slave of br0”。如果我修改我的interfaces文件以摆脱网桥,我就可以完全连接——但我将需要网桥。
我认为我的interfaces文件中的某些内容是错误的,但我不知道如何改正。有人知道吗?谢谢!
我正在尝试创建两个都连接到同一个专用网络的虚拟机。我正在使用带有 qemu-kvm 1.0 的 Linux。
我的攻击计划是这样的:
brctl addbr 桥 ifconfig 桥接 tunctl -t tap1 tunctl -t tap2 ifconfig tap1 up ifconfig tap2 up brctl addif 桥接tap1 brctl addif 桥接tap2 qemu-kvm -net nic,macaddr=52:54:00:11:22:33 -net tap,ifname=tap1 disk1.img qemu-kvm -net nic,macaddr=52:54:00:44:55:66 -net tap,ifname=tap2 disk2.img
启动后,我给第一台机器的 IP 地址为 192.168.100.5,第二台为 192.168.100.10。
此时,当我尝试从另一个虚拟机 ping 一个虚拟机时,没有 ping 响应。但是,使用 Wireshark,我看到 ARP 请求被发送和响应,并且我验证了 ARP 缓存确实包含有关其他 VM 的信息。然而没有生成 ping 回复(如通过 Wireshark 看到的)。
接下来,我尝试给网桥一个 IP 地址 192.168.100.1。执行此操作后,VM 之间的 ping 工作正常,但仍然存在问题:现在所有请求似乎都来自网桥本身。例如,如果我从一台 VM 连接到另一台的 FTP 服务器,在带有 FTP 服务器的 VM 上运行 netstat 会显示 192.168.100.1 …
我有以下设置:
client(s) <---> (eth0) router (eth1) <---> wan
Run Code Online (Sandbox Code Playgroud)
我有一个静态 IPv4 地址和一个 /48 IPv6 地址块。我需要将所有客户端连接到 (wan)。每个客户端都将拥有自己的公共 IPv6。同时,我需要将这些相同的客户端 NAT 到 (wan)。
所有与 IPv4 相关的内容和 NAT 都运行良好。与 (eth0)<->(clients)> 的 IPv6 通信工作正常,来自 (eth1)<->(wan) 的 IPv6 通信工作正常。
为了给我所有的客户提供 IPv6,我想了太多的选择:
将路由器作为网关,每个接口上都有不同的IP。这听起来像是我需要告诉我的 ISP 通过该单个 IP 路由整个块,所以这不是一个真正的选择。
向/从 eth0<->eth1 透明地传递 IPv6 数据包,因此所有客户端都可以与上游网关通信(如果不是需要保持 IPv4 兼容,我实际上会在这里有一个交换机)。
所以,既然我选择了第二个选择,我有疑问:如何透明地将所有 IPv6 流量从 eth0 传递到 eth1?我需要的是一个 3 级桥,但是 linux 的 bridgeutils 创建了一个 2 级桥(它也可以桥接 ipv4,我不能拥有它)。
这是一个 DD-WRT 设备,但它几乎是一个嵌入式 linux,因此欢迎大多数适用于 linux 的建议。
谢谢。
我有一台 linux 机器作为客户端和服务器之间的桥梁;
brctl addbr0
brctl addif br0 eth1
brctl addif br0 eth2
ifconfig eth1 0.0.0.0
ifconfig eth2 0.0.0.0
ip link set br0 up
Run Code Online (Sandbox Code Playgroud)
我还有一个应用程序正在监听这台机器的 8080 端口。是否可以将发往端口 80 的流量传递给我的应用程序?我做了一些研究,看起来可以使用ebtablesand来完成iptables。
这是我的其余设置:
//set the ebtables to pass this traffic up to ip for processing; DROP on the broute table should do this
ebtables -t broute -A BROUTING -p ipv4 --ip-proto tcp --ip-dport 80 -j redirect --redirect-target DROP
//set iptables to forward this traffic to my app listening on …Run Code Online (Sandbox Code Playgroud) 我在分组时在 vlan 上创建网桥时遇到问题。为什么我会做这样的事情?- Kvm 需要网桥 - Vlans 因为我需要不同子网中的 vm - 在选项 active-backup 中分组(小型 HA)
我在 centos 7 x64 上使用 NetworkManager 进行操作。两个物理接口:
TYPE=Ethernet
DEFROUTE=no
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
IPV6_FAILURE_FATAL=no
NAME=enp8s0f0
UUID=311d4881-f3f1-45af-b01f-b48872b00b0f
ONBOOT=yes
TYPE=Ethernet
DEFROUTE=no
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
IPV6_FAILURE_FATAL=no
NAME=enp8s0f1
UUID=eb43a315-b9e7-42fb-ab52-97e09a162825
ONBOOT=yes
Run Code Online (Sandbox Code Playgroud)
我的步骤:
nmcli con add con-name team0 ifname team0 type team config '{"runner": {"name": "activebackup"}}'
nmcli con add con-name team0-port1 ifname enp8s0f0 type team-slave master team0
nmcli con add con-name team0-port2 ifname …Run Code Online (Sandbox Code Playgroud) 首先,我有一个特殊的 IPv6 地址分配给我的专用服务器,只有 1。一个 ::1/128 一个。但我可以为 eth0 分配地址(例如:::2/128、::3/128 等)。
现在我想在该服务器上运行 LXC 容器,但我希望它们成为一等公民,我希望它们拥有自己的 IPv6 地址。
带有 IPv4 的 LXC 工作正常。我可以启动一个容器,并从中 ping 世界。我有一个名为lxcbr0.
老实说,我不知道如何继续。在我的特定 LXC 配置中(“前缀”代表我分配的前缀):
lxc.network.ipv6 = prefix::3/128
lxc.network.ipv6.gateway = prefix::2 # iffy, not sure this is correct
Run Code Online (Sandbox Code Playgroud)
在主机上,我已将 sysctl 配置为使用转发:
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.eth0.forwarding = 1
Run Code Online (Sandbox Code Playgroud)
现在我迷失了方向。我想我需要为网桥分配一个 IP。我已经为它分配了前缀::2/128,这是我在上面的 LXC 配置中使用的。在“界面”中:
iface lxcbr0 inet6 static
address prefix::2
netmask 128
# use arp proxy? Read that somewhere.
post-up /sbin/ip -6 neigh add proxy prefix::3 dev eth0 …Run Code Online (Sandbox Code Playgroud) 我使用 docker 命令创建了一个用户定义的网桥:
docker network create --driver bridge mynetwork
Run Code Online (Sandbox Code Playgroud)
此命令导致创建了一个网桥,如下所示netstat -i:
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
br-000f1 1500 0 0 0 0 0 0 0 0 BMRU
Run Code Online (Sandbox Code Playgroud)
与我之前信任docker0网桥的方式相同,我需要将此新网桥添加到我的防火墙信任区域:
firewall-cmd --permanent --zone=trusted --add-interface=Docker0
Run Code Online (Sandbox Code Playgroud)
我看不到推断或指定网桥设备名称的方法,因此我不确定如何以自动方式将其添加到我的信任区域。
我将不胜感激任何帮助。