Yerel ağ alt ağ adresi uzak bir ağla çakıştığında uzak bir sunucuya VPN üzerinden bağlanma


35

Bu, bir VPN istemcisinin yerel ağı ve ondan bir VPN bağlantısı arasındaki IPv4 alt ağ çakışmalarını çözme konusunda Kanonik bir Soru .

OpenVPN üzerinden uzak bir yere bağlandıktan sonra, istemciler 192.0.2.0/24 gibi bir alt ağda bulunan bir ağdaki bir sunucuya erişmeye çalışırlar. Ancak, bazen, istemcinin LAN'ındaki ağ aynı alt ağ adresine sahiptir: 192.0.2.0/24. İstemciler bu çelişki nedeniyle IP'sini yazarak uzak sunucuya bağlanamıyor. VPN'e bağlıyken genel internete bile erişemiyorlar.

Sorun şu ki, bu 192.0.2.0/24 alt ağının VPN tarafından yönlendirilmesi gerekiyor, ancak istemcinin LAN'ı olarak da yönlendirilmesi gerekiyor.

Bu sorunu nasıl azaltacağını bilen var mı? OpenVPN sunucusuna erişimim var.


3
Ulaşmaya çalıştığınız ana bilgisayarın / 32 adresi için statik bir yol ayarlamayı deneyebilir ve VPN eşine ağ geçidi olarak kullanabilirsiniz ve ne olduğunu görün.
SpacemanSpiff

vpn konsantratörü müşteri rotalarını onurlandırırsa, çevre güvenliğinizin yardıma ihtiyacı olabilir. Muhasebe yoluna erişirim, mühendislik aralığına rota eklerim ve sonra hiçbir problemi bağlayamam. sonicwall gibi crappy güvenlik duvarları bu
nandoP

@SpacemanSpiff: Bu ederken olabilir istemci tarafında sorunu çözmek değil VPN istemcisinden, kendi ağı geliyor olarak bağlantı görüyor çünkü, sunucu hala cevap veremeyebilir.
Massimo

Yanıtlar:


18

NAT kullanarak bunu çözmek mümkündür; sadece çok zarif değil.

Bu nedenle, aslında hiçbir zaman çatışmaya girmeyecek kadar nadir ağ numaralarına sahip olan dahili ağlara sahip olarak bunu çözemezsiniz.

Hem yerel hem de uzak alt ağ aynı ağ numaralarına sahip olduğundan, istemcinizden gelen trafik, hedefine ulaşmak için tünel ağ geçidinden geçmesi gerektiğini asla bilemez. Ve yapabileceğimizi hayal etsek bile, durum uzaktaki ev sahibi için bir cevap göndermek üzere olduğu gibi olacaktır.

Öyleyse benimle kal ve henüz bağlantı kurarsam, tam bağlantı için NAT'ı tünelin içinde sonlandırman gerekecek, böylece ana bilgisayarları ayırt etmek ve yönlendirmeye izin vermek için yazman gerekecek gibi bir yan sorun olmadığını iddia et.

Burada bazı ağlar yapmak:

  • Ofis ağınız 192.0.2.0/24 kullanıyor
  • Uzak ofisiniz 192.0.2.0/24 kullanıyor
  • Ofis ağınız VPN ağ geçidi, 192.0.2.0/24 ana bilgisayarlarını NATed ağ numarasının arkasına gizler. 198.51.100.0/24
  • Uzak ofis ağınız VPN ağ geçidi, NAT3 ağ numarasının arkasındaki 192.0.2.0/24 anasistemi gizler. 203.0.113.0/24

