歡迎您光臨本站 註冊首頁

[求助(已解決)]openvpn無法訪問與vpn伺服器在同一內網的機器

win xp客戶端撥入openvpn 伺服器后可以ping 通vpn伺服器內網網卡IP,但是無法ping 通和伺服器在同一個內網其他內網IP,用tcpdump查看包的情況是 ,其他的內網機器無法 傳送arp 包 ,就是一直在問 who has x.x.x.x (這個IP是win xp 的ip地址 ),說明vpn伺服器已經把包轉發給這個主機了,但是這個主機無法獲得 XP客戶端的mac ,我想問如何配置才可以?這個有點類似   pptpd arp proxy 功能             謝謝!

[ 本帖最後由 emcc-83 於 2008-5-7 10:00 編輯 ]
《解決方案》

回復 #1 emcc-83 的帖子

偶是菜鳥,也遇到你這個問題.
網路結構大概是這樣的,在一個用ADSL路由器(路由器對OPENVPN server  分別做了1194的埠映射和DMZ)為網關的上網的網路里用某台機器XP系統,架設了openVPN server,另外一個地方也同樣用ADSL路由器為網關內的私有網路內的機器做客戶端。目前遇到的問題是客戶端能連接到VPN server,但是在客戶端ping不通server端的內網IP,只能ping通VPN server 虛擬網卡的IP。現在到處找能夠實現訪問server端所在內網其他機器的方法。

http://bbs.chinaunix.net/viewthread.php?tid=931686
這個OpenVPN 2.0 HOWTO-區域網互訪裡面提到


首先,VPN客戶端通過VPN能訪問到10.66.0.0/24 子網,只只要在伺服器端的配置文件配置以下參數就能簡單做到:

push "route 10.66.0.0 255.255.255.0"
下一步,我們要把伺服器端局域內網的網關設置為從VPN客戶端10.8.0.0/24網段到OpenVPN伺服器的路由(假如OpenVPN伺服器和區域網網關不是同一台機器,這個設置就很有必要)。

下一步,我們要為從VPN客戶端10.8.0.0/24網段到OpenVPN伺服器所在的區域網的網關設置一個路由(假如OpenVPN伺服器和區域網網關不是同一台機器,這個設置就很有必要)。


確認你應在在OpenVPN伺服器上打開IP 和 TUN/TAP 的轉發功能。


我想關鍵是路由的問題,但是不是太明白最後一句,如何在XP上建立的openVPN server上「OpenVPN伺服器上打開IP 和 TUN/TAP 的轉發功能」,有沒有大牛能指點一下,多謝


[ 本帖最後由 cachepro 於 2008-5-6 13:40 編輯 ]
《解決方案》

回復 #2 cachepro 的帖子

我的路由應該正確 否則無法ping通vpn server 的內網IP(其他伺服器也與此伺服器在同一子網)

ip轉發我也打開了/proc/sys/net/ipv4/ip_forward  為1

從tcpdump 看 其他機器已經收到xp 客戶機的數據包了  但是就無法回包 關鍵在於這個   我就是想知道openvpn 有沒有類似於pptpd       arp 代理這個機制  (就是vpn server 可以轉發廣播包)
《解決方案》

原帖由 emcc-83 於 2008-5-6 21:10 發表 http://bbs.chinaunix.net/images/common/back.gif
我的路由應該正確 否則無法ping通vpn server 的內網IP(其他伺服器也與此伺服器在同一子網)

ip轉發我也打開了/proc/sys/net/ipv4/ip_forward  為1

從tcpdump 看 其他機器已經收到xp 客戶機的數據包了  但 ...


幹了幾個小時,終於搞定了
server端用網橋模式,已經實現客戶機對server端內網的各個機器的訪問,雖然已經通了,但是還是懵懵懂懂的,呵呵,水平太低,沒有辦法。我把相關文檔發上來,供你參考。裡面有個表格顯示不是太對,去這裡看即可
http://ch9.blog.163.com/blog/static/176394082007918101923624/


