ipip隧道及其实现

linux 专栏收录该内容
12 篇文章 0 订阅

IP隧道技术:

是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程。

 

IP 隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。移动IPv4主要有三种隧道技术,它们分别是:IP in IP、最小封装以及通用路由封装。

 

Linux系统内核实现的IP隧道技术主要有三种(PPP、PPTP和L2TP等协议或软件不是基于内核模块的):

ipip、gre、sit 。这三种隧道技术都需要内核模块 tunnel4.ko 的支持

 

ipip  :需要内核模块 ipip.ko ,该方式最为简单!但是你不能通过IP-in-IP隧道转发广播或者IPv6数据包。你只是连接了两个一般情况下无法直接通讯的IPv4网络而已

 

GRE  :需要内核模块 ip_gre.ko ,GRE是最初由CISCO开发出来的隧道协议,能够做一些IP-in-IP隧道做不到的事情。比如,你可以使用GRE隧道传输多播数据包和IPv6数据包。

sit  : 其作用是连接 ipv4 与 ipv6 的网络

 

sit模块所在位置:   /lib/modules/内核版本号/kernel/net/ipv6/sit.ko.xz

ipip模块所在位置:  /lib/modules/内核版本号/kernel/net/ipv4/ipip.ko.xz

gre模块所在位置:  /lib/modules/内核版本号/kernel/net/ipv4/gre.ko.xz

 

查看模块信息命令: modinfo   模块名称

如: modinfo  sit  

     modinfo ip_gre

     modinfo  ipip

 

ip  tunnel 配置:

   

这里使用ipip、sit ,只需要把modprobe后面的模块换掉,把ip tunnel 命令中mode后面的字符替换掉即可

 

ipv4网络中的配置:

a主机配置如下:

  modprobe  ipip

  modprobe  ip_gre

  ip tunnel add tun0 mode gre remote 192.168.122.90 local 192.168.122.80 ttl 64

  ip link set tun0 up

  ip addr add 192.168.1.80 peer 192.168.2.90 dev tun0

  ip route add 192.168.2.0/24 dev tun0

  iptables -F

 

b主机配置如下:

modprobe ipip  

modprobe ip_gre  

ip tunnel add tun0 mode gre remote 192.168.122.80 local 192.168.122.90 ttl 64  

ip link set tun0 up  

ip addr add 192.168.2.90 peer 192.168.1.80 dev tun0  

ip route add 192.168.1.0/24 dev tun0  

iptables -F

 

iptables  -F 也可以换成:

  iptables -I INPUT -p gre -j ACCEPT 或CentOS7下执行

  firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i eth0 -p gre -j ACCEPT

 

假如这边还有台主机C,C主机只有一块网卡,其IP为192.168.1.100,和a主机同在eth1网段,可以将a主机配置为一个简单的种由器,其可以访问b主机的IP 192.168.2.90 。只需要在a主机中做如下配置即可。

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

注意:该场景下,需要将C主机的网关指向a主机 。

 

2、ipv6网络中的配置

两台主机的信息如下:

a. PC1 eth0:2001::1/64; eth1:192.168.1.1/24;

b. PC2 eth0:2001::2/64; eth1:192.168.2.1/24;

配置如下:

a主机配置

modprobe ip6_tunnel

ip -6 tunnel add tun0 mode ipip6 remote 2001::2 local 2001::1 ttl 64

ip link set tun0 up

ip addr add 192.168.1.1 peer 192.168.2.1 dev tun0

ip route add 192.168.2.0/24 dev tun0

iptables -F

 

b主机配置

modprobe ip6_tunnel

ip -6 tunnel add tun0 mode ipip6 remote 2001::1 local 2001::2 ttl 64

ip link set tun0 up

ip addr add 192.168.2.1 peer 192.168.1.1 dev tun0

ip route add 192.168.1.0/24 dev tun0

iptables -F

 

 

参考地址: http://www.361way.com/linux-tunnel/5199.html

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值