在 Debian Linux dist 上,我需要两个具有不同 mac 地址的 IP 地址。每个 IP 地址上都有一个服务器在端口 80 上运行。所以我需要这样的东西:
ip: 192.168.2.1 mac: xx:xx:xx:10:xx:xx
ip: 192.168.2.2 mac: xx:xx:xx:90:xx:xx
然后启动两个 http 服务器,每个服务器监听一个 ip 地址。
已经将 eth0 设置到正确的 ip 地址,并且我尝试通过 macvlan 设置虚拟网络适配器:
ip link add link eth0 name vlan0 type macvlan mode private
ip address add 192.168.2.2 dev vlan0
ip link set dev vlan0 address xx:xx:xx:90:xx:xx
ip link set dev vlan0 up
当我输入 URL 192.168.2.2 时,我得到的页面与 192.168.2.1 相同。因此,基本上端口 80 上的所有内容都会路由到该服务器。我还尝试了 macvlan 的所有不同模式,但结果总是相同的。
我做错了什么?使用 macvlan 是否可行,还是我需要采用其他方法?
答案1
嗯,这没什么大不了的,因为您可以通过在单个物理接口上创建虚拟接口轻松地做到这一点。
您可以简单地按照如下方式进行操作:
ifconfig wlan0:if1 <IP> <NM>
ifconfig wlan0:if2 <IP> <NM>
我使用了 ifconfig 但您可以以相同的方式使用 ip link。
或者,您可以按如下方式手动创建接口文件条目:
vi /etc/sysconfig/network-scripts/ifcfg-wlan0
DEVICE=wlan0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-wlan0:1
DEVICE=wlan0:1
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.0
ONBOOT=yes
但是,将相同的子网/IP 分配给虚拟接口并不是最佳做法,我建议使用单独的 vlan,例如 192.168.2.x