Bir OpenVPN tüneli üzerinden belirli bir IP aralığı dışındaki her şeyi yönlendirmek


2

OpenVPN sunucumla bir süredir çalışıyorum ve oldukça ilginç bir sorunum var. Yönlendirmem gerekiyor herşey Tünel üzerinden müşteri trafiği dışında Yerel olarak çözülebilir olması gereken birkaç IP için. Bunu yapmamın yolu bu yolları sunucudan zorlamak:

Sunucu 'PUSH' yönergeleri

 push "redirect-gateway def1 bypass-dhcp" 
 push "dhcp-option DNS 8.8.8.8" 
 push "dhcp-option DNS 8.8.4.4"

Bu Windows yollarına çeviri olduğunu görüyorum:

Oluşan Windows yolları

Wed Aug 31 15:14:35 2011 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route 10.8.0.1,topology net30,ping 5,ping-restart 30,ifconfig 10.8.0.6 10.8.0.5'
Wed Aug 31 15:14:35 2011 ROUTE default_gateway=192.168.1.254

Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 199.[*.*.*] MASK 255.255.255.255 192.168.1.254
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5

Sunucumun IP'sini 199 ile güvenlik amaçlı olarak gizledim.

Ne topladım

0.0.0.0'ın "her şey" için bir tür kod olduğunu farz ediyorum, bu yüzden bunu nasıl çalıştıracağımdan emin değilim, ancak genel fikir belirli bir IP aralığına ihtiyacım olduğu ( 172.16.* ) (istemcinin) YEREL AĞINDA çözülebilir olması, değil VPN tünelinden geçerseniz müşteri 172.16.* Yerel olarak.

Mümkün mü? Rotalar komut satırı, sunucu "push" veya client config seçenekleri ile çalıştırılabilir. herhangi Gerçekten de, diğer trafiği yönlendirirken, bunun işe yaramasını sağlayacak bir yol olurdu.

İlave bilgi

Sunucum Debian 64-bit üzerinde çalışıyor ve istemci Windows 7'de çalışıyor (Vista'nın da çalışması gerekiyor).

İstemci / sunucu yapılandırmaları sağlanabilir gerekirse .


Teknik olarak 0.0.0.0, 0.0.0.0 ağ maskesi veya "/ 0" ile eklendiğinde sadece "her şey" anlamına gelir. Senin durumunda, daha spesifik iki rota (0.0.0.0/1 ve 128.0.0.0/1) eklenir; son sonuç aynıdır (tüm adresler eşleşmiştir), fakat eklenen güzergahlar "varsayılan" 0.0.0.0/0 güzergahına göre önceliklidir. Yine de hala haklısın.
grawity

Yanıtlar:


4

Daha fazla araştırma yaptıktan sonra, grawity'nin daha spesifik rotaların öncelikli olacağı cevabına dayanarak, sunucunun PUSH’inden sonra yapabileceği gibi görünüyor

--route [ip to bypass] 255.255.255.0 net_gateway

openvpn man sayfasındaki 'route' direktifinde tanımlandığı gibi net_gateway önceden var olan ip varsayılan ağ geçidine çözümleyecektir.


Bu rota için bir de itme yapabilirsiniz: push "route [ip to bypass] 255.255.255.0 net_gateway".
Ludovic Kuty

1

Basitçe başka bir rota ekleyin; daha az spesifik olanlara göre öncelik kazanacaktır:

172.16.* Çevirir 172.16.0.0 ağ maskesi ile 255.255.0.0:

route add 172.16.0.0 mask 255.255.0.0 if  indeks 

nerede indeks LAN ağ arayüzünüzün, gösterildiği gibi route print. Örneğin, 0x3 veya benzeri.


Ama arayüzü bilmek zorundasın. Bu aynı zamanda VPN sunucusunun rotayı kendisi zorlamadığı anlamına gelir.
Ludovic Kuty
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.