虚拟主机上的桥接

虚拟主机上的桥接

几年前,我在 RHEL 7 上设置了一个虚拟主机,有 2 个网卡与 2 个不同的 LAN 通信。我使用了brctl、等的某种组合ifconfig。主机的两个 LAN 上都有来宾。 LAN1 上的访客和外部主机应该能够连接到主机。但是,LAN2 上的任何人都没有理由连接到主机。从主机到 LAN2 的所有流量都应经过外部交换机和防火墙。

------  x.x.1.17   LAN1   x.x.1.1----
host |___________________________| switch
     |             LAN2   x.x.2.1|
     |___________________________|
------                           ---
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.3448edf46b6c       no              em1
br2             8000.3448edf46b6e       no              em3
# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 172.16.3.14  netmask 255.255.255.0  broadcast 172.16.3.255
ether 34:48:ed:f4:6b:6c  txqueuelen 1000  (Ethernet)
# ifconfig br2
br2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 34:48:ed:f4:6b:6e  txqueuelen 1000  (Ethernet)
# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.16.3.24              ether   52:54:00:91:66:93   C                     br0
172.16.3.16              ether   52:54:00:48:3d:2b   C                     br0
169.254.16.161                   (incomplete)                              br0
172.16.3.21              ether   52:54:00:1d:a4:c7   C                     br0
169.254.208.171                  (incomplete)                              br0
172.16.3.1               ether   00:0e:da:b6:f9:bd   C                     br0
172.16.3.17              ether   00:25:90:d9:c5:b1   C                     br0
172.16.3.15              ether   52:54:00:a2:b6:c0   C                     br0
169.254.239.170                  (incomplete)                              br0
traceroute to 172.16.2.3 (172.16.2.3), 30 hops max, 60 byte packets
1  gw-gr (172.16.3.1)  0.903 ms  0.833 ms  0.771 ms
2  huginn (172.16.2.3)  1.636 ms  1.611 ms  1.579 ms

我正在尝试将来宾移动到 RHEL 8 上的虚拟主机,因为 7 即将停产。我配置了 LAN1 网桥和网卡。如果没有为网桥分配 IP,主机就无法访问 LAN2 网桥和网卡。而且,如果我这样做,从主机到 LAN2 的流量将绕过交换机/防火墙并直接从第二个网卡到达 LAN2。

# nmcli con add type bridge con-name dmz ifname br1
# nmcli con add type ethrnet slave-type bridge con-name enp7s0 ifname enp7s0 master dmz
# nmcli con add type ethernet slave-type bridge con-name enp7s0 ifname enp7s0 master dmz
# nmcli connection up dmz
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/155)
# nmcli connection show
NAME    UUID                                  TYPE      DEVICE
dmz     21130c23-08ff-4737-b485-b2d51e75e2fb  bridge    br1
br0     1c4bda58-a889-44de-9ae4-815dbac5a31d  bridge    br0
eno1    6d58a4e3-486e-44b3-aa7d-485b75aa50af  ethernet  eno1
enp7s0  64225181-c3eb-4acd-bc0c-25b32ae244ac  ethernet  enp7s0
# nmcli device status
DEVICE  TYPE      STATE                                  CONNECTION
br0     bridge    connected                              br0
eno1    ethernet  connected                              eno1
enp7s0  ethernet  connected                              enp7s0
br1     bridge    connecting (getting IP configuration)  dmz

我认为第二个网卡需要置于混杂模式。但是,我不知道如何使用nmclior来做到这一点firewall-cmd

答案1

以下命令将为虚拟访客设置一个网桥,而无需为该网桥分配 IP 地址。

# nmcli con add type bridge con-name dmz ifname br1
# nmcli con add type ethernet slave-type bridge con-name lan2 ifname enp7s0 master br1
# nmcli con modify dmz ipv4.method disabled
# nmcli con modify dmz ipv6.method disable
# nmcli con modify dmz 802-3-ethernet.accept-all-mac-addresses true
# firewall-cmd --permanent --zone=dmz --change-interface=enp7s0
# firewall-cmd --permanent --zone=dmz --change-interface=dmz

相关内容