OpenVPN之乙太網橋接
譯者:溫占考(Email: wzk<AT>wenzk<DOT>net),來源:OpenVPN.net,轉載請註明譯者和出處及版權信息,並且不能用於商業用途,違者必究。
由於英語水平有限,如有錯誤,還望指正!
時間: 2006-06-19 22:00 於 瀋陽
橋接概述
查看FAQ了解路由對比橋接的概述。
乙太網橋接實質上是把一個乙太網絡介面和一個或多個虛擬TAP介面橋接在一個網橋介面上。乙太網橋表現為使用軟體模擬一個真實的乙太網交換機。乙太網橋可以理解為一種能夠用來連接一個機器上的多個乙太網介面(無論是物理的還是虛擬的)使它們共享一個IP子網的軟體交換機。
把分佈在兩個獨立網路的一個物理的乙太網NIC和一個OpenVPN所使用的TAP介面橋接起來,這樣就可以邏輯上合併兩個乙太網絡,就像它們在一個乙太網子網內。
配置橋接
這個例子將指導你配置一個OpenVPN伺服器端的橋接。多個客戶將會連接到這個網橋上,並且每個客戶機的TAP介面將會分配到一個伺服器端LAN網段的IP地址。
下面是兩個實現客戶IP地址分配的方法:
讓OpenVPN使用server-bridge指示來管理其客戶的IP地址池,或者
在LAN內配置DHCP伺服器讓其為VPN客戶分配IP地址。
在這個例子中,我們將使用第一個方法即OpenVPN伺服器管理其客戶在LAN子網內的IP地址池,和DHCP伺服器使用的地址池分開(如果存在的話)。兩種方法在FAQ item都有詳細描述。
在我們的例子中,我們將使用下面的網橋配置:
設置

網橋啟動 參數

取值

乙太網絡介面

eth

eth0

本地IP地址

ip

192.168.8.4

本地子網掩碼

eth_netmask

255.255.255.0

本地廣播地址

eth_broadcast

192.168.8.255

VPN客戶地址池



192.168.8.128 to 192.168.8.254

虛擬網橋介面

br

br0

虛擬TAP介面

tap

tap0


第一步是按照HOWTO中的「開始使用VPN並且測試其連通性(Starting up the VPN and testing for initial connectivity)」章節。然後,根據你是在Linux或Windows下配置橋接繼續配置。
在Linux上配置橋接伺服器
首先,確認你已經安裝了bridge-utils軟體包。
編輯下面的bridge-start(啟動網橋)腳本。根據你要橋接的物理網路介面設置br, tap, eth, eth_ip, eth_netmask, 和 eth_broadcast 參數。確認使用一個內部網路介面並且是連接在一個受防火牆保護的LAN內。你可以使用Linux的ifconfig命令獲得網路介面的一些必要的信息來完成bridge-start(啟動網橋)參數。
現在就運行bridge-start腳本。腳本將會創建一個永久[譯者註:永久意為系統重新啟動前永久,默認虛擬介面在OpenVPN退出后就消失]的tap0網路介面並且已經和乙太網介面橋接成功了。
下一步,我們將要編輯OpenVPN server configuration file(OpenVPN伺服器端配置文件)來使能橋接配置。
註釋掉dev tun這行行並且替換成:
dev tap0
註釋掉以server開始的行並且替換成:
server-bridge 192.168.8.4 255.255.255.0 192.168.8.128 192.168.8.254
現在設置Linux防火牆使之允許數據包通過新建的tap0 和 br0介面:
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT
OpenVPN橋接現在能夠通過下面順序來啟動和停止:
運行 bridge-start
運行 openvpn
停止 openvpn
運行 bridge-stop
到目前為止,橋接的配置就完成了,你可以continue where you left off in the HOWTO(根據HOWTO繼續完成剩下部分)。
在Windows XP中配置橋接伺服器
這個配置在橋接端需要Windows XP或更高版本系統。據我所知,Windows 2000不支持橋接,然而Windows 2000系統可以是一個橋接網路的客戶,而OpenVPN另一端的橋接是在Linux或Windows XP系統上實現的。
在Windows上安裝OpenVPN時,安裝程序將自動創建一個名為「本地連接2」的TAP-Win32適配器。轉到控制面版中的網路連接下並且改名為「tap-bridge」。
接下來使用滑鼠選擇tap-bridge和乙太網適配器,點擊滑鼠右鍵,並且選擇橋接(Bridge Connections)。這樣就在控制面板中創建了一個新的橋適配器圖標。
在橋適配器的TCP/IP屬性里配置IP地址192.168.8.4子網掩碼255.255.255.0。
接下來,編輯OpenVPN server configuration file(OpenVPN服務端配置文件) 使能橋接配置。
註釋dev tun這行且替換成:
dev tap
dev-node tap-bridge
註釋以server開始的行並且替換成:
server-bridge 192.168.8.4 255.255.255.0 192.168.8.128 192.168.8.254
如果你的系統時XP SP2,進入防火牆配置控制面板,並且禁用橋適配器和TAP適配器上的包過濾功能。
到目前為止,橋接的配置就完成了,你可以continue where you left off in the HOWTO(根據HOWTO繼續完成剩下部分)。
配置橋接客戶端
在sample OpenVPN client configuration(OpenVPN客戶配置)基礎上進行配置。註釋dev tun的行且替換成:
dev tap
最後,確認客戶端的配置文件和伺服器端的配置文件是否一致。需要著重注意的是proto (udp or tcp)選項是否一致。同樣如果使用了comp-lzo 和 fragment確認客戶端和伺服器端是否一致。
乙太網橋接說明
使用乙太網橋接配置時,第一步是構造乙太網橋--一種虛擬網路介面是其他網路介面的一個容器,可以是物理的NIC也可以是虛擬的TAP介面。乙太網橋介面必須在OpenVPN啟動之前創建。
沒有通用的網橋配置方法--每個OS有自己的配置方法(見下面例子)。
網橋介面一旦被創建,並且乙太網介面加入到網橋中,OpenVPN就可以啟動了。
網橋介面是一種由一個或多個乙太網絡介面組成的虛擬網路介面,這些乙太網絡介面可以是物理網路介面或OpenVPN所使用的虛擬TAP介面。
當你配置乙太網橋接介面時,你需要手工設置網橋介面的IP地址和子網掩碼並且不要在OpenVPN配置文件中使用ifconfig選項來配置。這是因為與TUN/TAP介面不一樣,OpenVPN程序不能配置網橋介面的IP地址和子網掩碼。
OpenVPN配置文件應該通過dev選項來指定已經加入網橋TAP介面,而不是指定網橋介面的名字。
對於Windows系統,使用dev-node選項來指定已經加入網橋TAP-Win32適配器(dev-node這個名字是網路連接控制面板上顯示的名字)。
在Linux/BSD/Unix系統中,對於dev tap選項,使用你已經加入網橋的TUN/TAP的序號如dev tap0。
如果你的OpenVPN工作在點對點模式,去掉ifconfig選項,如果你使用的是客戶/伺服器模式,在伺服器端使用server-bridge選項。
橋接的時候,你必須手工設置網橋介面的TCP/IP設置。例如在Linux中,可以使用ifconfig命令配置而在Windows XP中可以通過配置網路連接面板中網橋介面的TCP/IP屬性來實現(在Windows XP和更高版本的網路連接面板中可以通過滑鼠操作來實現橋接)。
確定只有橋接的TAP介面和內部乙太網絡介面是被防火牆保護的。不要把TAP介面和連接互聯網的網路介面進行橋接,這樣可能存在潛在的安全漏洞。
local 和 remote 所使用的地址不能是橋接子網內的地址--否則將會出現路由環路。
理解乙太網橋接很重要的一點就是每個加入網橋的網路介面將會失去原有的配置如IP地址和子網掩碼。只有網橋介面的TCP/IP設置有效。
手工配置網橋時常見的錯誤是在為網橋配置IP地址和子網掩碼之前把主要的乙太網絡適配器加入到網橋中。這就導致主要的乙太網卡「丟失」了原有的配置,但是所屬的網橋介面還沒有配置,所以這就造成了乙太網絡介面的連接就丟失了。
在大多數情況下,只是在伺服器端配置一個可用的橋接,而不是在客戶端配置。這樣一來,當客戶機連接上伺服器后就成為了多宿主系統了,例如:它們仍然擁有原有的乙太網介面,但是連接到OpenVPN伺服器的上層連接,它們將會有一個新的TAP介面和伺服器端的乙太網介面橋接(並且有可能是所有連接到伺服器的客戶機的TAP介面如果在伺服器的配置文件里申明了client-to-client選項)。
說明 – Windows下的乙太網橋接
Check out this HOWTO by Adam Pavelec.
Windows Notes 頁面有更多關於乙太網橋接的說明。
[email protected]>. OpenVPN is a trademark of OpenVPN Solutions LLC.
摘自:http://www.yuanma.org/data/2006/1106/article_1786.htm
《解決方案》

