IPv6 over IPv4 之SIT隧道

一.SIT模块功能简介

SIT模块是支持ISATAP隧道和6to4隧道两种隧道模式的

ISATAP和6to4都是目前比较流行的自动建立隧道的过渡技术,都可以连接被IPv4隔绝的IPv6孤岛,都是通过将IPv4地址嵌入到IPv6地址当中,并将IPv6封包封装在IPv4中传送,在主机相互通信中抽出IPv4地址建立tunnel。但具体实现的流程,IPv6地址和应用范围不尽相同。

ISATAP的全名是 Intra-Site Automatic Tunnel Addressing Protocol,它将IPv4地址夹入IPv6地址中,当两台 ISATAP 主机通讯时,可自动抽取出 IPv4 地址建立 Tunnel 即可通讯,且并不需透过其它特殊网络设备,只要彼此间IPv4网络通畅即可。

双栈主机支持ISATAP后会自动在该隧道接口上生成本地链路的前缀(fe80::开头)和64位的接口标识符::0:5EFE:X.X.X.X(这里的X.X.X.X是双栈主机的IPv4单播地址),这样就可以和同一子网内其他ISATAP客户机进行ipv6通讯了;如果需要和其他网络的ISATAP客户机或者IPv6网络通信,必须通过ISATAP路由器拿到全球单播地址前缀(2001:, 2002:, 3ffe:开头),通过路由器与其他IPv6主机和网络通信。

ISATAP过渡技术不要求隧道端节点必须具有全球惟一的IPv4地址,只要双栈主机具有IPv4单播地址即可,不管该地址公有的还是私有的都可以。

6to4( RFC3056 )机制被定义在站点之间进行IPv6通讯,每个站点必须至少有一台“6to4”路由器作为出入口,使用特需的地址格式,地址前缀为(2002:开头),并将路由器的IPv4地址夹入IPv6地址中,因此位于不同6to4 site内的主机彼此通讯时即可自动抽出IPv4地址在路由器之间建立Tunnel。

透过6to4 router,不同6to4 site内的主机可互相通讯,当需与一般IPv6主机通讯时,则必须过6to4 relay router。6to4 relay router必须同时具备6to4及IPv6接口,同时提供这些接口的封包转送。

6to4需要一个全球合法的IPv4地址,所以对解决IPv4地址短缺没有太大帮助。但它不需要申请IPv6地址,通过它可使站点迅速升级到IPv6

二. 6to4隧道搭建

按照实验图进行网络接线,两台防火墙通过6 to 4 隧道相连,其中FW1的接囗的全局IPV4地址是202.205.88.55,转换成IPV6的地址前缀是:2002:cacd:5837::/64,对此地址再做子网划分,设置sit1接囗使用2002:cacd:5837:1::/64而跟PC相连的eth1接囗使用2002:cacd:5837:2::/64前缀,FW2的eth0接囗的全局IPV4地址是202.205.88.66,转换成IPV6的前缀2002:cacd:5842::/64,同样设置sit1使用2002:cacd:5842::/64前缀,而eth1接囗使用2002:cacd:5842:2::/64.。图中各设备的地址配置如下表:

扫描二维码关注公众号,回复: 15960964 查看本文章

防火墙FW1

eth2 

202.205.88.55/24

eth1

2002:cacd:5837:2::1/64

sit1 2002:cacd:5837:1::1/64

防火墙FW2

eth1

202.205.88.66/24

eth2

2002:cacd:5842:2::1/64

sit1

2002:cacd:5842:1::1/64

主机PC1

ens19

2002:cacd:5837:2::2/64

主机PC2

ens19

2002:cacd:5842:2:2/:64

按照上表创建隧道并配置IP后,还必须在路由器上配置一条静态路由,将所有其它发往IPV6前缀2002::/16流量定向到6 to 4 隧道tunnel接囗。

1.在防火墙FW1上的配置如下:

ifconfig  eth2 add  202.205.88.55/24  //配置FW1的Eth2的地址

ifconfig  eth1 add  2002:cacd:5837:2::1/64   //配置FW1的Eth1的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

Ip tunnel add sit1 mode sit remote 202.205.88.66 local 202.205.88.55  //建立隧道

ifconfig sit1 up   //激活隧道

ip -6 addr add 2002:cacd:5837:1::1/64 dev sit1

route –A inet6 add 2002::/16 sit1    //添加IPV6路由

2.在防火墙FW2上的配置如下:

ifconfig  eth1 add  202.205.88.66/24  //配置FW2的Eth1的地址

ifconfig  eth2 add  2002:cacd:5842:2::1/64   //配置FW2的Eth2的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

ip tunnel add sit1 mode sit remote 202.205.88.55 local  202.205.88.66  //建立隧道

ifconfig sit1 up   //激活隧道

ip -6 addr add 2002:cacd:5842:1::1/64 dev sit1

route –A inet6 add 2002::/16 sit1     //添加IPV6路由

   3.在主机PC1上设置如下:

#ifconfig ens19 add 2002:cacd:5837:2::2/64

ip -6 route add 2002::/16 via 2002:cacd:5837:2::1 dev ens19

4.在主机PC2上设置如下:

#ifconfig ens19 add 2002:cacd:5842:2:2/:64

ip -6 route add 2002::/16 via 2002:cacd:5842:2::1 dev ens19

三. istatp隧道搭建

1.在防火墙FW1上的配置如下:

ip addr add 192.168.1.122/24 dev eth2

  //配置AF1的Eth2的地址

ip -6 addr add 3ffe:ffff:1234:9010::2:1/64 dev eth1   //配置FW1的Eth1的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

ip tunnel add isatap0 mode isatap remote 192.168.1.133 local 192.168.1.122//建立隧道

ip link set isatap0 up

echo "0" > /proc/sys/net/ipv6/conf/all/disable_ipv6

ip addr add 3ffe:ffff:1234:5678::5efe:192.168.1.122/64 dev isatap0

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:5678:0:5efe:c0a8:185 dev isatap0

ip -6 route del 3ffe:ffff:1234:5678::/64

2.在防火墙FW2上的配置如下:

ip addr add 192.168.1.133/24 dev eth1

  //配置FW2的Eth1的地址

ip -6 addr add 3ffe:ffff:1234:7890::2:1/64 dev eth2   //配置FW2的Eth2的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

ip tunnel add isatap0 mode isatap remote 192.168.1.122 local 192.168.1.133  //建立隧道

ip link set isatap0 up

echo "0" > /proc/sys/net/ipv6/conf/all/disable_ipv6

ip addr add 3ffe:ffff:1234:5678::5efe:192.168.1.133/64 dev isatap0

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:5678:0:5efe:c0a8:17a dev isatap0

ip -6 route del 3ffe:ffff:1234:5678::/64

3.在主机PC1上设置如下:

iptables -F

setenforce 0

#ifconfig ens19 add 3ffe:ffff:1234:9010::2:2/64

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:9010::2:1/64 dev ens19

  1. 在主机PC2上设置如下:

iptables -F

setenforce 0

#ifconfig ens19 add 3ffe:ffff:1234:7890::2:2/64

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:7890::2:1/64

 dev ens19

猜你喜欢

转载自blog.csdn.net/yangwenchao1983/article/details/131660628
今日推荐