Linux中如何配置GRE隧道
配置拓?fù)?/h2>

這里使用ens33接口地址來建立隧道,使用ens37接口地址做隧道接口標(biāo)識(shí),使用ens38接口地址來模擬私網(wǎng)業(yè)務(wù)地址。
實(shí)際場(chǎng)景中,用于建立隧道的地址是公網(wǎng)地址,而業(yè)務(wù)地址是私網(wǎng)地址,GRE隧道使得私網(wǎng)地址空間不會(huì)暴露于公網(wǎng)。
具體配置
1. node02
開啟路由轉(zhuǎn)發(fā),加載GRE協(xié)議模塊。
# 開啟ipv4路由轉(zhuǎn)發(fā) echo 1 > /proc/sys/net/ipv4/ip_forward # 查看GRE內(nèi)核模塊信息 modinfo ip_gre # 查看GRE內(nèi)核模塊是否安裝 lsmod | grep ip_gre # 加載GRE內(nèi)核模塊 modprobe ip_gre modprobe --first-time ip_gre
創(chuàng)建隧道虛接口tunnel2并配置隧道接口ip(隧道標(biāo)識(shí))。
# 配置GRE隧道的source和destination ip(外部,公網(wǎng)地址) ip tunnel add tunnel2 mode gre local 192.168.91.129 remote 192.168.91.130 ttl 255 dev ens33 # 配置GRE tunnel接口的隧道標(biāo)識(shí)(在數(shù)通設(shè)備上可以通過ip unnumber借用其他接口的primary ip) ip addr add 172.16.18.10 dev tunnel2 peer 172.16.20.20/24 # 開啟tunnel2接口 ip link set dev tunnel2 up # 查看tunnel接口 ifconfig ip a
添加指向隧道接口的路由以引導(dǎo)流量進(jìn)入隧道。
# 添加私網(wǎng)路由指向隧道口 ip route add 10.10.20.20/32 dev tunnel2 ip route add 172.16.20.20/32 dev tunnel2
2. node03
開啟路由轉(zhuǎn)發(fā),加載GRE協(xié)議模塊。
# 開啟ipv4路由轉(zhuǎn)發(fā) echo 1 > /proc/sys/net/ipv4/ip_forward # 加載GRE內(nèi)核模塊 modprobe --first-time ip_gre
創(chuàng)建隧道虛接口tunnel2并配置隧道接口ip(隧道標(biāo)識(shí))。
# 配置GRE隧道的source和destination ip(外部,公網(wǎng)地址) ip tunnel add tunnel2 mode gre local 192.168.91.130 remote 192.168.91.129 ttl 255 dev ens33 # 配置GRE tunnel接口的隧道標(biāo)識(shí)(在數(shù)通設(shè)備上可以通過ip unnumber借用其他接口的primary ip) ip addr add 172.16.20.20 dev tunnel2 peer 172.16.18.10/24 # 開啟tunnel2接口 ip link set dev tunnel2 up
添加指向隧道接口的路由以引導(dǎo)流量進(jìn)入隧道。
# 添加私網(wǎng)路由指向隧道口 ip route add 10.10.10.10/32 dev tunnel2 ip route add 172.16.18.10/32 dev tunnel2
3. 查看路由表
route -n # 推薦此法 或者 netstat -nr
4. 驗(yàn)證
- 隧道建立
[root@node02 ~]# ping -c3 -I 10.10.10.10 10.10.20.20 PING 10.10.20.20 (10.10.20.20) from 10.10.10.10 : 56(84) bytes of data. 64 bytes from 10.10.20.20: icmp_seq=1 ttl=64 time=0.708 ms 64 bytes from 10.10.20.20: icmp_seq=2 ttl=64 time=0.523 ms 64 bytes from 10.10.20.20: icmp_seq=3 ttl=64 time=0.555 ms --- 10.10.20.20 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.523/0.595/0.708/0.083 ms [root@node02 ~]# ping -c3 -I 172.16.18.10 172.16.20.20 PING 172.16.20.20 (172.16.20.20) from 172.16.18.10 : 56(84) bytes of data. 64 bytes from 172.16.20.20: icmp_seq=1 ttl=64 time=1.12 ms 64 bytes from 172.16.20.20: icmp_seq=2 ttl=64 time=0.509 ms 64 bytes from 172.16.20.20: icmp_seq=3 ttl=64 time=0.469 ms --- 172.16.20.20 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2006ms rtt min/avg/max/mdev = 0.469/0.700/1.122/0.298 ms
- 隧道拆除
將tunnel2接口shutdown
ip link set dev tunnel2 down
再進(jìn)行ping測(cè)試
[root@node02 ~]# ping -c3 -I 10.10.10.10 10.10.20.20 PING 10.10.20.20 (10.10.20.20) from 10.10.10.10 : 56(84) bytes of data. --- 10.10.20.20 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2017ms [root@node02 ~]# ping -c3 -I 172.16.18.10 172.16.20.20 PING 172.16.20.20 (172.16.20.20) from 172.16.18.10 : 56(84) bytes of data. --- 172.16.20.20 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2023ms
5. 配置多個(gè)環(huán)回地址
在上述的配置中可以發(fā)現(xiàn)啟用了多個(gè)物理網(wǎng)卡來提供本地IP,但在實(shí)際應(yīng)用中可能不具備這樣的條件。配置多個(gè)環(huán)回口地址是一個(gè)解決思路。
操作步驟如下:
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:1
vim ifcfg-lo:1
----------------------------------------------------
DEVICE=lo:1
IPADDR=10.199.18.16
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback1
----------------------------------------------------
systemctl restart network
ifconfig
----------------------------------------------------
lo:1: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 10.199.18.16 netmask 255.255.255.255
loop txqueuelen 1000 (Local Loopback)
----------------------------------------------------
ip a
----------------------------------------------------
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 10.199.18.16/32 brd 10.199.18.16 scope global lo:1
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
----------------------------------------------------
[root@node01 network-scripts]# ping -c3 10.199.18.16
PING 10.199.18.16 (10.199.18.16) 56(84) bytes of data.
64 bytes from 10.199.18.16: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.199.18.16: icmp_seq=2 ttl=64 time=0.050 ms
64 bytes from 10.199.18.16: icmp_seq=3 ttl=64 time=0.053 ms
如果是非持久化的添加(重啟后失效),可以使用如下命令:
ip addr add 10.199.18.16/32 dev lo:1
使用上述命令添加的環(huán)回接口地址只能使用“ ip a ”命令才可以查看到,使用“ ifconfig ”命令是看不到的。
但是在系統(tǒng)中可以ping通。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux下查看系統(tǒng)進(jìn)程占用的句柄數(shù)方法
下面小編就為大家?guī)硪黄猯inux下查看系統(tǒng)進(jìn)程占用的句柄數(shù)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
Linux環(huán)境下監(jiān)控和檢查內(nèi)存使用的幾種方法
內(nèi)存管理是保持 Linux 系統(tǒng)平穩(wěn)運(yùn)行的重要組成部分,無論您是系統(tǒng)管理員、開發(fā)者,學(xué)會(huì)檢查 Linux 內(nèi)存使用情況是確保系統(tǒng)穩(wěn)定性和性能的關(guān)鍵步驟,本文將介紹在 Linux 環(huán)境下監(jiān)控和檢查內(nèi)存使用的幾種方法,需要的朋友可以參考下2025-12-12
Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法
本篇文章主要介紹了Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Ubuntu下Kdevelop的簡(jiǎn)單使用與調(diào)試過程
KDevelop是一個(gè)強(qiáng)大的C++ IDE,以下是使用KDevelop進(jìn)行C++編程的基本步驟,包括新建工程、編譯、執(zhí)行和調(diào)試,希望這些信息對(duì)你有所幫助2026-01-01
6種查看Linux進(jìn)程占用端口號(hào)的方法詳解
對(duì)于 Linux 系統(tǒng)管理員來說,清楚某個(gè)服務(wù)是否正確地綁定或監(jiān)聽某個(gè)端口,是至關(guān)重要的,本文為大家分享6種查看Linux進(jìn)程占用端口號(hào)的方法分別是:ss,netstat,lsof fuser,nmap,systemctl2018-10-10