Bu yüzden VPN tüneli içinde, ofis ana bilgisayarları şimdi 198.51.100.x ve uzak ofis ana bilgisayarları 203.0.113.x'tir. Ayrıca, tüm ana bilgisayarların kendi VPN ağ geçitlerinin NAT'larında 1: 1 ile eşlendiğini farz edelim. Bir örnek:

  • Ofis ağınız ev sahibi 192.0.2.5/24, ofis vpn ağ geçidi NAT'ta 198.51.100.5/24 olarak statik olarak eşlenmiştir
  • Uzak ofis ağınız ana bilgisayarı 192.0.2.5/24 uzak ofis vpn ağ geçidi NAT'ta statik olarak 203.0.113.5/24 olarak eşlenir

Bu nedenle, uzaktaki ofisteki 192.0.2.5/24 ana bilgisayarı, ofis ağındaki aynı ip ile ev sahibine bağlanmak istediğinde, bunu hedef olarak 198.51.100.5/24 adresini kullanarak yapması gerekir. Aşağıdaki olur:

  • Uzak ofiste, ev sahibi 198.51.100.5, VPN üzerinden ulaşılan ve oraya yönlendirilen uzak bir varış noktasıdır.
  • Uzak ofiste, ana bilgisayar 192.0.2.5, paket NAT işlevini geçerken 203.0.113.5 olarak maskelenir.
  • Ofiste, ev sahibi 198.51.100.5, paket NAT işlevini geçerken 192.0.2.5'e çevrilir.
  • Ofiste, 203.0.113.5 numaralı makineye geri dönüş trafiği ters yönde aynı süreçten geçer.

Dolayısıyla bir çözüm varken, bunun pratikte çalışması için ele alınması gereken birkaç sorun vardır:

  • Maskeli IP, uzaktan bağlantı için kullanılmalıdır; DNS karmaşıklaşıyor. Bunun nedeni, bitiş noktalarının, bağlanan ana makineden görüldüğü gibi benzersiz bir IP adresine sahip olması gerektiğidir.
  • NAT işlevinin her iki ucunun VPN çözümünün bir parçası olarak uygulanması gerekir.
  • Ana bilgisayarların statik olarak haritalanması diğer taraftan ulaşılabilirlik için bir zorunluluktur.
  • Trafik tek yönlü ise, yalnızca alıcı taraf tüm ilgili ana bilgisayarların statik eşlemesini gerektirir; müşteri istenirse dinamik olarak NATed olmaktan kurtulabilir.
  • Trafik iki yönlü ise, her iki ucun da ilgili tüm ana bilgisayarların statik eşlemesine ihtiyacı vardır.
  • İnternet bağlantısı, bölünmüş veya bölünmemiş VPN'den bağımsız olarak bozulmamalıdır.
  • 1'e 1'i eşleyemezseniz dağınık hale gelir; Dikkatli defter tutma bir zorunluluktur.
  • Doğal olarak, NAT adreslerini kullanma riski de vardır ki bu da çoğaltır :-)

Öyleyse bunu çözmek dikkatli bir tasarıma ihtiyaç duyar. Uzaktaki ofisiniz gerçekten yol savaşçılarından oluşuyorsa, buna bir sorun katmanı eklersiniz:

  • örtüşen net kimlikleri ne zaman bittiklerini asla bilemezler.
  • uzak ofis ağ geçidi NAT, dizüstü bilgisayarlarında uygulanmalıdır.
  • ofis ağ geçidinin, her iki senaryoyu da kapsayacak şekilde, biri NAT içermeyen ve bir NATed olmak üzere iki VPN'e ihtiyacı olacaktır. Aksi takdirde, birileri NAT yöntemi için seçtiğiniz alt ağlardan birini seçmek durumunda, işler işe yaramaz .

VPN istemcinize bağlı olarak, yerel segmentin ağ adresine bağlı olarak otomatik olarak bir VPN veya diğerini seçebilirsiniz.

NAT'ın bu bağlamda söz edilmesinin, konuşmanın tünel perspektifinde gerçekleştiği bir NAT işlevine işaret ettiğini gözlemleyin. İşlemsel olarak, statik NAT eşlemesi, paket tünele "girmeden", yani internet üzerinden diğer VPN ağ geçidine götürecek olan nakil paketinde kapsüllenmeden önce yapılmalıdır.

