Bon, alors je me lance mais ça rique d’être long.
Je ne sais pas trop par où commencer pour expliquer ma totale incompréhension des interfaces réseau sous linux. Entre tap(x)/tn(x)
, eth(x)
et br(x)
je ne vois vraiment pas qui fait quoi ni pourquoi. Je suis en train de faire des essais sur un réseau interne 192.168.0/24
. Le serveur (sans openvpn
) a un interfaces classique avec une ip statique.
auto lo eth0
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.158
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Ce qui donne comme interfaces:
eth0 Lien encap:Ethernet HWaddr 00:0C:F1:CA:05:93
inet adr:192.168.0.158 Bcast:192.168.0.255 Masque:255.255.255.0
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
Je lance l’openVPN avec la config du sample-config-files
d’openvpn
:
port 1194
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3
et j’obtiens:
eth0 Lien encap:Ethernet HWaddr 00:0C:F1:CA:05:93
inet adr:192.168.0.158 Bcast:192.168.0.255 Masque:255.255.255.0
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
tap0 Lien encap:Ethernet HWaddr 5A:D7:43:F7:9A:4D
inet adr:10.8.0.1 Bcast:10.8.0.255 Masque:255.255.255.0
Avec une table de routage:
Destination Passerelle Genmask Indic Metric Ref Use Iface
10.8.0.0 * 255.255.255.0 U 0 0 0 tap0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Depuis un client openvpn
, je parviens à pinger 10.8.0.1
Je suppose que le tunnel VPN fonctionne donc.
Maintenant en mode bridge. Configuration bridge de Mat avec les variantes de fran.b là, c’est un peu le b…
Dans le server.conf
j’ai mis
server-bridge 192.168.0.158 255.255.255.0 192.168.0.151 192.168.0.250
où
(...158
est l’ip statique de mon serveur) et modifié mon fichier interfaces et ajouté les scripts ovup
et ovdown
en ajoutant juste une ligne
gateway (192.168.0.1)
dans interfaces
:
port 1194
proto udp
dev tap0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 192.168.0.158 255.255.255.0 192.168.0.151 192.168.0.250
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 5
auto lo br0
iface lo inet loopback
# Fichier interfaces
iface br0 inet static
address 192.168.0.158
netmask 255.255.255.0
gateway 192.168.0.1
broadcast 192.168.0.255
bridge-ports eth0
post-up /etc/openvpn/scripts/ovup && /etc/init.d/openvpn start
pre-down /etc/init.d/openvpn stop
post-down /etc/openvpn/scripts/ovdown
# script ovup
#!/bin/sh
openvpn --mktun --dev tap0
brctl addif br0 tap0
ifconfig eth0 promisc up
ifconfig tap0 promisc up
ifconfig br0 192.168.0.158 netmask 255.255.255.0 broadcast 192.168.0.255
Après lancement, Ifconfig du serveur.
br0 Lien encap:Ethernet HWaddr 00:0C:F1:CA:05:93
inet adr:192.168.0.158 Bcast:192.168.0.255 Masque:255.255.255.0
eth0 Lien encap:Ethernet HWaddr 00:0C:F1:CA:05:93
adr inet6: fe80::20c:f1ff:feca:593/64 Scope:Lien
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
tap0 Lien encap:Ethernet HWaddr 6A:57:0C:C9:21:74
adr inet6: fe80::6857:cff:fec9:2174/64 Scope:Lien
Ici, déjà tap0
et eth0
du serveur n’ont pas d’adresse IP.
Si sur un client linux je lance openvpn client.conf
j’ai le warning suivant:
--remote address [192.168.0.158] conflicts with --ifconfig subnet [192.168.0.151, 255.255.255.0] -- local and remote addresses cannot be inside of the --ifconfig subnet.
et, dans l’ifconfig
du client le tap0
suivant vient s’ajouter:
tap0 Link encap:Ethernet HWaddr 00:ff:a6:11:23:eb
inet adr:192.168.0.151 Bcast:192.168.0.255 Masque:255.255.255.0
Quand je ping 192.168.0.151
ou que je me connecte en ssh
sur cette ip, je reviens sur la machine client dont la table de routage est devenue:
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 tap0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Bref, je me rends compte que j’ai de sérieux efforts à faire pour comprendre les interfaces réseau et ce qui s’en suit… J’y travaille mais, avec votre aide, ça ira plus vite :=)