openvxn工做原理與數據包流向

很長時間沒寫博客,沒錯,我又被拉去作外包了,很少BB,直接上乾貨。也許你面試須要
openvxn區別與傳統vxn,它工做在IP層,OpenVxN是一款基於SSL的開源VxN軟件,它實現了利用SSL來保證網絡通信安全性的目的,同時避免了傳統SSL VxN僅提供簡單的Web應用的不足,它具備支持各類應用協議,支持Windows,Linux,BSD,MAC OS等多平臺的特色。面試

環境說明
A爲客戶端192.168.1.2
B爲服務端10.0.0.2 已經在配置文件中加入了push "redirect-gateway def1 bypass-dhcp",將客戶端流量所有走openvxn,缺點:須要配合客戶端上的配置redirect-gateway def1來實現,可是若是有的時候客戶端上若是須要正常上網可能會受到影響算法

撥號完成後,根據配置ovxn中指定的tun/tap,生成對應虛擬網卡tun/tap,虛擬網卡的做用就是openvxn程序可以迅速經過tun/tap虛擬設備與數據包之間進行交互安全

下面是發送和接收原理
發送:
A去往B的某個地址,這裏假定是10.0.0.3,撥號完成後,A得到了去往10.0.0.0/8網段的路由,即去往10.0.0.0/8網段的下一跳走tun/tap網卡,理論上A作了兩點,第一點就是A判斷數據包的目標IP地址是否是本身本網段的,或者說是路由表中其餘地址的,再根據路由表進行轉發;第二點就是A判斷出是去往服務端網段的,將全部數據包送往tun/tap網卡,再經由該網卡通知openvxn應用程序調用write函數和ssl加密而且封裝,且將真實目標ip地址(例如目標地址是10.0.0.3)和數據包做爲數據,在最外側將目標ip地址定爲openvxn服務端的外網ip地址,再轉發給外網卡eth1或者eth0,經由internet發送到服務端。網絡

接收:
openvxn服務端接收到此數據包以後,根據外側的加密算法判斷出這是vxn數據包,再次發給tun/tap網卡,tun/tap網卡通知openvxn應用程序,調用read函數和ssl對數據進行解密而且剝離包頭,將實際的目標ip地址暴露出來,此時數據包根據vxn服務端的路由表,再到肯定的目標10.0.0.3地址上去。ide

openvxn下tun模式的流程圖:
openvxn工做原理與數據包流向函數

參考:https://www.jianshu.com/p/09f9375b7fa7加密

相關文章
相關標籤/搜索