Bu, kişinin VPN ağ geçitlerinin genel ip adreslerini (ve pratikte NAT: ed olabilir, ancak daha sonra uzak siteye ulaşım perspektifinin dışında) maskeli balo olarak kullanılan benzersiz özel adreslerle karıştırmaması gerektiği anlamına gelir. yinelenen özel adresler için. Bu soyutlamanın görüntülenmesi zorsa, NAT'ın bu amaçla VPN ağ geçidinden fiziksel olarak nasıl ayrılabileceğinin bir örneği burada yapılır:
Örtüşen Ağlarda NAT kullanımı .

Aynı resmi, hem NAT hem de VPN ağ geçidi işlevini gerçekleştirebilen bir makinenin içindeki mantıksal bir ayrıştırmaya yoğunlaştırmak, aynı örneği bir adım daha ileri götürür, ancak eldeki yazılımın yeteneklerine daha fazla önem verir. Örneğin OpenVPN ve iptables ile birlikte hacklemek ve çözümü buraya göndermek değerli bir zorluk olacaktır.

Yazılımda kesinlikle mümkündür:
PIX / ASA 7.x ve Sonrası: Çakışan Ağlar Konfigürasyonlu LAN-LAN IPsec VPN Yapılandırma Örneği
ve:
Çift LAN Alt Ağları Olan Yönlendiriciler Arasında IPSec Tünelinin Yapılandırılması

Bu nedenle gerçek uygulama birçok etkene, ilgili işletim sistemine, ilgili yazılıma ve olasılıklarına en az değil, bağlı olarak değişir. Ama kesinlikle yapılabilir. Biraz düşünmeniz ve denemeniz gerekir.

Bunu Cisco'dan linklerde görüldüğü gibi öğrendim.


NAT birçok VPN bağlantısı ve çevirileriyle de çalışabilir mi? Buradaki durumu tam olarak anlamadım. Burada bir konu var, unix.stackexchange.com/q/284696/16920 hakkında Üst üste binen alt ağlar Unix-Way ile Siteden Siteye VPN Nasıl Yapılır?
Léo Léopold Hertz 준영

17

Tek bir veya bir avuç bilinen sunucu ips için geçici bir geçici çözüme ihtiyacınız varsa, en basit çözüm statik istemci tarafı yönlendirme seçeneği olmalıdır.

Benim durumumda, linux istemcimdeki yönlendirme masama istenen hedef sunucumu (192.168.1.100) ekledim:

route add 192.168.1.100 dev tun0

Daha sonra, bu statik yolu route delete komutuyla kaldırın.


2
Bu mükemmel bir çözüm ve hatta mükemmel bir zamanlama! :)
Yuval

Bu ne kadar sürer? Bağlantıyı kesene kadar? Yeniden başlatılıncaya kadar mı?
karbonhidrat

1
Linux sistemimde (ubuntu / nane ile xfce), bir vpn bağlantısının kesilmesinden ve evet, aynı zamanda yeniden başlatmanın ardından "kayboluyor". Ayarın rota komutuyla etkin olup olmadığını kontrol edebilirsiniz (ip ve tun0 cihazını genellikle altta olan bir giriş olacaktır)
Aydın K.

Rotanın OSX versiyonu arayüzü dev tun0ihtiyaç -interface tun0
Sirens

5

evet bu en kötüsü. benim için her zaman otel odalarından geldi, vpn yöneticileri daha karanlık ip aralıklarını kullanmaları gerektiğini anladılar. 10.0.0.0/24 ve 10.1.1.1/24 en kötüsüdür. Asla böyle bir kablosuz ağ alamazsanız yardım edebilirsiniz.

