web-dev-qa-db-fra.com

Tunnel transparent entre les interfaces sur des hôtes distants

Je dois faire une solution qui fonctionnera comme un commutateur réseau avec deux ports: un port situé dans un pays et le deuxième port se trouve dans un autre pays.

              +------------ Virtual switch ----------------+
+---------+   |   +-------+    +----------+    +-------+   |   +--------+
|Client A |<--+-->| BOX 1 |<-->|VPN server|<-->| BOX 2 |<--+-->|Client B|
+---------+   |   +-------+    +----------+    +-------+   |   +--------+
              +--------------------------------------------+

Le client A et le client B devraient le sentir comme un commutateur de couche 2 habituel. La connexion VPN entre deux cases est openvpn. Donc, j'ai besoin de transmettre des cadres Ethernet en quelque sorte sur le tunnel VPN entre deux boîtes. Encadré 1 et 2 exécutant Debian Jessie. J'espère de ne pas écrire mon propre logiciel pour cela :) Peut-on suggérer des solutions possibles?

P.s. Il est nécessaire de connecter deux pièces de matériel conçues pour fonctionner seulement dans le réseau local.

PD : J'ai installé 4 VMS pour simuler une telle configuration (VPNServer a été omise):
[.____] - Toutes les machines sont des boîtes debian
[.____] - la case 1 et la case 2 ont un tunnel de prise GRE entre eux (Ethernet sur IP)
[.____] - sur le client Une interface locale pontée avec une interface GRETAP: le pont a une adresse 10.0.0.253
[.____] - sur le client B Interface locale Ponté avec interface GRETAP: Le pont a une adresse 10.0.0.254
[.____] - client A a Statique IP 192.168.1.1
[.____] - le client B a une IP statique 192.168.1.2

Du client A, j'envoie une demande d'écho ICMP au 192.168.1.2 et je peux voir la demande ARP "Qui a 192.168.1.2 Tell 192.168.1.1" sur Pont sur la case 1, sur le pont sur la case 2 et sur le client B. -mais Réponse ARP est visible uniquement sur le client B. Donc, la réponse ARP ne revenait pas à Box2. Et tous les réseaux entre 10.0.0.253 et 10.0.0.254 fonctionnent bien. Donc, je suppose que ce problème causé par le pontage.

pd2 : Maintenant, j'ai retiré GRE Tap Tunneling et établi réseau régulier entre la case 1 et la case 2. Lorsque j'ai créé des ponts, Ping a commencé à travailler. Qu'est-ce qui pourrait causer un problème lorsque vous faites un tunnel GRE?

Solution : J'ai finalement tout configuré dans VMS avec GRE-TAP. J'ai utilisé un tunnel GRE-TAP sur un réseau régulier entre la case 1 et la boîte 2., puis j'ai ponté une interface tunneling avec interfaceC local sur chaque boîte. Vous trouverez ci-dessous mes étapes:

encadré 1

ip link add tunnel0 type gretap remote 192.168.0.2 local 192.168.0.1
brctl addbr br0
brctl addif br0 eth2  # eth2 - is a local interface on Box 1
brctl addif br0 tunnel
ip addr add 10.0.0.253 dev tunnel0
ip link set br0 up
ip link set tunnel0 up

encadré 2

ip link add tunnel0 type gretap remote 192.168.0.1 local 192.168.0.2
brctl addbr br0
brctl addif br0 eth2  # eth2 - is a local interface on Box 2
brctl addif br0 tunnel
ip addr add 10.0.0.254 dev tunnel0
ip link set br0 up
ip link set tunnel0 up

Merci à tous!

4
victor_crimea

Ce n'est pas très difficile, car tout ce que vous demandez est que tout le trafic L2 puisse passer d'un réseau à un autre, ce qui est une caractéristique standard de la connexion A Ponté OpenVPN . Cela signifie que:

  1. soit vous configurez le serveur OpenVPN (et les deux clients) pour configurer une connexion openvpn pontée (et rappelez-vous d'autoriser les connexions du client à un autre client via Client-to-Client Instruction dans la configuration du serveur fichier), ...

  2. ou vous supprimez avec l'intermédiaire et connectez directement Box1 et Box2, comme indiqué par exemple ici ou ici .

Dans , soit , vous devez travailler sur le DHCP et le routage dans les deux Lans, car les deux doit appartient au même domaine de diffusion. Par exemple, nous pouvons décider que le sous-réseau que nous utilisons est 192.168.0.0/23, avec le serveur DHCP sur les adresses Dishing de LAN1 dans la plage 192.168.0.0/24 et le serveur DHCP sur les adresses DISTRIFIER LAN2 dans la plage 192.168.1.0/24.

Ensuite, vous devez ajuster les itinéraires. Supposons Box1 est un PC dans LAN1 avec l'adresse 192.168.0.121 et Box2 est un PC dans LAN2 avec adresse IP 192.168.1.173. Ensuite, sur la passerelle de LAN1, vous devez ajouter la route:

ip route add 192.168.1.0/24 via 192.168.0.121 

alors que sur la passerelle de LAN2, vous devez ajouter:

ip route add 192.168.0.0/24 via 192.168.1.173

Cela génère une certaine quantité de trafic L2 intra-site, que vous pourriez trouver gênant. J'ai une configuration à trois sites comme celle-ci, et je n'ai aucun problème avec la quantité de trafic et de connexions de 100 Mo, mais YMMV. Si vous souhaitez limiter la quantité de trafic L2 traversant le OpenVPN, vous pouvez utiliser EBTABLES sur Box1 et Box2.

C'est la seule façon dont je sais de réaliser ce que vous avez demandé.

1
MariusMatutiae