成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實路出真知 FreeBSD8下Bridge配置openVPN

原創
安全
公司的辦公網絡是192.168.4.0/24,均只用單網卡eth0,通過Juniper防火墻映射公網IP上網,即內網內所有的機器的網關均是防火墻的固定IP-192.168.4.3,目前想通過外網撥號(VPN服務器IP為192.168.4.46)進公司內部局域網進行辦公.

【51CTO.com 獨家特稿】公司的辦公網絡是192.168.4.0/24,均只用單網卡eth0,通過Juniper防火墻映射公網IP上網,即內網內所有的機器的網關均是防火墻的固定IP-192.168.4.3,目前想通過外網撥號(VPN服務器IP為192.168.4.46)進公司內部局域網進行辦公,另外還要求能夠連通到公司內部的192.168.10.0、192.168.20.0、192.168.21.0網段的服務器,要求比之前復雜;而同事們的撥號環境又一樣,有的是小區環境,有的是ADSL,還有的是電信3G無線上網;我將大家的需求歸納了下,即:

推薦專題:企業內網開發環境部署與管理全攻略(FreeBSD+PHP)

一、要求能夠在ADSL撥號或小區環境下順利的VPN到公司的openVPN服務器中;

二、公司的辦公環境是192.168.4.0,撥上來要求能夠連到192.168.21.0,192.168.20.0,192.168.10.0的服務器網段;

三、公司的網絡環境已定型,不可能在路由器或防火墻上作更改;

四、考慮到路由穿透的問題,即最低限度要做到局對局。

基于以上考慮,我們準備采取openVPN的網橋模式。

公司的辦公拓補很簡單,如下圖:

以下資料參考chinaunix網友溫占考的翻譯文章,特此注明。

◆使用路由還是橋接的VPN?

路由和橋接的主要不同參看FAQ,橋接的詳細信息參看Ethernet Bridging。總的來說,路由對大多數人來說是一種更好的方式,因為它比橋接效率更高也更容易設置(僅OpenVPN配置文件本身)。路由還可以給每個客戶端設置不同的訪問權限。推薦使用路由,除非你需要使用依賴于橋接的特性,比如:VPN需要處理非IP協議,例如IPX協議。在VPN上運行的程序依賴于網絡廣播(例如局域網游戲)。不建立Samba或WINS服務器,而允許在VPN上瀏覽Windows共享文件。

◆TUN設備和TAP設備的不同?

TAP設備是一塊虛擬的以太網卡,TUN設備是一個虛擬的點到點IP鏈接。

◆什么是橋接?

橋接是在一個子網上創建一個虛擬的、廣域的以太網LAN一種技術。橋接的實踐信息,參看Ethernet Bridging Mini-HOWTO,形象的解釋就是它就是連通不同局域網的橋梁,當外網用戶VPN過來時,如果能夠連通openVPN機器,那么openVPN能夠連通的機器,外網用戶都應該能夠連通。#p#

◆橋接和路由的不同?

橋接和路由是通過VPN連接系統的兩種方法。

橋接的優點:廣播可以穿越VPN--允許依賴局域網廣播的軟件運行,比如Windows的NetBIOS文件共享和網上鄰居。無需配置路由可以和以太網上的任何協議一起工作,包括IPv4, IPv6, Netware IPX, AppleTalk等等。

Relatively easy-to-configure solution for road warriors.

橋接的缺點:比路由效率低,擴展性不太好。

路由的優點:高效和可擴展、更好的MTU調節

路由的缺點:要使跨越VPN的網絡瀏覽工作,客戶端必須使用一個WINS服務器(比如samba)。必須設置連接每一個子網的路由。依賴于廣播的軟件不能看到在VPN另一邊的機器。僅支持IPv4, 如果連接兩邊的tun驅動明確支持IPv6,則也支持IPv6.

◆橋接和路由在配置上有什么不同?

當客戶端通過橋接方式連接遠端網絡時,它被分配一個遠端物理以太子網的IP地址,從而能夠和遠端子網其它機器交互就象它是連接在本地一樣。橋接需要特殊的OS-相關的工具用來將物理以太網卡和虛擬的TAP設備橋接起來。在Linux下,brtcl就是這樣一個工具。

對于Windowx XP或更高版本,從"控制面板->網絡連接"中選中TAP-Win32網卡和以太網卡,點擊鼠標右鍵,選擇轎接。而客戶端通過路由方式連接時,它使用自己的獨立子網, 并且在客戶機和遠端網關上都設置了路由,從而可以使數據包無縫地穿越VPN。客戶端可以不只是一臺機子,它可以是幾臺機子組成的一個子網。

