Linux 隧道接口 介绍
2021/10/21 7:13:12
本文主要是介绍Linux 隧道接口 介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简介
IP隧道是两个网络之间的互联网协议(IP)网络通信通道。它被用来通过包的封装来传输另一个网络协议。
Linux支持许多类型的通道,简要介绍Linux内核中常用的隧道接口。没有代码分析,只是简单介绍接口及其在Linux上的使用。任何有网络背景的人都可能对这篇博客文章感兴趣。tunnel接口列表可以通过下发iproute2命令ip link help获取。具体的隧道配置帮助也可以通过ip link Help 命令获取。
隧道的简单形式如下
类型 | outer | inner | 原载荷 |
Tunnel 类型与说明
Tunnel/Link Type | Outer Header | Encapsulate Header | Inner Header |
---|---|---|---|
ipip | IPv4 | None | IPv4 |
sit | IPv4 | None | IPv4/IPv6 |
ip6tnl | IPv6 | None | IPv4/IPv6 |
vit | IPv4 | IPsec | IPv4 |
vit6 | IPv6 | IPsec | IPv6 |
gre | IPv4 | GRE | IPv4/IPv6 |
gretap | IPv4 | GRE | Ether + IPv4/IPv6 |
ip6gre | IPv6 | GRE | IPv4/IPv6 |
ip6gretap | IPv6 | GRE | Ether + IPv4/IPv6 |
fou | IPv4/IPv6 | UDP | IPv4/IPv6/GRE |
gue | IPv4/IPv6 | UDP + GUE | IPv4/IPv6/GRE |
geneve | IPv4/IPv6 | UDP + Geneve | Ether + IPv4/IPv6 |
erspan | IPv4 | GRE + ERSPAN | IPv4/IPv6 |
ip6erspan | IPv6 | GRE + ERSPAN | IPv4/IPv6 |
IPIP Tunne
IPIP隧道,顾名思义,是在RFC 2003中定义的IP over IP隧道。
确认是否存在ipip驱动
root@AllstarOS:/admin/ipv6# lsmod |grep ipip ip_tunnel 12273 4 sit,ip_gre,ip_vti,ipip ipip 4748 0 tunnel4 2197 3 sit,xfrm4_tunnel,ipip
ipip 隧道配置
On Server A: # ip link add name ipip0 type ipip local <SERVER_A_v4_ADDR> remote <SERVER_B_v4_ADDR> # ip link set ipip0 up # ip addr add <SERVER_A_INTERNAL_v4_ADDR>/24 dev ipip0 Add a remote internal subnet route if the endpoints don't belong to the same subnet # ip route add <SERVER_B_INTERNAL_v4_SUBNET>/24 dev ipip0 On Server B: # ip link add name ipip0 type ipip local <SERVER_B_v4_ADDR> remote <SERVER_A_v4_ADDR> # ip link set ipip0 up # ip addr add <SERVER_B_INTERNAL_V4_ADDR>/24 dev ipip0 # ip route add <SERVER_A_INTERNAL_v4_SUBNET>/24 dev ipip0
确认防火墙配置
SIT Tunnel
驱动确认
root@AllstarOS:/admin/ipv6# lsmod |grep sit ip_tunnel 12273 4 sit,ip_gre,ip_vti,ipip sit 14835 0 tunnel4 2197 3 sit,xfrm4_tunnel,ipip
sit 配置
A端
ip tunnel add sittun mode sit local a.a.a.a remote b.b.b.b ttl 64 dev ens32 # 添加本地隧道端ipv6地址 ip addr add dev sittun 240e:aaaa:aaaa:aaaa::a/127 #添加缺省路由,就是出口网关 ip -6 route add default via 出口ipv6网关 # 添加路由回去的路由,下一跳指向client隧道地址 ip -6 route add 240e:096c:0200:0a11::/64 via 240e:096c:0200:0a10::b # 开启网卡 ip link set dev sittun up
B端
ip tunnel add sittun mode sit local b.b.b.b remote a.a.a.a ttl 64 dev ens160 ip addr add dev sittun 240e:aaaa:aaaa:aaaa::b/127 ip -6 route add default via 240e:aaaa:aaaa:aaaa::a ip link set dev sittun up
注意事项
开启ipv6转发功能,可以在/etc/sysctl.conf里面添加配置文件。 sysctl -w net.ipv6.conf.all.forwarding=1 sysctl -w net.ipv6.conf.ens32.accept_ra=2 ip6tables -I FORWARD -i sittun -j ACCEPT ip6tables -I FORWARD -o sittun -j ACCEPT
确认:可以通过 在 A端ping B端的ipv6地址确认
这篇关于Linux 隧道接口 介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法