時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
公司的辦公網(wǎng)絡(luò)是192.168.4.0/24,均只用單網(wǎng)卡eth0,通過Juniper防火墻映射公網(wǎng)IP上網(wǎng),即內(nèi)網(wǎng)內(nèi)所有的機(jī)器的網(wǎng)關(guān)均是防火墻的固定IP-192.168.4.3,目前想通過外網(wǎng)撥號(hào)(VPN服務(wù)器IP為192.168.4.46)進(jìn)公司內(nèi)部局域網(wǎng)進(jìn)行辦公,另外還要求能夠連通到公司內(nèi)部的192.168.10.0、192.168.20.0、192.168.21.0網(wǎng)段的服務(wù)器,要求比之前復(fù)雜;而同事們的撥號(hào)環(huán)境又一樣,有的是小區(qū)環(huán)境,有的是ADSL,還有的是電信3G無線上網(wǎng);我將大家的需求歸納了下,即:
一、要求能夠在ADSL撥號(hào)或小區(qū)環(huán)境下順利的VPN到公司的openVPN服務(wù)器中;
二、公司的辦公環(huán)境是192.168.4.0,撥上來要求能夠連到192.168.21.0,192.168.20.0,192.168.10.0的服務(wù)器網(wǎng)段;
三、公司的網(wǎng)絡(luò)環(huán)境已定型,不可能在路由器或防火墻上作更改;
四、考慮到路由穿透的問題,即最低限度要做到局對(duì)局。
基于以上考慮,我們準(zhǔn)備采取openVPN的網(wǎng)橋模式。
公司的辦公拓補(bǔ)很簡單,如下圖:
以下資料參考chinaunix網(wǎng)友溫占考的翻譯文章,特此注明。
◆使用路由還是橋接的VPN?
路由和橋接的主要不同參看FAQ,橋接的詳細(xì)信息參看Ethernet Bridging??偟膩碚f,路由對(duì)大多數(shù)人來說是一種更好的方式,因?yàn)樗葮蚪有矢咭哺菀自O(shè)置(僅OpenVPN配置文件本身)。路由還可以給每個(gè)客戶端設(shè)置不同的訪問權(quán)限。推薦使用路由,除非你需要使用依賴于橋接的特性,比如:VPN需要處理非IP協(xié)議,例如IPX協(xié)議。在VPN上運(yùn)行的程序依賴于網(wǎng)絡(luò)廣播(例如局域網(wǎng)游戲)。不建立Samba或WINS服務(wù)器,而允許在VPN上瀏覽Windows共享文件。
◆TUN設(shè)備和TAP設(shè)備的不同?
TAP設(shè)備是一塊虛擬的以太網(wǎng)卡,TUN設(shè)備是一個(gè)虛擬的點(diǎn)到點(diǎn)IP鏈接。
◆什么是橋接?
橋接是在一個(gè)子網(wǎng)上創(chuàng)建一個(gè)虛擬的、廣域的以太網(wǎng)LAN一種技術(shù)。橋接的實(shí)踐信息,參看Ethernet Bridging Mini-HOWTO,形象的解釋就是它就是連通不同局域網(wǎng)的橋梁,當(dāng)外網(wǎng)用戶VPN過來時(shí),如果能夠連通openVPN機(jī)器,那么openVPN能夠連通的機(jī)器,外網(wǎng)用戶都應(yīng)該能夠連通。
◆橋接和路由的不同?
橋接和路由是通過VPN連接系統(tǒng)的兩種方法。
橋接的優(yōu)點(diǎn):廣播可以穿越VPN--允許依賴局域網(wǎng)廣播的軟件運(yùn)行,比如Windows的NetBIOS文件共享和網(wǎng)上鄰居。無需配置路由:可以和以太網(wǎng)上的任何協(xié)議一起工作,包括IPv4, IPv6, Netware IPX, AppleTalk等等。
Relatively easy-to-configure solution for road warriors.
橋接的缺點(diǎn):比路由效率低,擴(kuò)展性不太好。
路由的優(yōu)點(diǎn):高效和可擴(kuò)展、更好的MTU調(diào)節(jié)
路由的缺點(diǎn):要使跨越VPN的網(wǎng)絡(luò)瀏覽工作,客戶端必須使用一個(gè)WINS服務(wù)器(比如samba)。必須設(shè)置連接每一個(gè)子網(wǎng)的路由。依賴于廣播的軟件不能看到在VPN另一邊的機(jī)器。僅支持IPv4, 如果連接兩邊的tun驅(qū)動(dòng)明確支持IPv6,則也支持IPv6.
◆橋接和路由在配置上有什么不同?
當(dāng)客戶端通過橋接方式連接遠(yuǎn)端網(wǎng)絡(luò)時(shí),它被分配一個(gè)遠(yuǎn)端物理以太子網(wǎng)的IP地址,從而能夠和遠(yuǎn)端子網(wǎng)其它機(jī)器交互就象它是連接在本地一樣。橋接需要特殊的OS-相關(guān)的工具用來將物理以太網(wǎng)卡和虛擬的TAP設(shè)備橋接起來。在Linux下,brtcl就是這樣一個(gè)工具。
對(duì)于Windowx XP或更高版本,從"控制面板->網(wǎng)絡(luò)連接"中選中TAP-Win32網(wǎng)卡和以太網(wǎng)卡,點(diǎn)擊鼠標(biāo)右鍵,選擇轎接。而客戶端通過路由方式連接時(shí),它使用自己的獨(dú)立子網(wǎng), 并且在客戶機(jī)和遠(yuǎn)端網(wǎng)關(guān)上都設(shè)置了路由,從而可以使數(shù)據(jù)包無縫地穿越VPN??蛻舳丝梢圆恢皇且慌_(tái)機(jī)子,它可以是幾臺(tái)機(jī)子組成的一個(gè)子網(wǎng)。
橋接和路由很相似,主要的不同是路由的VPN不傳送IP廣播包,但是橋接的VPN傳送IP廣播包。
要使用橋接方式,連接的兩端都必須使用--dev tap,如果使用路由方式,可以使用--dev tap也可以使用--dev tun,但是連接的兩端必須一致. 對(duì)于路由方式而言,--dev tun的效率要更高一些。
Ethernet Bridging
橋接概覽
以太網(wǎng)橋接將一個(gè)以太網(wǎng)接口和一個(gè)或多個(gè)虛擬TAP接口結(jié)合(combine)并將它們橋接為一個(gè)橋接接口。以太網(wǎng)橋接代表一個(gè)物理以太網(wǎng)交換機(jī) (switch)的軟件模擬,以太網(wǎng)橋可以 認(rèn)為是在一臺(tái)機(jī)器上共享一個(gè)IP子網(wǎng)連接多個(gè)以太網(wǎng)卡(物理的或虛擬的)的軟件交換機(jī),
通過將在不同地方的一個(gè)物理以太網(wǎng)卡和一個(gè)OpenVPN的TAP接口橋接,可以將兩個(gè)以太網(wǎng)絡(luò)在邏輯上合并為好象是一個(gè)以太子網(wǎng)。
一、這里交待下openVPN的操作系統(tǒng)及網(wǎng)絡(luò)分配等。
openVPN服務(wù)器采用64bit的FreeBSD8,分配的IP為192.168.4.46,通過防火墻NAT上網(wǎng),網(wǎng)關(guān)為192.168.4.3,單網(wǎng)卡,無公網(wǎng)IP;Freebsd8下配置網(wǎng)卡跟linux一樣,用腳本控制較簡單,腳本如下:
[root@openvpn ~]# cat /root/addbr0.sh
#!/bin/sh
kldload if_tap
ifconfig bridge0 create
ifconfig bridge0 addm re0
ifconfig bridge0 192.168.4.241? netmask 255.255.255.0? broadcast 192.168.4.255
/usr/local/sbin/openvpn --config /usr/local/etc/server.conf --daemon openvpn
ifconfig bridge0 addm tap0
ifconfig bridge0 deletem tap0
/usr/local/sbin/openvpn --config /usr/local/etc/server.conf --daemon openvpn
ifconfig bridge0 addm tap0
這里說明一下,跟bridge0分配的也是192.168.4.0網(wǎng)段的機(jī)器,這里我看網(wǎng)上大部分的文章都是用IP,即192.168.4.46,我建議另一個(gè)IP配置,這個(gè)IP不能跟局域網(wǎng)的IP發(fā)生沖突,腳本成功運(yùn)行后,可用命令ifconfig 檢查下,成功的配置應(yīng)該如下:
二、安裝過程我簡略帶過,不會(huì)的朋友請(qǐng)參考googel的相關(guān)搜索結(jié)果或我的上一篇文章《實(shí)路出真知 配置openVPN時(shí)應(yīng)該注意的事項(xiàng)》,Server端的配置如下,這是重頭戲,相關(guān)語法我會(huì)詳細(xì)介紹。
[root@openvpn ~]# cat /usr/local/etc/server.conf | grep -v "^#" | grep -v "^;"? | sed '/^$/d'
port 1194
proto udp
dev tap0
ca?? /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/ca.crt
cert /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/server.crt
key? /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/server.key? # This file should be kept secret
dh /usr/local/src/openvpn-2.0.9/easy-rsa/2.0/keys/dh1024.pem
#p#副標(biāo)題#e#
ifconfig 192.168.4.241? 255.255.255.0
server-bridge 192.168.4.241 255.255.255.0 192.168.4.244 192.168.4.246
push "redirect-gateway"
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log-append? openvpn.log
verb 3
以上腳本運(yùn)行時(shí)已成功啟動(dòng)了openVPN,并分配了網(wǎng)橋bridge0地址--192.168.4.241,可用命令lsof? -i:1194檢驗(yàn)下。
這里我將server.conf詳細(xì)參數(shù)說明下,這里也是用bridge配置的重點(diǎn)
;locala.b.c.d ##申明本機(jī)使用的IP地址,也可以不說明
port1194 ##申明使用的端口,默認(rèn)1194
;prototcp ##申明使用的協(xié)議,默認(rèn)使用UDP,如果使用HTTP proxy,必須使用TCP協(xié)議
proto udp
dev tap ##申明使用的設(shè)備可選tap和tun,tap是二層設(shè)備,支持鏈路層協(xié)議。#tun是ip層的點(diǎn)對(duì)點(diǎn)協(xié)議,限制稍微多一些,本人習(xí)慣使用TAP設(shè)備
;devtun
;dev-nodeMyTap #windows下需要像這樣指定設(shè)備名
##OpenVPN使用的ROOT CA,使用build-ca生成的,用于驗(yàn)證客戶是證書是否合法
ca /user/local/src/openvpn-2.0.9/easy-rsa/keys/ca.crt
#Server使用的證書文件
cert /usr/local/src/openvpn-2.0.9/easy-rsa/keys/server.crt
#Server使用的證書對(duì)應(yīng)的key,注意文件的權(quán)限,防止被盜
key /usr/local/src/openvpn-2.0.9/easy-rsa/keys/server.key
#This file should be kept secret
#CRL文件的申明,被吊銷的證書鏈,這些證書將無法登錄
crl-verify vpncrl.pem
#上面提到的生成的Diffie-Hellman文件
dh /user/local/src/openvpn-2.0.9/easy-rsa/keys/dh1024.pem
#防止openvpn重新啟動(dòng)后"忘記"Client曾經(jīng)使用過的IP地址
ifconfig-pool-persistipp.txt
#Bridge狀態(tài)下類似DHCPD的配置,為客戶分配地址,由于這里
關(guān)鍵詞標(biāo)簽:FreeBSD8,Bridge,open
相關(guān)閱讀
熱門文章 路由器地址大全-各品牌路由設(shè)置地址 各品牌的ADSL與路由器出廠默認(rèn)IP、帳號(hào)、密碼 Nslookup命令詳解-域名DNS診斷 站長裝備:十大網(wǎng)站管理員服務(wù)器工具軟件
人氣排行 各品牌的ADSL與路由器出廠默認(rèn)IP、帳號(hào)、密碼 路由器地址大全-各品牌路由設(shè)置地址 騰達(dá)路由器怎么設(shè)置?騰達(dá)路由器設(shè)置教程 ADSL雙線負(fù)載均衡設(shè)置詳細(xì)圖文教程 路由表說明(詳解route print) Nslookup命令詳解-域名DNS診斷 網(wǎng)管員實(shí)際工作的一天 網(wǎng)管必會(huì)!了解交換機(jī)控制端口流量