【ubuntu】如何搭建AFTR+B4环境

为何要使用ipv6

目前ipv4地址已经不够用了,而IPv6采用128位地址长度,几乎可以不受限制地提供地址。而且ipv6具有更高的安全性。

主流的ipv6方案

1.双栈方案 :所有设备同时支持IPv4/IPv6协议栈,核心理念在于其传送网同时支持IPv4和IPv6
2.DS-Lite方案 :IPv4‐in‐IPv6 隧道和 NAT 这两个基本技术,同时支持IPV4与IPV6,对于ipv4用户,可以通过ipv6隧道与ipv4业务平台实现通信;针对ipv6用户,可直接通过ipv6网络通信。
3.6RD方案 :基于ipv4网络引入ipv6方案,当用户使用ipv6接入时,CPE与
DR网关直接建立IPV6 over IPV4的隧道。
3.6in4方案 :一种IPv6转换传送机制,是将IPv6的数据包直接封装在IPv4数据包中。
3.6to4方案 :6to4定义了一个网络前缀2002::/16用于表达这是一个6to4网络整体,任何一个公共IPv4地址将地址的十六进制值加在6to4网络前缀之后,从而产生一个前缀数为48的相应IPv4的6to4子网的网络前缀。
本文章主要是讲解 DS -Lite 方案

DS -Lite 组成

原理参考文献:https://docs.citrix.com/zh-cn/citrix-adc/current-release/citrix-adc-support-for-telecom-service-providers/dual-stack-lite.html
主要组成

1.实现B4功能的家庭网关或直连主机;
2.实现AFTR功能的网络设备;
3.位于B4和AFTR之间的隧道。
B4设备可以采用路由型家庭网关实现,也可以在终端PC上运行DS-Lite客户
端软件实现。
AFTR设备负责执行隧道封装、解封装和IPv4-IPv4地址翻译,提供多个用户
对全局IPv4地址池的复用。由于采用IPv6源地址作为隧道起始端的标识,终端主
机的私有地址可以重叠而不会产生混乱。
隧道即轻型双栈模型采用的IPv4-in-IPv6隧道,通过隧道,IPv4流量可穿越
IPv6网络到达电信级IPv4-IPv4 NAT设备(AFTR),CPE无需对私有IPv4地址进
行翻译,从而避免了多级NAT。

AFTR环境搭建

系统需求 :必须支持ipv6、tun、内核必须高于2.6.26(可以在虚拟机搭建,这边使用的是ubuntu16.0.4版本(桌面版),测试过可创建成功)

AFTR安装

1.下载aftr压缩包

cd /root
wget http://ftp.isc.org/isc/aftr/aftr-1.1.tar.gz
tar zxvf aftr-1.1.tar.gz
cd aftr-1.1
 ./configure
 make

2.AFTR配置
aftr.conf配置:将aftr.conf配置文件放在/etc目录下

cd /etc
vi aftr.conf

aftr.conf配置内容

defmtu 1420
defmss on
deftoobig off  
acl6 2001:240:63f:ff10::/64   # 需要接入的ipv6网段,b4与aftr服务器端的连接桥梁
address endpoint 2001:240:63f:ff11::1 # aftr侧隧道端点
address icmp 192.168.0.111 #
pool 192.168.0.111 #aftr上用于nat 转换的Ipv4地址池

aftr-script:将该配置文件放在 /usr/sbin/ 目录下

cd  /usr/sbin
vi aftr-script

aftr-script 配置内容

aftr_start()
{
    set -x
    ip link set tun0 up #启用tun0
    ip addr add 192.0.0.1 peer 192.0.0.2 dev tun0 #建立tun0隧道(点对点隧道)
    ip route add 192.168.0.111/32 dev tun0 #添加NAt的地址指向隧道tun0
	ip -6 addr add fe80::1 dev tun0 #添加tun0的ipv6地址 
	ip -6 route add 2001:240:63f:ff11::/64 dev tun0 #将aftr侧隧道地址指向tun0
}

aftr_stop()
{
    set -x

    ip link set tun0 down
}

case "$1" in
start)
	aftr_start
	;;
stop)
	aftr_stop
	;;
*)
	echo "Usage: $0 start|stop"
	exit 1
	;;
esac

exit 0

3.开启ipv4、ipv6转发

cd /etc
vi sysctl.conf

修改ipv4、ipv6的转发配置

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.lo.disable_ipv6=0
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

需要开启iptable的开放中转端,否则B4端无法访问外网

iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.0.111 -o ens33 -j MASQUERADE

使用命令让配置生效sysctl -p
4.网络配置
aftr侧的网络配置
如果是桌面版的可以直接使用管理器配置,需要配置ipv4、ipv6
ipv4的配置是为了让aftr服务器能够上网
ipv6的配置是为了能够连接B4
在这里插入图片描述
5.启动aftr

./aftr -c /etc/aftr.conf -s /usr/sbin/aftr-script -g
B4端配置

1.B4端网络配置
B4也是用一台ubuntu系统搭建的,网络配置如下
在这里插入图片描述
B4与aftr建立ipv6隧道
modprobe lp #添加模块命令
modprobe ip6_tunnel
ip -6 route add 2001:240:63f:ff11::1/128 via 2001:240:63f:ff10::1 //如果在配置网卡时没有添加IPV6网关时,需执行这条命令
ip -6 tunnel add tun0 mode ipip6 remote 2001:240:63f:ff11::1 local 2001:240:63f:ff10::2 dev ens33 encaplimit none
ip link set tun0 up
ip addr add 192.0.0.2 peer 192.0.0.1 dev tun0
ip route add 0.0.0.0/0 via 192.0.0.1

测试AFTR服务器是否可以

1.检测ipv6隧道是否打通
在B4端ping aftr端的tun0虚拟ip,ping成功代表隧道已经打通了

ping 192.0.0.1

在aftr端查看(开启调试模式 可用telnet172.0.0.1 1015或在开启aftr时加上-g)
在这里插入图片描述
在tun0加上DNS就可以ping域名啦

 vi  /etc/resolv.conf 
 nameserver 114.114.114.114

2.检测B4端是否可访问外网
在B4端去ping 外网ip

ping 114.114.114.114

在aftr端抓包查看
在tun0抓包
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值