Obtenir 2 adresses IP sur une seule carte réseau, en utilisant DHCP

Donné: un ordinateur exécutant Linux (CentOS 5.x), une carte réseau connectée au commutateur LAN, une seconde au modem câble via un câble croisé. Cet ordinateur agit comme un routeur / pare-feu / analyseur de trafic pour le réseau local.

L'ordinateur obtient son adresse IP publique à partir d'un FAI via DHCP. Je sais que mon fournisseur d'accès peut fournir 2 adresses IP aux clients (lorsque le modem câble est connecté directement à un concentrateur, etc.). J'aimerais avoir 2 adresses IP sur un ordinateur qui est connecté au FAI. Il simplifiera la ségrégation du trafic, la NAT et la mise en forme.

Je sais que je peux probablement "fausser" les demandes DHCP et regrouper des scripts qui feront cela, mais je me demande si quelqu'un connaît une manière plus simple et plus appropriée.

Question: Comment puis-je faire une ordinateur Linux pour demander deux adresses IP via DHCP et les attribuer à une seule carte réseau?

2 Solutions collect form web for “Obtenir 2 adresses IP sur une seule carte réseau, en utilisant DHCP”

Comme une réponse DHCP est basée sur l'adresse MAC de l'interface requérante, avec une seule interface physique, la réponse est "vous ne pouvez pas". La seule façon de le faire serait avec un script.

Peut-être quelque chose comme (avec une sous-interface définie sur le primaire):

  1. L'interface principale émet le DHCP et obtient l'adresse IP
  2. Changement de macros change l'adresse MAC de l'interface
  3. L'interface secondaire émet un DHCP et obtient l'adresse IP
  4. Rétablir l'adresse Mac avec macchanger

Tuez le client dhcp, de sorte qu'il ne s'exécute pas automatiquement. Effectuez le temps de location de l'adresse IP que vous avez fournie et prévoyez que ce script se reproduira avant que le bail expire.

Mettre à jour

Pour cela, vous devez installer iproute2. La commande suivante ajoute une interface virtuelle liée à une interface eth0 existante:

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

Remplacez le nom Mac et "virtual0" de l'interface par ce que vous voulez. Allume ça:

 ip link set virtual0 up 

Ensuite, configurez en utilisant dhcpd ou dhclient ou ifconfig si nécessaire. J'ai testé ceci sur Debian squeeze – votre distro peut ne pas avoir tout le nécessaire activé dans le noyau (macvlan en particulier).

Comme l'a suggéré @JesseChisholm, il est beaucoup plus facile de demander la bonne chose au serveur DHCP au lieu de créer des configurations de réseau complexes.

Pour OpenWRT, je pourrais simplement exécuter:

  # udhcpc -i eth0:1 -x 0x3d:0100BEEFC0FFEE 

Ce qui a abouti à avoir deux adresses IP du même serveur dhcp.

Le 0x36 est l'option 61 qui est l'option d'identification du client. Après le: il existe une option hexadécimal. Cela est venu de l'option d'aide de udhcpc:

  # udhcp --help BusyBox v1.22.1 (2014-10-08 16:34:50 HKT) multi-call binary. Usage: udhcpc [-fbqRB] [-t N] [-T SEC] [-A SEC/-n] [-i IFACE] [-s PROG] [-p PIDFILE] [-oC] [-r IP] [-V VENDOR] [-F NAME] [-x OPT:VAL]... [-O OPT]... ... -x OPT:VAL Include option OPT in sent packets (cumulative) Examples of string, numeric, and hex byte opts: -x hostname:bbox - option 12 -x lease:3600 - option 51 (lease time) -x 0x3d:0100BEEFC0FFEE - option 61 (client id) 
  • DNSSEC - Logiciel client
  • Qu'est-ce que TCP Half Open Connection et TCP à demi-connexion fermée?
  • Accédez à un Mac via hostname.local à partir d'un PC Windows
  • OpenVPN: comment puis-je attribuer un masque de réseau spécifique aux clients du côté du serveur?
  • Comment puis-je faire en sorte que mes machines à la maison se connectent par nom d'hôte?
  • Iptables NATingwarding setup
  • Exécuter à distance le serveur DNS vers le client via OpenVPN
  • Importance de la priorité dans la commande "règle ip"
  • Ports avancés sur parallèles
  • Que signifient les différentes adresses IP?
  • Dans OS X, comment puis-je préciser 127.0.0.1 sur la liste des serveurs DNS obtenus via DHCP?
  • Soyons le génie de l'ordinateur et du réseau.