Linux GRE tunnel的構建原理及應用

Linux GRE tunnel的構建原理及應用

來自專欄 雲計算網路技術雜談

Generic Enapsulation Tunnel是一種網路隧道技術,之所以稱為通用隧道技術,是它可以用來將Ethernet、IP、MPLS等多種報文封裝在IP報文中予以轉發,在網路中存在較為大規模的應用。

Linux系統原生支持了GRE介面,其配置命令如下:

ip tunnel add gret1 mode gre remote 45.42.104.183 local 189.245.246.51 ttl 128 # 配置一條以189.245.246.51為源地址,45.42.104.183為目的地址的gre tunnel

ip link set gret1 up # 設置為up

ip addr add 1.1.1.2/32 dev gret1 # 為此gre tunnel配置ip地址

ip route add 2.2.2.2/32 dev gret1 # 配置路由2.2.2.2/32到gre1

在上面的配置後,訪問2.2.2.2/32這個地址的IP報文就會通過gret1封裝成gre報文出去,外層IP報文的源目的地址為:189.245.246.51/45.42.104.183,內層IP報文的源目的地址為:1.1.1.2/2.2.2.2。

通過這樣的配置,我們可以在兩台設備間建立一條端到端的通路,入口設備可通過iptables將訪問自身的流量DNAT到2.2.2.2這個ip上,從而通過gre tunnel到達2.2.2.2所在的機器,在2.2.2.2上部署代理伺服器就可以實現以隧道形式穿越internet。

利用這樣的技術可以實現較多功能,如思科的DMVPN(思科為了加密,IP層又實現了IPsec)實現多點VPN,由於GRE無狀態,且內網報文封裝為虛擬IP,因此還可以藉助此技術可以企業分支之間的互聯,根據之前跟Google朋友的交流,Google數據之心之間的互聯,也採用了GRE技術。


推薦閱讀:

200平房子,買什麼路由器能實現WiFi覆蓋?
電力貓是否真的那麼神?
你知道哪些知乎用戶,適合做硬體產品體驗官?
哪些人會購買小米路由?
買了個小米路由器3,很後悔,快被折騰死了,為什麼這路由器網速這麼慢?

TAG:路由器 | 計算機網路 |