首頁 > 軟體

CentOS下GRE隧道設定

2020-06-16 17:13:23

一、拓撲圖:

本實驗環境為兩台CentOS 6.0 Linux系統,由於是測試使用,這裡採用設定虛擬網絡卡的方式來解決裝置只有一個網絡卡的情況。為兩台伺服器設定GRE隧道,隧道地址使用172.16.1.0/30網段。使得兩台Linux的內網絡卡相互通訊,從而打通兩個內網,使得兩個內網成為一個區域網。

二、虛擬網絡卡介面設定:
這裡只例舉虛擬網設定,真實網絡卡設定不闡述。
1、切換目錄到網絡卡檔案目錄下:
[root@linuxidc ~]# cd /etc/sysconfig/network-scripts/
2、檢視網絡卡檔案,找到網絡卡原檔案eth0,啟用虛介面可命名為eth0:0
首先複製網絡卡檔案模版(在上面這個檔案目錄下操作):
[root@linuxidc network-scripts]# cp ifcfg-eth0ifcfg-eth0:0
使用ls命令檢視,會發現多出一塊網絡卡檔案ifcfg-eth0:0。編輯該網絡卡檔案,設定上內網絡卡地址(20.0.1.1/24),注意此網絡卡檔案裡不設定閘道器,如果設定閘道器需加路由才能實現外網存取,這裡只設定虛介面地址,不啟用閘道器。
[root@Linux1 ~]# vi ifcfg-eth0:0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0:0(裝置名,注意修改為0:0)
ONBOOT=yes(設定為開機啟動)
HWADDR=00:0c:29:08:48:63(虛介面MAC,即網絡卡實際MAC)
NETMASK=255.255.255.0
IPADDR=20.0.1.1
TYPE=Ethernet
IPV6INIT=no
3、關閉網路管控服務(不關閉,虛介面起不來):
[root@linuxidc network-scripts]# serviceNetworkManager stop(注意大小寫)
4、設定開機不啟動網路管控服務:
[root@linuxidc network-scripts]# chkconfigNetworkManager off
5、重新啟動網路服務
[root@linuxidc network-scripts]# servicenetwork restart
6、查詢DNS設定是否正常:
[root@linuxidc network-scripts]# vi/etc/resolv.conf
7、關閉防火牆(不關閉對虛介面地址有影響),並設定為開機不啟動:
[root@linuxidc network-scripts]# serviceiptables stop
[root@linuxidc network-scripts]# chkconfigiptables off
設定完成後ping測試虛介面地址是否設定成功,也可使用ifconfig檢視設定情況。
L2設定類似,這裡不追述。

三、GRE tunnel隧道設定:
1、載入核心模組
首先檢視核心模組檔案:[root@linuxidcnetwork-scripts]# modprobe -l |grep ip_gre.ko
(以前的版本的kernal中的GRE模組都是ip_gre.o,而RHEL5中叫ip_gre.ko)
本實驗環境的路徑如下:

然後載入GRE模組:
[root@linuxidc network-scripts]# insmod/lib/modules/2.6.32-71.el6.x86_64/kernel/net/ipv4/ip_gre.ko
注意上圖命令中,前半部分為預設路徑,不同版本預設路徑不同。
註:核心模組載入成功後我們需要設定開機自動載入,不然重新啟動後需手動載入。這裡我們寫一個.Sh的執行檔案,在後面講述檔案內容。
2、設定tunnel
Linux1:
[root@linuxidc ~]# ip tunnel add tunnel0 mode gre remote 192.168.31.9 local              192.168.77.137 ttl 245
[root@linuxidc ~]# ip link set tunnel0 up mtu 1400
[root@linuxidc ~]# ip addr add 172.16.1.1/30  dev tunnel0
[root@linuxidc ~]# ip addr add 172.16.1.1/30 peer 172.16.1.2/30 dev tunnel0
[root@linuxidc ~]# ip route add 20.0.2.1/32 dev tunnel0
Linux2:
[root@linuxidc ~]# ip tunnel add tunnel0 mode gre remote 192.168.77.137 local192.168.31.9 ttl 245
[root@linuxidc ~]# ip link set tunnel0 up mtu 1400
[root@linuxidc ~]# ip addr add 172.16.1.2/30  dev tunnel0
[root@linuxidc ~]# ip addr add 172.16.1.2/30 peer 172.16.1.1/30 dev tunnel0
[root@linuxidc ~]# ip route add 20.0.1.1/32dev tunnel0
3、設定tunnel開機執行檔案
[root@linuxidc ~]# vi /etc/init.d/gre.sh (兩個Linux系統中同時建立該檔案)
L1中gre.sh設定內容如下:
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/net/ipv4/ip_gre.ko(開機載入核心模組)
ip tunnel add tunnel0 mode gre remote 192.168.31.9 local 192.168.77.137 ttl 245
ip link set tunnel0 up mtu 1400
ip addr add 172.16.1.1/30  dev tunnel0
ip addr del 172.16.1.1/30 peer 172.16.1.2/30 dev tunnel0
ip addr add 172.16.1.1/30 peer 172.16.1.2/30 dev tunnel0
ip route add 20.0.2.1/32 dev tunnel0
chmod +x /etc/init.d/gre.sh
echo "/etc/init.d/gre.sh">> /etc/rc.d/rc.local(將該檔案載入到開機啟動的系統檔案中)

L2中gre.sh設定內容如下:
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/net/ipv4/ip_gre.ko(開機載入核心模組)
ip tunnel add tunnel0 mode gre remote192.168.77.137 local 192.168.31.9 ttl 245
ip link set tunnel0 up mtu 1400
ip addr add 172.16.1.2/30  dev tunnel0
ip addr del 172.16.1.2/30 peer 172.16.1.1/30 dev tunnel0
ip addr add 172.16.1.2/30 peer 172.16.1.1/30 dev tunnel0
ip route add 20.0.1.1/32dev tunnel0
chmod +x /etc/init.d/gre.sh
echo "/etc/init.d/gre.sh">> /etc/rc.d/rc.local(將該檔案載入到開機啟動的系統檔案中)

四、驗證隧道設定:
L1系統下 ip addr show 結果如下(L2中類似):

L2上面的Ifconfig檢視:

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-05/144351.htm


IT145.com E-mail:sddin#qq.com