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) 
  • Equilibrage de charge avec plusieurs passerelles
  • Impossible de parcourir Internet sur Mac OS X
  • Comment jouer au PC Media sur TV via DLNA
  • BIND9 ne peut pas résoudre le domaine local
  • Détecter les conflits IP sur le réseau
  • Serveur DNS local
  • Comment désactiver la configuration automatique sur IPv6 dans Linux?
  • Faire mon hôte local être accessible via DNS et non par IP
  • Référence des ordinateurs par leur nom entre les systèmes d'exploitation OS X et Windows
  • Comment atténuer BufferBloat sur une connexion ADSL?
  • DNSSEC - Logiciel client
  • Soyons le génie de l'ordinateur et du réseau.