橋接和路由很相似,主要的不同是路由的VPN不傳送IP廣播包,但是橋接的VPN傳送IP廣播包。

要使用橋接方式,連接的兩端都必須使用--dev tap,如果使用路由方式,可以使用--dev tap也可以使用--dev tun,但是連接的兩端必須一致. 對于路由方式而言,--dev tun的效率要更高一些。

Ethernet Bridging 

橋接概覽

以太網橋接將一個以太網接口和一個或多個虛擬TAP接口結合(combine)并將它們橋接為一個橋接接口。以太網橋接代表一個物理以太網交換機 (switch)的軟件模擬,以太網橋可以 認為是在一臺機器上共享一個IP子網連接多個以太網卡(物理的或虛擬的)的軟件交換機,

通過將在不同地方的一個物理以太網卡和一個OpenVPN的TAP接口橋接,可以將兩個以太網絡在邏輯上合并為好象是一個以太子網。

一、這里交待下openVPN的操作系統及網絡分配等。

openVPN服務器采用64bit的FreeBSD8,分配的IP為192.168.4.46,通過防火墻NAT上網,網關為192.168.4.3,單網卡,無公網IP;Freebsd8下配置網卡跟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

#p#

這里說明一下,跟bridge0分配的也是192.168.4.0網段的機器,這里我看網上大部分的文章都是用IP,即192.168.4.46,我建議另一個IP配置,這個IP不能跟局域網的IP發生沖突,腳本成功運行后,可用命令ifconfig 檢查下,成功的配置應該如下:

二、安裝過程我簡略帶過,不會的朋友請參考googel的相關搜索結果或我的上一篇文章《實路出真知 配置openVPN時應該注意的事項》,Server端的配置如下,這是重頭戲,相關語法我會詳細介紹。

