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
按照实验图进行网络接线,两台防火墙通过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.。图中各设备的地址配置如下表:
防火墙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
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
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