制作一些虚拟MAC地址


10

我想为我的网络适配器或无线适配器创建一些虚拟MAC地址,以便可以从一台计算机或便携式计算机使用多个IP地址连接到网络。

我该怎么做?(我知道这是有可能的,因为我的一位朋友在大学里就做到了,并且在网络上拥有多个IP地址(有时多达255个))。


您必须指定要使用的操作系统,以及最终的分布。
andcoz

@ Moein7tl请注意,如果sysadmin减少每个用户的带宽,则可能是为了避免人们非法下载,并为更重要的流量(如搜索数据或云计算)赋予更高的优先级...尽量不要利用系统的限制来得到一个体面的bandwiidth。
2014年

Answers:


18

您需要做的就是

ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan

然后打开虚拟网络接口

ifconfig eth0.1 up

然后有选择地通过dhcp获取一个IP

dhclient -v eth0.1

13

您不需要一个以上的MAC地址即可在单个网络接口上具有多个IP地址。此技术称为ip别名

每个操作系统的语法略有不同,但是通常情况下,要在同一接口上设置不同的IP地址,只需执行以下操作:

ifconfig eth0 192.168.100.200 netmask 255.255.255.0
ifconfig eth0:1 192.168.120.200 netmask 255.255.255.0
ifconfig eth0:2 192.168.130.200 netmask 255.255.255.0

上面的示例在Linux上有效。在BSD上,您需要以下内容:

ifconfig lnc0 192.168.100.200 netmask 255.255.255.0
ifconfig lnc0 192.168.120.200 netmask 255.255.255.0 alias
ifconfig lnc0 192.168.130.200 netmask 255.255.255.0 alias

在我们大学的无线网络中,系统从上午8点到晚上9点为每个mac地址分配一个ip地址,并且系统将每个ip的最大速度限制为32KB,如果我可以创建虚拟mac地址,则它无法检测到我的笔记本电脑作为一个,它将为我提供多个IP地址。
Moein Hosseini 2011年

请@ Moein7tl,编辑您的问题,并指定您正在搜索一种方法,以使您的大学dhcp服务器分配多个IP地址。
andcoz 2011年

4

编辑:添加提示以设置虚拟设备:

首先设置其他设备,例如:

ifconfig eth0:1 up

您可能还会向其中添加IP。例如:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

如果确实需要,还可以更改MAC地址:

ip link set eth0:1 address 02:73:53:00:ca:fe

请注意,必须将第一个字节的第二位设置为用信号发送本地管理地址(LAA),这表示此MAC地址仅在本地有效(例如,在您的企业网络内),并且可能在世界范围内不是唯一的(因此您可以分配自己的MAC地址,而无需进行正式注册)。


但是当我用它连接到我的家庭无线网络时,它只能更改mac地址,而我的调制解调器却没有给我2个或更多的IP地址。我在调制解调器页面上仅看到一个mac地址。
Moein Hosseini 2011年

当然,您需要首先设置其他虚拟设备。这就是为什么我说“也”。查看概述IP锯齿的问题的答案。我更喜欢为这些使用255.255.255.255的网络掩码。但是您并没有要求提供虚拟IP,有时足以让一个设备启动并运行带有MAC的设备。
尼尔斯

1
据我所知,您不能为“ eth0eth0:1” 使用不同的MAC地址。假设您按照说明进行创建eth0:1。可以肯定的是,我在系统上进行了测试。最后一个命令(ip link ...)更改了两个“接口”的MAC地址。这意味着eth0自身也已经获得了新的MAC地址。原因是,这ifconfig eth0:1 up将不会创建新的链接。它只会将IP地址添加到现有IP地址。创建macvlan链接似乎是要走的路。
JojOatXGME'2

3

这在Linux(Kali)上对我有用。您可能需要根据个人情况更改地址,网关或网络掩码。抱歉,如果您不需要它,那么就像我刚才所做的那样,下一个人还是会跌倒在这里。

哪里<your-nicN>是你从看到ifconfigeth0wlan0

sudo ip link add link <your-nicN> mac0 type macvlan && sudo ifconfig mac0 up