[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
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

以上腳本運行時已成功啟動了openVPN,并分配了網橋bridge0地址--192.168.4.241,可用命令lsof  -i:1194檢驗下。#p#

 

這里我將server.conf詳細參數說明下,這里也是用bridge配置的重點

;locala.b.c.d ##申明本機使用的IP地址,也可以不說明
port1194 ##申明使用的端口,默認1194
;prototcp ##申明使用的協議,默認使用UDP,如果使用HTTP proxy,必須使用TCP協議
proto udp
dev tap ##申明使用的設備可選tap和tun,tap是二層設備,支持鏈路層協議。#tun是ip層的點對點協議,限制稍微多一些,本人習慣使用TAP設備
;devtun
;dev-nodeMyTap #windows下需要像這樣指定設備名
##OpenVPN使用的ROOT CA,使用build-ca生成的,用于驗證客戶是證書是否合法
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使用的證書對應的key,注意文件的權限,防止被盜
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重新啟動后"忘記"Client曾經使用過的IP地址
ifconfig-pool-persistipp.txt
#Bridge狀態下類似DHCPD的配置,為客戶分配地址,由于這里工作在橋接模式
server-bridge 192.168.4.241 255.255.255.0 192.168.4.244 192.168.4.246
#openVPN中有個參數是push,它表示通過VPN Server往Client push路由,
client通過pull指令獲得Server push的所有選項并應用(這一點很重要,這樣其他服務器添加一下路由就可以登陸了,
否則無效,這個最好和你的內網斷一至,否則也不生效),但在網橋模式下這個就不需要配置了,這個主要用于其路由模式。


#如果可以讓VPN Client之間相互訪問直接通過openvpn程序轉發
client-to-client
#NAT后面使用VPN,如果VPN長時間不通信,NAT Session可能會失效,
#導致VPN連接丟失,為防止之類事情的發生,keepalive提供一個類似于ping的機制,
#下面表示每10秒通過VPN的Control通道ping對方,如果連續120秒無法ping通,
#認為連接丟失,并重新啟動VPN,重新連接
#(對于mode server模式下的openvpn不會重新連接)。
keepalive10 120
#對數據進行壓縮,注意Server和Client一致
comp-lzo
#定義最大連接數
max-clients100
#定義運行openvpn的用戶
usernobody
groupnobody
#通過keepalive檢測超時后,重新啟動VPN,不重新讀取keys,保留第一次使用的keys
persist-key
#通過keepalive檢測超時后,重新啟動VPN,一直保持tun或者tap設備是linkup的,
#否則網絡連接會先linkdown然后linkup
persist-tun
#定期把openvpn的一些狀態信息寫到文件中,以便自己寫程序計費或者進行其他操作
statusopenvpn-status.log
#記錄日志,每次重新啟動openvpn后刪除原有的log信息
log
openvpn.log
#相當于debug level,具體查看manual
verb3
客戶端的配置文件較簡單, 我們這里就不能詳細闡述了,如下:
[root@openvpn]# cat client.txt | grep -v "^;" | grep -v "^#" | sed '/^$/d'
client
dev tap0
proto udp
remote 192.168.4.46 1194
#內網通過防火墻NAT作的DMZ映射出去
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert zacharyz.crt
key zacharyz.key
comp-lzo
verb 3

測試結果:

我們測試時分配的是聯通的公網IP,測試時發現只要一撥號,無論是ADSL還是小區環境,結果只要能連通192.168.4.46的機器,它所能連通的網段均都能連通,由于 我只需要ssh環境即可完成日常工作,但其它同事需要遠程桌面環境,所以準備將其更改完電信的公網IP;另整個環境部署工作完成時,得到了我們部門經理Manager Z的幫助,這里 表示感謝。這篇文章主要介紹的是橋接模式下的openVPN,如果只需要路由模式,請參考我在51cto的另一篇openVPN相關文章,請注意二者的區別;整個openVPN在64bit的Freebsd8下完成。

實際投入運用結果:

將openVPN映射的外網改成電信IP后,發現丟包現象完全沒有了;通過ADSL撥號上來,192.168.21.0/192.168.4.0/192.168.10.0/10.0.0.0這些網段的服務機和客戶機全通了;比路由模式確實簡單方便多了,如果有openVPN網橋需求的同志可參考這篇線上環境文章。

整個環境搭配總結:

一、同事們的上網環境不一樣,有的是長城帶寬,還有的是廣電網,我是天翼3G,還有的是ADSL共享上網,使用效果大家還是非常滿意的,openVPN的穿透非常強,什么的硬件防火墻或路由器都穿透了;

二、電信服務器對應電信的撥號客戶端效果不錯,如果是聯通對電信,那就是個杯具了;

三、盡量讓環境搭得讓大家舒服些,我在服務器添加了"push dns"選項,就是可以讓大家一邊上內網,一邊聊QQ,工作和娛樂兩不誤;

四、以后有環境的話我會用openVPN作機房的網關,用于多機房的VPN連接。

【51CTO.com獨家特稿,非經授權謝絕轉載!合作媒體轉載請注明原文出處及出處!】


 

責任編輯:佟健 來源: 51CTO.com
相關推薦

2010-12-02 10:12:12

2011-02-15 13:50:01

FreeBSDports

2010-10-26 09:13:26

2011-03-31 10:26:51

安裝MRTG

2010-12-27 13:26:25

FreeBSDvsftpd虛擬用戶

2013-12-23 10:14:36

虛擬網絡

2013-12-24 07:17:25

虛擬網絡網絡虛擬化

2010-10-13 15:02:09

Rsync同步FreeBSDCentOS

2013-06-28 08:49:46

炎黃盈動BPM

2012-08-13 16:48:31

架構師

2021-10-26 11:42:51

系統

2011-02-23 14:05:57

2011-04-02 09:20:23

freebsdmrtg安裝

2011-01-13 15:57:20

FreeBSD 8.1vsftpd

2019-10-18 11:11:52

DynamoDBNoSQL數據庫

2011-02-17 09:45:54

FreeBSD 8.1nginx負載均衡

2011-04-06 10:03:08

2010-09-01 22:12:53

2015-12-25 10:42:57

愛數云存儲

2010-07-01 14:59:51

FreeBSD 8
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www成人免费 | 日韩激情视频一区 | 欧洲成人 | 国产在线播 | 精品国产亚洲一区二区三区大结局 | 亚洲成人久久久 | 日韩欧美在线不卡 | 成人在线欧美 | 久久天堂网 | 国产xxxx搡xxxxx搡麻豆 | 黄色av网站在线免费观看 | 啪啪网页 | www.99re| 亚洲成人精选 | h片在线看 | 国产亚洲精品综合一区 | 夜夜骑综合 | 亚洲国产精品一区二区第一页 | 欧美精品一区二区三区四区 在线 | 亚欧洲精品在线视频免费观看 | 狠狠干狠狠操 | 亚洲av毛片| 成人国产在线视频 | 一区二区三区欧美 | av中文字幕在线播放 | 精品国产31久久久久久 | 精区3d动漫一品二品精区 | 91资源在线 | 亚洲精品一区二区 | 一区二区不卡高清 | 久久三区 | 欧美三区 | 国产精品精品久久久 | 日本免费视频在线观看 | 色妞av| 人人精品 | 91麻豆久久久 | 亚洲一区电影 | 自拍偷拍第一页 | 国内久久精品 | 欧美偷偷|