我正在尝试在不同的 VLAN 中设置蜜罐服务器。我工作的公司有 3 个 VLAN:10、20、30。我的目标是使用 Raspberry Pi 在每个 VLAN 中托管一个简单的蜜罐和广播嗅探器(用于 ARP 和 DHCP)。
我通过中继连接到主交换机,对于每个 VLAN,我认为我需要一个能够在其中进行通信的虚拟接口:
VLAN 10:192.168.1.0/24(我希望这里有 192.168.1.100) VLAN 20:192.168.2.0/24(我希望这里有 192.168.2.100) VLAN 30:192.168.60.0/24(我希望这里有 192.168) .60.100 此处)
据我所知,我可以使用 eth0:1、eth0:2 和 eth0:3,并为每个设备分配基本的 IP 信息。这行得通吗?
答案1
对于这种“简单”情况(即不涉及网桥和网桥端口、重叠 VLAN 或任何其他奇特的设置),您只需使用默认设置创建三个 vlan 子接口。完成后,您现在可以像往常一样认为您拥有三个接口,而无需考虑物理接口或 VLAN。默认设置只会在每个接口上自动标记和取消标记单个 vlan id。这些接口的一种命名约定是在基本接口名称后面添加 vlan id,中间加一个点。
ip link add eth0.10 link eth0 type vlan id 10
ip link add eth0.20 link eth0 type vlan id 20
ip link add eth0.30 link eth0 type vlan id 30
ip link set eth0 up
ip link set eth0.10 up
ip link set eth0.20 up
ip link set eth0.30 up
就是这样。现在,您可以像往常一样配置它们,就好像它们是基本以太网接口一样,而无需再考虑 VLAN。请忘记ifconfig
哪个已经过时了 10 年并改用ip ...
它。的使用:
是此内容的剩余部分,用于ifconfig
在同一接口上设置其他 IP,而不是用于添加其他接口。
ip address add dev eth0.10 192.168.1.100/24
ip address add dev eth0.20 192.168.2.100/24
ip address add dev eth0.30 192.168.60.100/24
例如,现在tcpdump
将显示ethertype 802.1Q
上的帧eth0
,但仅显示通常(例如)ethertype ARP
或ethertype IPv4
上的帧eth0.10
:内核处理 vlan 子接口的自动标记/取消标记。避免使用 DHCP 等特殊网络工具直接侦听eth0
,有些工具可能会与标记混淆。
您可能遇到的任何问题都不是由 VLAN 引起的,而是由路由引起的:您不能指望像这样的多宿主设置能够在没有策略路由的情况下自由使用其任何 IP 到任何地方。只要您不尝试拥有多个默认网关或使用两条不同的路径到达同一目的地,就不需要策略路由。
您应该考虑使用系统设置来创建和配置这些接口,而不是手动配置接口。例如 Debian 的ifupdown
的VLAN 扩展选项, 或者NetworkManager
两者都可以创建和配置这些接口。
此外,正如 Rui F Ribeiro 所评论的那样,您应该使用能够应对流量的硬件,而 RPi 可能还不够。