嵌入式 建立 GRE Tunnel

2021-08-20 13:24:25 字數 3701 閱讀 5652

一、確定ip_gre

模組是否被載入

$ sudo modprobe ip_gre

$ lsmod | grep gre

結果:

# lsmod | grep gre

ip_gre 12594 0

gre 1106 1 ip_gre

如果沒有要進行核心的配置,步驟如下。

1、進入核心檔案目錄 cd linux-3.0.y

2、進入 networking support

4、找到紅色框中的選項,選擇模組編譯,這樣就只要載入模組,而不需要重新燒寫核心。

5、儲存退出

6、編譯核心

make zimage
7、拷貝gre.ko 、ip_gre.ko 兩個檔案到裝置目錄

8、載入模組

# insmod ./gre.ko 

# insmod ./ip_gre.ko

9、檢視是否載入

lsmod | grep gre
如果出現了,則載入完成。

ip_gre                 12594  0 

gre 1106 1 ip_gre

二、建立gre tunnel

1、在主機a和b兩個介面之間建立乙個gre隧道,並使用以下ip位址。

host a:192.168.9.161

host b:192.168.9.166

這個兩個位址可以在不同網段中,只要能互相ping同就可以。

2、在主機a執行如下命令

ip tunnel add atb mode gre remote 192.168.9.166 local 192.168.9.161 ttl 255

ip link set atb up

ip addr add 10.10.10.1/24 dev atb

在上面,我們建立了乙個名為atb的灰色隧道裝置,並將其遠端位址設定為192.168.9.166。隧道資料報將來自192.168.9.161(本地ip位址),並且它們的ttl欄位將被設定為255。隧道裝置被分配ip位址10.10.10.1和netmask 255.255.255.0。

3、在主機b執行如下命令

ip tunnel add atb mode gre remote 192.168.9.161 local 192.168.9.166 ttl 255

ip link set atb up

ip addr add 10.10.10.2/24 dev atb

4、在主機b檢視路由

# ip route show

default via 192.168.9.1 dev eth0

10.10.10.0/24 dev atb src 10.10.10.2

192.168.9.0/24 dev eth0 src 192.168.9.166

這裡多了 個atb ,同樣也可以在a主機看到相同的結果。

5、ifcong 查詢a主機

root@ubuntu16:# ifconfig

atb link encap:未指定 硬體位址 c0-a8-09-a1-00-00-3c-45-00-00-00-00-00-00-00-00

up pointopoint running noarp mtu:1476 躍點數:1

接收資料報:1479 錯誤:0 丟棄:0 過載:0 幀數:0

傳送資料報:1021 錯誤:0 丟棄:0 過載:0 載波:0

碰撞:0 傳送佇列長度:1

接收位元組:1576499 (1.5 mb) 傳送位元組:81643 (81.6 kb)

6、ifconfig 檢視b主機

# ifconfig       

atb link encap:unspec hwaddr c0-a8-09-a6-00-00-00-00-00-00-00-00-00-00-00-00

inet addr:10.10.10.2 p-t-p:10.10.10.2 mask:255.255.255.0

up pointopoint running noarp mtu:1476 metric:1

rx packets:877 errors:0 dropped:0 overruns:0 frame:0

tx packets:1591 errors:17 dropped:0 overruns:0 carrier:17

collisions:0 txqueuelen:0

rx bytes:69631 (67.9 kib) tx bytes:1551103 (1.4 mib)

7、在主機 a ping 主機b

root@ubuntu16:# ping 10.10.10.2

ping 10.10.10.2 (10.10.10.2) 56(84) bytes of data.

64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=1.96 ms

64 bytes from 10.10.10.2: icmp_seq=2 ttl=64 time=1.73 ms

64 bytes from 10.10.10.2: icmp_seq=3 ttl=64 time=1.22 ms

64 bytes from 10.10.10.2: icmp_seq=4 ttl=64 time=1.87 ms

64 bytes from 10.10.10.2: icmp_seq=5 ttl=64 time=1.68 ms

可以ping通說明已經在主機a和主機b之間建立了gre tunnel

8、如果想改變,遠端主機的ip或者本地主機的ip

ip tunnel change atb remote 192.168.9.161 local 192.168.9.166
9、斷開隧道

ip link set atb down
10、刪除隧道

ip tunnel del atb

初識嵌入式 嵌入式開發概述

1 什麼是嵌入式技術 1 嵌入式軟體與非嵌入式軟體的區別?答 嵌入式軟體是結合作業系統之上做的開發 非嵌入式軟體是做的裸機開發。裸機 沒有作業系統 2 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...

如何學習嵌入式 嵌入式如何入門?

學習嵌入式,該學習什麼基本的知識呢?嵌入式如何入門?其次,應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如程序 執行緒,系統如何來分配資源的,系統如何來管理硬體的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關係,多看看,結合以後的專案經驗...

非嵌入式與嵌入式的區別

非嵌入式是通過軟體控制硬體,軟硬體之間直接聯絡來實現要求。但是一旦硬體發生改變軟體也要改變,為了降低這種偶合度過高的問題,出現了嵌入式。嵌入式在軟體和硬體之間新增了作業系統,軟體通過控制作業系統進而控制硬體,硬體發生改變並不會導致軟體也發生改變,這為軟體開發人員節約了很多時間,並且嵌入式能在已有的硬...