Comme le dit la question, j'aimerais configurer un serveur OpenVPN en utilisant le mode TAP afin de faciliter la lecture en continu des fonctionnalités de streaming intégrées à Steam depuis un ordinateur de jeu Windows 7 vers un ordinateur portable Ubuntu 14.04 situé à l'extérieur, au travail ou à l'école. Cela permettrait à un utilisateur Ubuntu de se connecter à son compte Steam sur leurs machines Windows et de diffuser des jeux non-Linux sur leur matériel Ubuntu!
Voici l’idée générale de ce que je veux accomplir:
********************** Internet ******************* Internet ******** **************
Ordinateur portable Ubuntu (Steam) <---> Serveur Ubuntu OpenVPN <---> Machine Windows (Steam)
Nous voudrons utiliser OpenVPN pour créer un réseau VPN sur le serveur auquel notre client Ubuntu Laptop et Windows peut se connecter. Nous devons utiliser TAP pour transférer les données de trame Ethernet complètes, car le service de diffusion en continu à domicile de Steam ne fonctionne pas bien avec les tunnels IP (TUN). Une fois que les deux ordinateurs sont connectés au VPN, ils commenceront à diffuser que leurs bibliothèques sont disponibles pour la diffusion en continu.
Topographie actuelle du réseau:
Ecole/travail Ordinateur portable Ubuntu 14.04
nom d'hôte chimaera-linux
IP dynamique Internet (ipv4)
adresse IP locale dynamique (10.1.10.x)
connexion câblée à eth0
Ubuntu 14.04 KVM machine virtuelle exécutant OpenVPN
nom d'hôte cerberus-vm
IP publique statique sur Internet (x.y.145.133) sur eth0 (ipv4, câblé)
pas d'adresse IP locale ni de réseau local
Bureau Windows 7 Pro
nom d'hôte windoze
IP dynamique Internet (ipv4)
adresse IP dynamique locale (192.168.0.x)
connexion câblée à eth0
Conditions requises:
Des pas vers le succès!
Informations de configuration/système pertinentes
Le client VPN ubuntu est configuré via le gestionnaire de réseau conformément aux documents du serveur LTS.
Le client Windows 7 utilise le paquet OpenVPN-gui d’openvpn.net
Peut fournir des fichiers de configuration à la demande. Je n'arrive pas à comprendre comment les coller ici sans qu'ils se fassent royalement baiser, même dans les codes de sélection de code.
Problèmes et mystères
Je n'arrive tout simplement pas à comprendre les routes de vpn ou les commandes "Push" dans server.conf pour openvpn. Je suppose que c'est la principale raison pour laquelle je peux me connecter mais n'arrive pas à générer du trafic entre notre VPN et d'autres clients ou Internet.
J'ai joué avec iptables et masquerading et tout cela en vain. À ce stade, je ne pense pas que ce soit le problème. À l'heure actuelle, iptables n'est pas configuré et accepte tout le trafic.
Je n'ai pas configuré (et n'ai pas besoin?) De pontage ou de paramètres réseau spéciaux sur aucun des clients.
Il s’avère donc qu’une idée aussi simple avec OpenVPN est en réalité BEAUCOUP plus complexe et complexe. Vous pouvez utiliser Steam Streaming si vous utilisez OpenVPN en mode ponté (ce qui, à mon avis, nécessite déjà une configuration de réseau local que vous pouvez utiliser).
Ce que j’ai fini par faire, c’est utiliser Hamachi et mélanger ensemble les instructions trouvées sur http://steamcommunity.com/groups/homestream/discussions/0/540738051890279158/ et https: // help.ubuntu.com/community/Hamachi
La diffusion en continu d'un client Linux à partir d'une machine Windows fonctionne parfaitement.
Je l'ai eu avec OpenVPN (en utilisant TAP) après beaucoup de travail. Pas de chance avec TUN, je pense que cela ne peut pas fonctionner avec TUN car il n’est pas possible d’émettre la diffusion UDP (ce qui apparemment utilise Steam In-home Streaming pour détecter les pairs).
J'exécute le serveur OpenVPN sur mon routeur, un Archer C7 V2 exécutant OpenWRT (Barrier Breaker).
Vous trouverez ci-dessous le fichier de configuration du serveur que j'utilise. Modification est nécessaire, où devrait être clair:
client-to-client
persist-key
persist-tun
tls-server
ca /etc/openvpn/ca.crt
cert /etc/openvpn/erb-router-c7.crt
dev tap_mypvn
dh /etc/openvpn/dh2048.pem
keepalive 10 120
key /etc/openvpn/erb-router-c7.key
log /tmp/openvpn.log
mode server
port 1194
proto udp
route-gateway dhcp
server 10.8.0.0 255.255.255.0
status /var/log/openvpn_status.log
topology subnet
verb 3
Push topology subnet
Push route-gateway dhcp
Push persist-key
Push persist-tun
Voici ma configuration client (La machine hôte sous Windows, une configuration similaire est utilisée sur la machine cliente sous Ubuntu):
client
float
dev tap
proto udp
remote YOUR_HOSTNAME_OR_IP_HERE 1194
log "C:/Program Files/OpenVPN/config/log.txt"
verb 3
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
ca "C:/Program Files/OpenVPN/config/ca.crt"
cert "C:/Program Files/OpenVPN/config/erb-main-7.crt"
key "C:/Program Files/OpenVPN/config/erb-main-7.key"
J'ai tellement fait avec la configuration OpenWRT que je ne suis pas sûr que ce soit tout ce qui est nécessaire pour que quelqu'un réplique mon succès. Mais la version courte, c’est: Utilisez TAP et non TUN, assurez-vous que vos clients VPN peuvent communiquer entre eux en spécifiant le paramètre client-to-client
dans la configuration du serveur. Dans OpenWRT, j'ai également configuré l'interface réseau et le pare-feu comme spécifié dans le wiki OpenWRT pour OpenVPN .
Si vous avez des questions, je ferai de mon mieux pour y répondre.
Modifier, sur demande:
/etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd0f:252f:ed29::/48'
config interface 'lan'
option force_link '1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option _orig_ifname 'eth1 wlan0 wlan1'
option _orig_bridge 'true'
option ifname 'eth1 tap_myvpn'
config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'
config interface 'wan6'
option ifname '@wan'
option proto 'dhcpv6'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0 2 3 4 5'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '1 6'
config interface 'vpn0'
option ifname 'tun0'
option proto 'none'
option auto '1'
La partie sélectionnée dans /etc/config/firewall
ne fournit peut-être pas un contexte complet, mais je ne souhaite pas que tout mon fichier de pare-feu soit connu. S'il vous plaît informez-moi de la redondance éventuelle et des erreurs:
config rule
option name 'Allow-OpenVPN-Inbound'
option target 'ACCEPT'
option src '*'
option proto 'udp'
option dest_port '1194'
config zone
option name 'vpn'
option masq '1'
option input 'ACCEPT'
option forward 'ACCEPT'
option output 'ACCEPT'
option network 'vpn0'
config forwarding
option dest 'lan'
option src 'vpn'
config forwarding
option dest 'wan'
option src 'vpn'
config forwarding
option dest 'vpn'
option src 'lan'