这将创建一个新的名为mac0的“虚拟”接口,并将其启动。我添加了up命令,因为首先我以为这是行不通的,但是sudo ip link show [tab][tab]再加上一个带有包含mac0的列表的双标签,然后我继续使用ifconfig为其分配地址。

只要记住为它分配一个IP地址或告诉它使用dhcp

ifconfig mac0 inet 192.168.1.107 netmask 255.255.255.0 #static/manual config

要么

dhclient mac0 # For a dhcp-client, to get ip from router.

如果您需要分配默认网关:

sudo ip route add default via 192.168.1.1 

我从中获得这些信息的地方是:http : //www.pocketnix.org/posts/Linux%20Networking :% 20MAC%20VLANs%20and%20Virtual%20Ethernets

Edit3:我尝试弄乱“ bond”,ifenslave但是我需要对此做更多的研究,我无法真正弄清楚。尽管我做了什么,但是在GNS3中设置了“ EtherSwitch Router”,然后macN在一个“端”上将十个设备分配给一个“云”,然后将另一个“云”分配给了仅适用于vmware主机的适配器,因此,virtualbox的工作原理可能相同,在另一“端”,我将对此稍作讨论,看看是否可以限制macN设备的速度以模拟“聚合”,或者是否可以将负载分布在十个连接上以实现“增加”带宽。也许如果我在Linux上将它们全部设置为txqueuelen:10。我的另一端有DragonflyBSD,我将尝试通过GNS3将其连接到我的真实路由器。

Edit2:这是一个快速脚本,可以通过dhclient获取所需的内容。它需要以根用户身份运行。因此,创建文件,然后如果可以/可以chmod 750 <script>运行它sudo。我这样使用它:./crazy-mac.sh 20它接受第一个参数,并创建许多新接口,每个接口都有自己的mac和ip地址。没有健全性检查,因此请明智地使用它,或者自己添加一些;)

注意:请确保先连接普通的wlan0,否则将无法正常工作。 如何手动连接到无线ap 如果路由器上是Mac访问控制列表,则可能需要做一些嗅探才能获得路由器接受的mac地址列表。然后,您将需要编辑脚本以解析具有该列表的文件,$i并对序列中的每个文件使用一行,而不是允许它创建随机的mac地址。

注意2:您可能希望将a sleep <N>放入循环中的某个位置,这将顺序地启动许多“设备”,并且如果有人关注网络,则可能会引发一些危险信号。我认为在正常情况下不会弹出20种这样的设备。

#!/bin/sh
## crazy-mac.sh
for i in $(seq ${1}); do
    ip link add link wlan0 mac${i} type macvlan && \
    ifconfig mac${i} up && \
    dhclient mac${i};
done

并降低它们:再次只是一个快速脚本...

#!/bin/sh
## crazy-down.sh
for i in $(seq ${1}); do
    ifconfig mac${i} down && \
    ip link delete mac${i};
done

而且,如果您需要一个mac地址列表,则当文件是文件中每行一个mac地址的列表时,这可以与bash一起使用。

#!/bin/bash
## crazy-mac2.sh
## Usage : crazy-mac2.sh <N> </path/to/mac-list.txt>
MACLIST=($(cat ${2}))

# This is for testing, comment this and uncomment out the other for loop
# if this one works the other should also.
for i in $(seq ${1}); do
    echo "mac${i} :  ${MACLIST[${i}-1]}"; done

#for i in $(seq ${1}); do
#    ip link add link wlan0 mac${i} address ${MACLIST[${i}-1]} type macvlan && \
#    ifconfig mac${i} up && \
#    dhclient mac${i};
#done

unset MACLIST

编辑:我只是在阅读“ lagg”设备(至少对于unix),该设备可用于将多个接口聚合到单个“ lagg”接口中,以提高性能或提供回退功能,无论出于何种原因而造成故障。

我只是在考虑在每个mac地址的带宽受到限制的情况下如何用,它可能可以在这种情况下使用,以便您可以使用所有许多虚拟macN接口并将带宽聚合到一个单个接口,然后将其调整/点击至虚拟主机或其他内容。这对我来说很有趣,我将尝试为每个mac地址在我的个人wifi上设置带宽限制,以重新创建场景并尝试再次返回。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.