1台のコンピュータまたはラップトップから複数のIPアドレスを持つネットワークに接続できるように、ネットワークアダプタまたはワイヤレスアダプタの仮想MACアドレスを作成したいと思います。
どうすればいいですか? (私の友人が大学でこれを行っており、ネットワークに複数のIPアドレス(時には最大255)があったため、これが可能であることを知っています。)
答え1
何をすべきか
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
答え2
単一のネットワークインターフェイスで複数のIPアドレスを持つために複数のMACアドレスは必要ありません。この技術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
答え3
編集:仮想デバイスの設定に関するヒントが追加されました。
次の追加デバイスを設定して起動します。
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
最初のバイトの2番目のビットは、ローカル管理アドレス(LAA)を表すように設定する必要があります。これは、MACアドレスがローカルでのみ(たとえば、会社のネットワーク内で)有効であり、グローバルに一意ではないことを意味します。正式登録なしで自分のMACアドレスを使用できます)。
答え4
これはLinux(Kali)で動作します。個人の状況によっては、アドレス、ゲートウェイ、またはネットマスクを変更する必要があります。申し訳ありません。これが必要でなければ、私はちょうどそれがしたように、次の人がここに落ちるでしょう。
<your-nicN>
ifconfig
「〜のような」または「〜のような」で見えるeth0
ものはどこにありますか?wlan0
sudo ip link add link <your-nicN> mac0 type macvlan && sudo ifconfig mac0 up
これにより、mac0という新しい「仮想」インタフェースが作成され、開きます。私は最初はうまくいかないと思ったので、upコマンドを追加しましたが、mac0リストを持つsudo ip link show [tab][tab]
ダブルタブを追加し、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%20ネットワーキング:%20MAC%20VLANs%20and%20Virtual%20Ethernets
Edit3:「債券」を扱おうとしましたが、ifenslave
これについてさらに調査が必要で、実際にはわかりません。私がしたことは、GNS3で「EtherSwitchルーター」を設定し、一方の「macN
終了」に10個のデバイスの「クラウド」を割り当て、次に別の「クラウド」をvmwareホスト専用アダプターに割り当てることでした。 virtualboxは同じように機能できます。他の「終わり」では、これを少し遊んで「集計」をmacN
シミュレートするためにデバイスの速度を制限できるのか、帯域幅を「増やす」ために10個の接続に負荷を分散できるかを見てみましょう。 。おそらく、Linux上ですべてtxqueuelen:10に設定するとそうかもしれません。反対側の「終わり」にDragonflyBSDがあり、GNS3を介して実際のルーターに接続してみましょう。
Edit2:以下は、dhclientを使用して必要な数量を取得するためのクイックスクリプトです。ルートとして実行する必要があります。したがって、ファイルを生成してchmod 750 <script>
実行します(sudo
可能であれば/必ず)。私はこれを次のように使用します:./crazy-mac.sh 20
最初のパラメータを取り、それぞれ独自のmacアドレスとipアドレスを持つ多くの新しいインターフェイスを作成します。完全な検査はありませんので、賢く使用するか、自分で追加してください。 ;)
注:まず通常のwlan0に接続してください。それ以外の場合は動作しません。
ワイヤレスAPに手動で接続する方法
また、ルーターのMacアクセス制御リストの場合は、ルーターが許可するMacアドレスのリストを取得するためにスニッフィングを実行する必要があります。その後、スクリプトを編集してリストを含むファイルを解析し、任意の$i
MACアドレスを生成できるようにする代わりに、シーケンス内の各ファイルに1行を使用する必要があります。
注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アドレスリストが必要な場合、ファイルがファイルの1行に1つの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」インタフェースに集約するために使用できる「lagg」デバイス(少なくともUnixの場合)について読んだり、何らかの理由で1つのインタフェースが失敗した場合にバックアップを提供します。
Macアドレスあたりの帯域幅が限られている状況では、これがどのように役立つのだろうかと思いました。この場合、機能して多くの仮想MacNインターフェイスをすべてインポートし、帯域幅を単一のインターフェイスに集約して調整できます。 /仮想ホストなどをタップします。これは私にとって面白いです。 MacアドレスごとのプライベートWi-Fiの帯域幅制限を設定してシナリオを再現し、これを試してみます。また戻ってきます。