RE

謝謝樓上的 很熱心

我最後採用了網橋模式 問題解決(不知道路由模式是否可以)

配置文件

(認證部分省略)
dev tap
server-bridge 10.0.8.4 255.255.255.0 10.0.8.50 10.0.8.100
push "route 10.0.0.0 255.255.255.0 10.0.8.4"        #(伺服器真實內網ip子網為 10.0.0.0/24)



網路設置
ip addr add 10.0.8.4/24 dev tap0        #10.0.8.4(網橋IP地址)  客戶端分配到的IP為10.0.8.50
ip link set tap0 up

echo 1  > /proc/sys/net/ipv4/ip_forward                 #(打開IP轉發)
echo 1  > /proc/sys/net/ipv4/conf/eth0/proxy_arp    #(打開ARP代理)             eth0(內網網卡)

另 有興趣的可以看看http://nimlabs.org/~nim/dirtynat.html這篇文章,寫的很不錯。
《解決方案》

只要路由、防火牆配置沒有問題,肯定是可以通過路由模式訪問的。

在路由或網橋模式下都不需要打開 ARP代理。
在網橋模式下不需要啟用 FORWARD功能。

[火星人 ] [求助(已解決)]openvpn無法訪問與vpn伺服器在同一內網的機器已經有8328次圍觀

http://coctec.com/docs/service/show-post-30579.html