1,GRE,即通用路由封裝協議,GRE隧道是一種IP-over-IP的隧道,創建虛擬的點對點鏈接,對經過隧道的某些網路層協議的數據包進行封裝,使這些被封裝的數據包可以在IPv4/IPv6 網絡中傳輸,在Tunnel 的兩端分別對數據報進行封裝及解封裝。
要在Linux上建立GRE隧道,須要ip_gre內核模塊,它是GRE經過IPv4隧道的驅動程序,默認是包含在內核裏的,沒有的話須要加上這個模塊。
啓動隧道配置規則:
ip tunnel add 新的tunnel的名稱 mode gre remote 對端物理IP local 本端物理IP ttl 255
ip link set 新的tunnel的名稱 up
ip addr add 新的tunnel的名稱的IP dev 新的tunnel的名稱
ip route add 對端的內網私有網段/掩碼 dev 新的tunnel的名稱
2,搭建(平臺debian 7 64位)
HOST A: 139.162.24.259
HOST B: 106.187.53.168
HOST A:
ip tunnel add gre1 mode gre remote 106.187.53.168 local 139.162.24.259 ttl 255
ip link set gre1 up mtu 1400
ip addr add 10.11.2.2 peer 10.11.2.1 dev gre1
HOST B:
ip tunnel add gre1 mode gre remote 139.162.24.259 local 106.187.53.168 ttl 255
ip link set gre1 up mtu 1400
ip addr add 10.11.2.1 peer 10.11.2.2/24 dev gre1
3,檢測連通性,ping隧道對端IP 10.11.2.*,ping通後,HOST A和 HOST B間就創建了GRE隧道
4,撤銷GRE隧道
ip link set gre1 down
ip tunnel del gre1
ip addr show 檢驗隧道是否創建,ifconfig也能看到
網絡