bu nedenle cevap, farklı bir dahili ağ (yani 10.255.255.0/24) kullanmak için wap'ı "düzeltmek" ve ardından size farklı bir kiralama hizmeti vermek (yani corp vpn'ye geri dönebilecek bir aralıkta ip) veya / wap üzerinde admin alamıyorum, sadece starbucks gidin. veya 20 dakika bekçilik :)

Bu sadece bir laboratuar ortamında ise, sadece farklı aralıkları kullanın.


Gerçekten Dang? Daha iyi bir seçenek yok mu?
John Russell

1
bildiğim kadarıyla .... bu her zaman bir sorun olmuştur ... birileri benim cevabımı aşağı oyladı, ama aslında bir çözüm önermedi ... haberciyi öldürdü!
NandoP

3

El Capitan'ın çalıştığı bir bilgisayardayım. Yukarıdaki öneriler benim için işe yaramadıysa da beni çalışan bir çözüme götürdüler:

  1. VPN’e başlamadan önce ifconfig
  2. VPN'i başlatın, ifconfighangisinin yeni arayüz olduğunu not edin. Benim durumumda , 192.168.42.74 ip adresli ppp0 idi .

    ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
        inet 192.168.42.74 --> 192.0.2.1 netmask 0xffffff00
    
  3. yazın:

    sudo route add 192.168.1.79  192.168.42.74
    

Önce a ile test ettim pingve sonra git sunucusuna erişerek çalıştığını ispatladım.

Yukarıda belirtildiği gibi route komutunun sonunda dev ppp0 kullanmaya çalıştığımda şikayet etti.


2
192.168.1.79Bu değişimden ne geliyor?
karbonhidrat

Bağlandığınız hedef sunucu. Bu sunucu, yerel bağlantınız değil VPN'inizle aynı ağda bulunur.
Carlo del Mundo

1

Çelişkili IP aralığına sahip bir ortak çalışma alanında kullandığım basit bir çözümüm var (10.x)

Ağa cep telefonumla bağlandım, ardından ağ bağlantısını bluetooth üzerinden dizüstü bilgisayarımla paylaştım. Artık işverenim için VPN'i kullanabilirim.

Daha hızlı bir bağlantıya ihtiyacınız olursa bunun USB ile aynı şekilde çalışacağına eminim.


1
Hey, bu aslında çok zekice bir çözüm.
Nathan Osman

1

Sadece bir veya iki ip adresine basmanız gerekiyorsa, ovpn yapılandırma dosyanıza şöyle bir rota ifadesi ekleyin:

rota 192.168.1.10 255.255.255.255

rota 192.168.1.11 255.255.255.255

Vpn'nizi bağladığınızda vpn bağlantısı kesildiğinde çıkardığınızda, sadece Ip'ler için bir rota ekleyecektir.

Zaten Windows'ta benim için çalıştı.


1

Aydın K. tarafından verilen cevap linux içindir. İsterseniz pencereler için aynı işlevselliği istiyorsanız, yazabilirsiniz

route ADD 192.168.1.10 <IP of tunnel adapter>

veya

route ADD 192.168.1.10 IF <interface id>

Arabirim kimliğini şu komutla alabilirsiniz:

route print

0

Hatırlatıcı olarak: bu sorunun tamamı yıllarca IPv4 adresinin yetersiz kalmasından ve bu yetersizliğin giderilmesi için NAT'ın arkasında özel IP aralığının yaygın bir şekilde kullanılmasından kaynaklanıyor !

Bu konuda ideal ve kesin çözüm oldukça basittir (küresel olarak ortaya çıkması biraz zaman alabilir) ve olsa da: IPv6 ...

IPv6 dünyasında, kamuya açık bir IP sıkıntısı yoktur (birkaç on yılda bir olay olmaz). Bu nedenle, her ağın her cihazı için ortak bir IP olmamasına gerek yoktur. Ağ yalıtımına ihtiyacınız varsa, güvenlik duvarı ile filtrelemeye devam edin, ama çirkin NAT ...

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.