Erstellen Sie eine virtuelle Netzwerkschnittstelle mit dem iproute2-Befehl „ip link“ mit einer gefälschten MAC-Adresse

Erstellen Sie eine virtuelle Netzwerkschnittstelle mit dem iproute2-Befehl „ip link“ mit einer gefälschten MAC-Adresse

Wie kann ich eine virtuelle Schnittstelle ähnlich dem folgenden ifconfigBefehl erstellen?

$ sudo ifconfig eth1 hw ether 00:01:02:aa:bb:cc  
SIOCSIFHWADDR: No such device  

Das funktioniert nicht. Ich möchte die MAC-Adressen festlegen, um die Konfiguration meines DHCP-Servers zu testen.

Wie würde ich das mit der Suite unter Verwendung des IP-Link-Befehls machen iproute2?

$ sudo ip link add type veth  

Dies funktioniert, weist aber zufällig eine MAC-Adresse zu. Dies ist immer noch nützlich, aber ich möchte meinen dhcpdServer mit einigen bestimmten MAC-Adressen testen, um zu sehen, wie er mit den von mir eingerichteten Klassen umgeht.

Mein aktuelles Setup 1 :

$ ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 60:eb:69:1b:a0:88 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.93/24 brd 172.16.0.255 scope global eth0
    inet6 fe80::62eb:69ff:fe1b:a088/64 scope link 
       valid_lft forever preferred_lft forever
7: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
8: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 3a:50:38:2e:24:c4 brd ff:ff:ff:ff:ff:ff

[1]: Beachten Sie, dass diese Konfiguration nicht das Ergebnis der Ausführung der obigen Befehle ist. Insbesondere ip link add type vethhätte dies zur Erstellung eines Paares geführt veth1@veth2, veth2@veth1das auf diese Weise nummeriert ist, weil veth0existiert.

Antwort1

Ich möchte die MAC-Adressen festlegen, um die Konfiguration meines DHCP-Servers zu testen

Es gibt (mindestens?) zwei Möglichkeiten, wie Sie dies erreichen können unter.

Die einfachste und unkomplizierteste,aber sehr riskanter Wegist die Änderung derder physischen Schnittstelle. Dies zu tun,Sie müssen die Schnittstelle ablegenes ist also nicht der sicherste Weg, und sicherlich einsehr riskanter Weg, wenn man aus der Ferne operiert! Wenn Sie physischen Zugriff auf den Host oder Ähnliches haben, kann dies eine Option sein.

Der sicherere Weg ist die Definition einesLink auf Ihrer physischen Schnittstelle mit der richtigen Mac-Adresse. Sie können diese Mac-Adresse jederzeit mit einem ähnlichen Befehl ändern wie dem, den Sie zum Ändern der Mac-Adresse Ihrer physischen Schnittstelle verwenden würden. Dies ist praktisch, um beispielsweise mehrere IP/MAC-Paare zu testen, ohne viele Schnittstellen erstellen/löschen zu müssen.

Ich sage „sicherer“, weil Sie je nach den Sicherheitsmaßnahmen in Ihrem Netzwerk auch das Risiko haben, Ihre Verbindung mit einer MacVLAN-Verbindung zu verlieren, wenn Ihr Netzwerk beispielsweise die Verwendung einer anderen Mac-Adresse auf Ihrer physischen Verbindung verbietet. In einigen Fällen könnte das Netzwerkgerät, mit dem Ihr Host verbunden ist, der Meinung sein, dass Sie die Sicherheit beeinträchtigen, und die Verbindung unterbrechen.

Für die folgenden Befehle benötigen Sie denDienstprogramme unter Linux.

BITTE LESEN SIE DEN OBEN STEHENDEN TEXT, BEVOR SIE DIE FOLGENDEN BEFEHLE AUF REMOTE-HOSTS VERWENDEN!

Um einen Macvlan-Link hinzuzufügen, können Sie Folgendes verwenden:

ip link add link eth0 type macvlan

Die Schnittstelle wird so benannt, macvlanXdass Xdie erste Zahl steht, als ob keine Schnittstelle mit diesem Namen existiert.

Sie können die Schnittstelle (zum vif0Beispiel) bei der Erstellung mit etwas wie Folgendem benennen:

ip link add name vif0 link eth0 type macvlan

um eine Schnittstelle mit dem Namen zu haben vif0.

Sobald Sie über die Schnittstelle verfügen, können Sie ihre MAC-Adresse beispielsweise wie folgt ändern 00:11:22:33:44:55:

ip link set address 00:11:22:33:44:55 dev macvlan0

Mit demselben Befehl können Sie die MAC-Adresse anderer Schnittstellen ändern. Mit diesem Befehl können Sie die MAC-Adresse Ihrer physischen Verbindung ändern.

Natürlich können Sie den Macvlan-Link hinzufügen und seine Adresse auf einmal festlegen:

ip link add name vif0 address 00:11:22:33:44:55 link eth0 type macvlan

Vergessen Sie nicht, die Schnittstelle einzurichten, sobald die Mac-Adresse konfiguriert ist. Mit der Schnittstelle namens vif0:

ip link set dev vif0 up

Beachten Sie, dass einige Teile dieser Befehle Optionen sind und in unterschiedlicher Reihenfolge eingegeben werden können, andere sind Teil der Syntax und müssen an der richtigen Stelle eingegeben werden. Darüber hinaus können einige Teile weggelassen werden, sofern dies die Bedeutung nicht beeinträchtigt 1 . Im obigen Befehl kann beispielsweise devweggelassen werden.

Der standardmäßig erstellte Macvlan-Typ ist VEPA, der die direkte Kommunikation zwischen der physischen und virtuellen Schnittstelle verhindert. Er sollte für diesen Anwendungsfall geeignet sein. Andere Modi sind verfügbar, siehedas Kapitel über MacVLAN in diesem RedHat „Einführung in Linux-Schnittstellen für virtuelle Netzwerke“.

Hoffe, es hilft ... ... jemand anderem, der hier vorbeikommt.


1: es kann nicht weggelassen werden, wenn Sie devbeispielsweise die (sehr) schlechte Idee hatten, eine Schnittstelle zu benennen.

Antwort2

Hast du es versucht...

ip link add type veth addr 00:01:02:aa:bb:cc

oder

ip link set dev veth0 addr 00:01:02:aa:bb:cc

Antwort3

Erstellen Sie eine VLAN-Schnittstelle: IP-Link, Name ${VLAN-Schnittstellenname}, Link ${Name der übergeordneten Schnittstelle}, Typ VLAN-ID ${Tag}. Beispiele: IP-Link, Name eth0.110, Link eth0, Typ VLAN-ID 110.

http://baturin.org/docs/iproute2/#Create%20a%20VLAN%20interface

verwandte Informationen