You are on page 1of 87

IPv6 解决方案说明

常旭 | F5 方案顾问
​x.chang@f5.com
​7/20/21

​ 1 | ©2018 F5 NETWORKS
Agenda
• 改造效果回顾

• 20 年建设目标

• IPv6 深入改造网络方案

• IPv6 深入改造安全方案

• IPv6 深入改造应用方案

​ 2 | ©2018 F5 NETWORKS
改造效果回顾

​ 3 | ©2018 F5 NETWORKS
金融行业 IPv6 改造
概览

​ 4 | ©2018 F5 NETWORKS
应用类型统

• 门户改造完成比率接近 80%

• 应用改造完成比率接近 20%

​ 5 | ©2018 F5 NETWORKS
行业类别统计

​ 6 | ©2018 F5 NETWORKS
存在的主要问题

 网站 WWW 域名具备完整的 IPv6 授权体系:

DNS 上游域名服务商
DNS 体系建设完整度

 网站二 / 三级链接 IPv6 支持率:

页面内容分析
外链天窗处理

​ 7 | ©2018 F5 NETWORKS
方案说明

方案一: NAT 方案二: 4/6 混 方案三:新建分区



IPv4 IPv4 IPv6 IPv4 IPv4 IPv6 IPv4 IPv4 IPv6

IPv4/6 IPv4/6 IPv4 IPv6


互联网接入区 互联网接入区 互联网接入区 互联网接入区
IPv4 IPv4/6 IPv4 IPv6

IPv4 IPv4 IPv4 IPv4/6 IPv4 IPv4 IPv6

​方案简述: ​方案简述: ​方案简述:

• 在数据中心边界设备进行 • 原 web 集群开启双栈,即前 • 在数据中心内部完全新建一


NAT 转换,将 IPv6 数据包 端 web 服务对外提供 IPv4/ 个 IPv6 区域,采用独立的网
转换为 IPv4 数据包,内部 IPv6 双栈服务,后端应用程 络及服务器进行部署。
服务器及应用完全不做改 序只支持 IPv4 。


动;
8 | ©2018 F5 NETWORKS
介绍:方案一 NAT

• 改造内容:
本方案需要进行的改动主要集中在数据中心外围接入部分,具体内容如下表:
• 优缺点说明
改造项目 改造对象 改造方式 改造内容
接入线路 运营商互联网线路 新申请资源 申请 IPv6 线路及 IP 1. 优点:
添 加 AAAA 记
F5 GTM 官网 官网增加 IPv6 的 AAAA 记录 ① 本方案的改动较小,部署最简单,不会对现网造

新增 F5 ( LTM )用于 IPv6 至 IPv4 成影响,有简单的回退机制。
网络设备 F5(LTM) 新申请资源
转换
Web 前端 无需改造 -- -- 2. 缺点;
后台应用 无需改造
1. 在进行 -- --
IPv6 改造前,首先需向运营商申请 IPv6 线路及 IPv6 地址资 ① 只能满足 IPv6 规模部署关于 2019 年的要求,后

源,即在线路接入层面将 IPv6 与 IPv4 分开。防止因 IPv6 部署影响现 续 IPv6 改造任然需要大规模变动,不利于长期


业务方案。
有 IPv4 系统的运行。
2. 本方案准备 F5 ( LTM )设备用于 NAT64 的地址转换,完成 IPv6 数
据包到 IPv4 数据包的转换,从而保证后台应用处理不受影响。
3. 最后在 F5 GTM 上增加 IPv6 的 4A 记录完成 IPv6 的官网访问。

​ 9 | ©2018 F5 NETWORKS
介绍:方案二 4/6 混跑

• 改造内容:
改造项目 改造对象 改造方式 改造内容
• 优缺点说明
接入线路 运营商互联网线路 新申请资源 申请 IPv6 线路及 IP
添 加 AAAA 记
F5 GTM 官网

官网增加 IPv6 的 AAAA 记录 1. 优点:
新增对 IPv6 的支持,实现 4/6 混 ① 可以完成互联网整个 IPv6 地址改造规划,满足
网络设备 所有互联网接入区设备 修改配置
跑 IPv6 规模部署文件到 2020 年要求。
操作系统 新增对 IPv6 的支持,实现 4/6 混
Web 前端 修改配置
应用程序 跑
后台应用 无需改造 -- --
2. 缺点:
1. 在进行 IPv6 改造前,首先需向运营商申请 IPv6 线路及 IPv6 地址资源,即
① 应用系统改造的可行性未知。
在线路接入层面将 IPv6 与 IPv4 分开。防止因 IPv6 部署影响现有 IPv4 系统
② 设备配置双栈后,由于 IPv6 数据包比 IPv4 数据
的运行。 包的包头长 20 字节, IPv6 数据占用的系统内存
2. 本方案需要修改互联网接入区所有网络设备的配置,设备互联接口配置上 资源也相对较多,开启双栈后对系统性能会有一

IPv6 的地址,使其支持 IPv4/ IPv6 双栈模式。同时,需要对 web 前端集群的 定程度的下降,具体下降指标需要针对不同硬件


设备、软件版本分别进行评估测试。
操作系统及应用进行改造,加上相应的 IPv6 地址,使其支持双栈。
③ 后期运维排障时干扰项相对增多,运维难度增
3. 最后在 F5 GTM 上增加 IPv6 的 4A 记录完成 IPv6 的官网访问。
​ 10 | ©2018 F5 NETWORKS 加。
介绍:方案三 新建分区
• 优缺点说明
• 改造内容:
1. 优点:
① 将 IPv6 与 IPv4 完全独立开,互不影响。在部署 IPv6 时不会对
改造项目 改造对象 改造方式 改造内容
现有系统有任何影响,符合 IPv6 规模部署安全第一的原则。
接入线路 运营商互联网线路 新申请资源 申请 IPv6 线路及 IP
官网增加 IPv6 的 AAAA 记 ② 为后期 IPv6 建设打好了基础。通过方案解读可知, IPv6 规模
F5 GTM 官网 添加 AAAA 记录
录 部署最根本的目标是完成全部应用系统的 IPv6 改造,这就意
网络设备 所有互联网接入区设备 新建 新增设备需支持 IPv6 味着相关基础设施及软件系统均需要进行 IPv6 改造,到时依
操作系统 然会面临是否建设 IPv6 区的问题,如果到时选择新建,而一
Web 前端 部分新建 新增服务器需支持 IPv6
应用程序
期方案为双栈建设,那到时会面临更多后台应用系统的双栈建
后台应用 无需改造 -- --
设及在原有应用上进行改造,风险较大。

2. 缺点:
① 前提投入较高

​ 11 | ©2018 F5 NETWORKS
方案对比:
序号 对比参数 方案一 方案二 方案三
1 改造难度 简单( 3 ) 复杂( 1 ) 简单( 3 )

2 软硬件成本 中( 2 ) 低( 3 ) 高( 1 )

3 业务影响 小( 3 ) 大( 1 ) 小( 3 )

4 运维难度 小( 3 ) 大( 1 ) 小( 3 )

5 后期改造难度 大( 1 ) 大( 1 ) 小( 3 )

6 后期改造成本 大( 1 ) 大( 1 ) 小( 3 )

 
总分 13 8 16

• 综上所述,从实施、运维,后期上来说,方案三是最优方案。
1. 虽然方案一可以使用最少资金满足当前需求,但是根据 2020 的要求还是需要改造新设备。
2. 方案二几乎不使用资金可以完成本次变更,但是双栈的业务风险太大,涉及到网络、服务器、应用等多方面,业务
使用双栈案例屈指可数。如果涉及改造很大程度还是新采购设备。
3. 因此方案三是最佳选项。前期业务影响的风险最小,快速实现 IPv6 的一期改造,并可积累相关经验;后期 IPv6 改
造因为区域架构已经搭建完成,对业务改造或新建都均较为简单。
​ 12 | ©2018 F5 NETWORKS
股份制银行改造情况调研
• 方案一: NAT
• 方案二: 4/6 混跑
• 方案三:新建分区

序号 银行名称 方案选择 备注
1 中信银行 方案二 + 三 GTM 层面 4/6 分开,边界到 web 混跑
2 光大银行 方案三 新建,但是 GTM 混跑,内网无法打通
3 华夏银行 方案三 统计:
4 广发银行 方案三
• 方案一: 2 家
5 平安银行 方案三 新建, GTM4/6 分开,但是没上线
6 招商银行 方案三 新建, GTM4/6 分开 • 方案二: 2
7 浦发银行 方案三 新建,但是 GTM 混跑,之前 GTM 版本老, irules 不支持
8 兴业银行 方案一 时间紧,最终还在讨论中,目前是 GTM 、 LTM 双栈 • 方案二 + 三: 1
9 民生银行 方案三
• 方案三: 7
10 恒丰银行 方案一 讨论中,考虑新建分区
11 浙商银行 方案二 刚新建数据中心,暂不考虑新建
12 渤海银行 方案二 时间紧,后期新建分区

​ 13 | ©2018 F5 NETWORKS
多中心多协议栈 --- 部署方式一

新建双栈 新建双栈

​ 14 | ©2018 F5 NETWORKS
多中心多协议栈 --- 部署方式二

新建双栈

中心 A
​ 15 | ©2018 F5 NETWORKS
多中心多协议栈 --- 部署方式三

中心 A 中心 B
​ 16 | ©2018 F5 NETWORKS
方案对比

  方案一:双中心分协议栈部署 方案二:主中心双栈、同城中心分区 方案三:双中心双栈

双中心分别建立单独的 IPv6 区 主中心通过双栈方式部署到 DMZ 区


双中心均使用双栈部署到 IPv6 到 DMZ
改造要求 域,部署 IPv6 地址到 DMZ 区 域,同城区域新建 IPv6 区域到 DMZ

域。 区。通过智能 DNS 形成联动

双中心双协议栈分区部署,运
双协议栈接种在同一设备,流量区分和
运维难度 维设备数量增加。但是协议间 双中心架构有差异,维护难度较高
排错难度较高。设备性能下降较多。
设备隔离度高

未来数据中心改造复杂度 低 中 高

故障影响 低 中 高

成本 高 中 低

​ 17 | ©2018 F5 NETWORKS
20 年建设目标

​ 18 | ©2018 F5 NETWORKS
2020 年改造技术要点

 持续推进 • 业务连续性保证
 业务连续性要 IPv6 的规模
求与 IPv4 一致 部署 • 多中心、双协议栈多活

 IPv6 网络接入  所有面向公众
IPv6 网络接入 • 内网 IPv6 地址规划

 IPv6 域名
IPv6 域名 的互联网应用 • DNS 调度策略

 门户网站
门户网站 • 安全架构

 IPv6 安全
IPv6 安全
• 应用全面改造

• 解决遗留问题

​ 19 | ©2018 F5 NETWORKS
IPv6 深入改造网络方案

​ 20 | ©2018 F5 NETWORKS
内网 IPv6 地址规划

IPv6 地址规划的建议

• Nibble boundary /64, /60, /56, /52, /48, /44


• 互联地址划分
• /126 /127 或 /112 位掩码
• 关注网段数、忽略主机数
• 注意 Anycast 地址

​ 21 | ©2018 F5 NETWORKS
按区域分
地址类型 地址空间 /40 地域类型 地址空间 /48 子区域 地址空间 /56 Info 地址空间 /64 设备序号 loopback 地址
001 abcd:dddd::1/128
002 abcd:dddd::2/128
loopback0 abcd:dddd::/64
……
核心区 abcd:dddd::/56 255 abcd:dddd::ff/128
loopback1 abcd:dddd:0:1::/64
广域网 abcd:dddd::/48
loopback2 abcd:dddd:0:2::/64
预留 abcd:dddd:0:3::/64 - abcd:dddd:0:ff::/64
loopback 地址空间 abcd:dddd::/40
子区域 02 abcd:dddd:0:100::/56
……
子区域 256 abcd:dddd:0:ff00::/56
A 地址 DC abcd:dddd:1::/48
B 地址 DC abcd:dddd:2::/48
……
区域 XX abcd:dddd:ff::/48
源设备 - 目的设
地址类型 地址空间 /40 地域类型 地址空间 /48 子区域 地址空间 /56 Info 地址空间 /64 接口地址 -/127 (点到点链路) -/112 ( VRRP 链路)

abcd:dddd:0100:0000:0000:0000:0101:0000/127
001-002
abcd:dddd:0100:0000:0000:0000:0101:0000/112
abcd:dddd:0100:0000:0000:0000:0203:0000/127
002-003
P 设备 -P 设备 abcd:dddd:100::/64 abcd:dddd:0100:0000:0000:0000:0203:0000/112
……
核心区 abcd:dddd:100::/56 abcd:dddd:0100:0000:0000:0000:XXYY:0000/127
XXX-YYY
abcd:dddd:0100:0000:0000:0000:XXYY:0000/112
广域网 abcd:dddd:100::/48
P 设备 -PE 设 abcd:dddd:100:1::/64
互联地址空间 abcd:dddd:100::/40 备
……
预留 abcd:dddd:100:ff::/64
子区域 02 abcd:dddd:0:100::/56
……
子区域 256 abcd:dddd:0:ff00::/56
A 地址 DC abcd:dddd:101::/48
B 地址 DC abcd:dddd:102::/48
……
区域 XX abcd:dddd:1ff::/48
地址类型 地址空间 /40 地域类型 地址空间 /48 子区域 地址空间 /56 Info 地址空间 /64 设备序号 设备 OAM 地址
001 abcd:dddd:200::1/64
002 abcd:dddd:200::2/64
P 设备 abcd:dddd:200::/64
……
核心区 abcd:dddd:200::/56 255 abcd:dddd:200::ff/64
PE 设备 abcd:dddd:200:1::/64
广域网 abcd:dddd:200::/48
……
预留 abcd:dddd:200:ff::/64
OAM 地址 abcd:dddd:200::/40
子区域 02 abcd:dddd:200:100::/56
……
子区域 256 abcd:dddd:200:ff00::/56
A 地址 DC abcd:dddd:201::/48
B 地址 DC abcd:dddd:202::/48
……
​ 22 | ©2018 F5 NETWORKS 区域 XX abcd:dddd:2ff::/48
abcd:dddd:300::/40 - abcd:dddd:f00::/40
按业务分
业务大类 地址空间 /48 地域 地址空间 /48 业务 地址空间 /56 Info 地址空间 /64 设备 设备地址
广域网 abcd:dddd:1000::/48

X1 abcd:dddd:1001:0000:0000:0000:aabb:ccdd/64

X2 abcd:dddd:1001:0000:0000:0000:aabb:ccdd/64
服务器 BMC abcd:dddd:1001::/64
……
xxx0 业务系统 abcd:dddd:1001::/56
XN abcd:dddd:1001:0000:0000:0000:aabb:ccdd/64

WEB abcd:dddd:1001:1::/64
A 地址 DC abcd:dddd:1001::/48
APP abcd:dddd:1001:2::/64
XX 业务 abcd:dddd:1000::/40
……
预留 abcd:dddd:1001:ff::/64
xxx1 业务系统 abcd:dddd:1001:100::/56
xxx2 业务系统 abcd:dddd:1001:200::/56
……

xxx255 业务系统 abcd:dddd:1001:ff00::/56

B 地址 DC abcd:dddd:1002::/48

……
区域 XX abcd:dddd:10ff::/48
YY 业务 abcd:dddd:1100::/40
ZZ 业务 abcd:dddd:1200::/40
XX 业务 abcd:dddd:1300::/40
预留 abcd:dddd:1400::/40 - abcd:dddd:1f00::/40

​ 23 | ©2018 F5 NETWORKS
按用户分
业务大类 地址空间 /48 地域 地址空间 /48 子区域 地址空间 /56 Info 地址空间 /64 DHCPv6 终端地址( DHCPv6 有状态分配)
广域网 abcd:dddd:2000::/48
A 地址 DC abcd:dddd:2001::/48
……

address prefix abcd:dddd:2005::/64 (终端地址池)


部门 1 abcd:dddd:2005::/64
excluded-address abcd:dddd:2005::1/64 (作为网关地址)

海淀区 01 abcd:dddd:2005::/56 部门 2 abcd:dddd:2005:1::/64


部门 3 abcd:dddd:2005:2::/64
北京市分公司 01 abcd:dddd:2005::/48 ……
内部用户 abcd:dddd:2000::/40
部门 256 abcd:dddd:2005:ff::/64
海淀区 02 abcd:dddd:2005:100::/56
朝阳区 01 abcd:dddd:2005:200::/56
……
子区域 XX abcd:dddd:2005:ff00::/56

北京市分公司 02 abcd:dddd:2006::/48

……
区域 XX abcd:dddd:20ff::/48
驻场用户 abcd:dddd:2100::/40
访客 abcd:dddd:2200::/40
预留 abcd:dddd:2300::/40 - abcd:dddd:2f00::/40

​ 24 | ©2018 F5 NETWORKS
DNS 双栈改造
双栈支持 DNS 解析

NS1 地址 A
NS2 地址 C
LDNS DNS 服务商 NS3 地址 B NS 记录必须有 IPv6 入口
用户 NS4 地址 D

v4 地址 A v4 地址 B
v6 地址 C v6 地址 D

DNS DNS

主中心 备份中心

​ 25 | ©2018 F5 NETWORKS
DNS 双栈改造
双栈支持 DNS 解析

NS1 地址 A

LDNS DNS 服务商 NS2 地址 B


NS3 地址 D
用户

v4 地址 B
v4 地址 A v6 地址 D

irules 转发
DNS bind DNS

主中心 备份中心

​ 26 | ©2018 F5 NETWORKS
DNS 调度策略 gtm region /Common/Regions_CMCC {
region-members {
geoip-isp "beijing cnisp technology co. ltd." { }
geoip-isp "beijing etelphone technology co. ltd" { }
• 确保 V4 、 V6 NS 具备相同的调度策略
geoip-isp "beijing kuancom network technology co. ltd." { }
• 基本的保障原则是基于运营商进行调度 geoip-isp "beijing neteon tech co ltd." { }
geoip-isp "beijing stone teda communication technology co. ltd" { }
• 中国联通  2408:XXXX::/20 geoip-isp "beijing teletron telecom engineering co. ltd." { }
• 中国电信  240E:XXXX:/20 geoip-isp "beijing time-vision telecommunication technical ltd" { }
• 中国移动  2409:XXXX::/20 geoip-isp "beijing weishichuangjie technical development co. ltd." { }
geoip-isp "beijing yiwangxin technology coltd." { }
• 基于城商行客户的思考 geoip-isp "beijing zhongguancun information technology co. ltd" { }
• 本省内基于运营商区分 geoip-isp "cnisp-union technology beijing co. ltd" { }
• 省外客户通过 rtt , qos 动态算法返 geoip-isp "knet techonlogy beijing co. ltd." { }
回 geoip-isp "tencent cloud computing beijing co. ltd." { }

gtm region /Common/Regions_CUC {


region-members {
geoip-isp "china unicom beijing province network" { }

​ 27 | ©2018 F5 NETWORKS
IPv6 第二阶段改造 -- DMZ
IPV6

IPV4

IPV6

IPV4

​ 28 | ©2019 F5
IPv6 深入改造安全方案

​ 29 | ©2018 F5 NETWORKS
金融行业 IPv6 规模部署摸排表要求

IPv6 自身安全

 边界过滤能力
 ICMPv6 、 DHCPv6 、路由协议安全 协议
 NAT 设备自身安全和溯源能力

IPv6 部署安全

 主机安全和 DNS 安全
 应用安全( WAF 和 IPS )
 DDoS 防护 架构
 网络设备加固
 流量分析
总计 57 项检查,安全 19 项,占比 34%

包含 IPv6 自身安全( 6 项) 和 IPv6 部署安全 ( 13 项)

19 项检查中 18 项会每年年底排查; 1 项 2020 年底完成( NAT 溯源)


​ 30 | ©2019 F5
IPv6 安全的发展
IPv6 比 IPv4 更安全 / 更不安全
IPv6 和 IPv4 安全威胁基本相同

理想: RFC4294 IPsec MUST NO NAT 难以扫描 黑客工具缺乏

现实: RFC6434 IPsec SHOULD NAT64/NAT66 爆破不可能了 大量的工具、漏洞和威胁


但是有新的技巧

IPv6 不仅仅是地址空间变长,而是在协议上有了巨大的变化

​ 31 | ©2019 F5
IPv6 安全问题的核心
32 位变成 128 位

以网络前缀 64bit : 64 = 18,446,744,073,709,551,616 主机


2

扫描和侦测 专用芯片缺乏 庞大的僵尸群

Gigabit 接口 = 491,351 年 安全设备严重依赖 CPU 5G + IoT + IPv6 = 海量僵尸

IP 信誉库构造难度激增 包头增长,开销增大 IPv6 网络增加了新的攻击面

​ 32 | ©2019 F5
IPv6 网络层 DDoS 威胁
足够多的地址空间,伪造源的攻击
IPv6
运营商侧
• IPv4 时代的攻击思路等都可以用在 IPv6( 放大、反射 ...)
• ALG CPU 攻击
 BGP 引流、流量清洗、流量回注能力

 URPF 检测(单播 reverse path forwarding )

 SRv6 或者 MPLS VPN 减少转发压力(标签转发)

IPv4

用户侧

 CPE 端 IPv6 协议类 DDoS 清洗能力

 IPv6 黑名单地址过滤能力

 专用芯片和深度检测优化

​ 33 | ©2019 F5
IPv6 协议安全 -- ICMPv6 介绍
IPV6 LAN 安全需要了解 ICMPV6

ICMP TYPE

Neighbor Solicitation
错误信息 信息消息
取代 ARP ; DAD ; NUD
Neighbor Advertisement
Destination Unreachable Echo Request
Router Solicitation
Autoconfiguration ,发现:路由、前缀、网络参数 ..
Packet Too Big Echo Reply Router Advertisement

Time Exceeded NDP Redirect 作用等于 IPv4 的 ICMP 重定向

Parameter Problem MLD MLDv1


作用类似 IPv4 的 IGMPv1 和 IGMPv2
MLDv2

ICMPv6 对于 IPv6 非常重要,关系到多个协议使用,过滤要谨慎

ICMPv6 的滥用和攻击思路和 IPv4 完全一致


​ 34 | ©2019 F5
IPv6 协议安全 – ICMPv6 滥用
思路还是传统 IPV4 时代的套路

互联网
主机 IPA
MAC A
google 解析为 .. 你的 IPv6 网络前缀为 ..
NS
NA
neighbor cache 塞满
大量 incomplete 条目 DNSSL OPTION
主机 IPB 主机 IPC
NS
MAC C RA
MAC B
RA

IPv6 NS IPv6 NA
18,446,744,073,709,551,616
SLAAC
源地址: IPA NS 目的: IPA 主机 IPA MAC A

目的地址: IPB 主机 IPB MAC B IPv6 RA OPTION


NS 目的: MAC C 主机 IPC MAC C
NS 目的: IPA ... ...
NS 源: MAC C RA DNSSL OPTION [RFC 8106]
主机 IPn MAC N
RA RDNSS OPTION [RFC 8106]

NS 欺骗 未请求 NA 高速全段扫描

ARP 欺骗 状态表攻击 无身份验证

IPv6 Snooping IPv6 Destination Guard RA Guard [RFC 6105]


IPv6 Source / Prefix Guard Rate Limit SEND [RFC 3971]

​ 35 | ©2019 F5
IPv6 协议变化带来的安全问题
IPV6 EXTENSION HEADER CHAIN

灵活弹性 = 复杂

IPv6 TCP DATA • IPv4 时代就有的利用封装来逃避检测


TCP Mirai -- GRE IP | GRE ETH
• IPv6 的扩展头部链天然适合构造攻击
next header
• 必须深度检测数据包,性能压力剧增
IPv6 ESP UDP DATA
ESP UDP

next header next header

IPv6
Hop by Hop
Option
Destination
Option
Routing
Header Fragmentation ... ... DATA

• 标准头部固定 40 字节 , 其他功能利用扩展头部
• 除了 hop by hop 和 Routing ,其他扩展头部只在最终端处理
​ 36 | ©2019 F5 • 扩展头部需要严格按照 RFC 要求的顺序和出现次数
利用扩展头部来逃避检测
协议约束

第一个分片必须包含完整的扩展头部链 [ RFC 7112 ]


IPv6 基本头 ICMPv6 RA
丢弃一切 IPv6 分片是携带 NDP 的数据包 [ RFC 6980 ]
RA
Overlapping 分片必须禁止 [RFC 5722]

禁止 RH0 [RFC 5095]


next header
加固

Destination
IPv6 基本头 ICMPv6 RA 第一个分片必须包含上层协议包头 deny undetermined-transport
Option
des RA 禁止分片发给 ff02::1

分片计时器 60sec ,超时所有分片被 discard

next header next header

Destination Destination
IPv6 基本头 Fragment1 IPv6 基本头 Fragment2 ICMPv6 RA
Frag Des
Option Frag Des
Option
RA

​ 37 | ©2019 F5
next header next header next header next header next header
利用扩展头部实现 DDoS
RH0 需要被禁止 RFC 5095

CPU 带宽

A B

S 0 URPF 使用
D
禁用 RH0
基本头部 RH0
基本头部 RH0 基本头部 RH0
S B seqs=126
S D seqs=127 S A seqs=127

add1 = A add1 = B
add 2= B add 2= A S A seqs=125
... ...
add126=B add126=A
add127=A add127=D

S A seqs=1

S B seqs=0

​ 38 | ©2019 F5
DoH 和 DoT
传输的安全 --HTTPDNS
DoH DoT
DoH DoT SP

ISP
DoH DoT DoH DoT 传统 DNS AFM
抗 DDOS/IPS

AFM AFM
链路负载均衡 NG DNS
客户端 下一代 DNS
DoH DoT GW F5 DNS F5 DNS
DoH DoT 支持 DoH DoT DoH DoT

传统 DNS 链路负载均衡

传统 DNS DoH DoT DoH DoT WAF WAF


DMZ
DoH DoT SP
DoH DoT

客户端 链路负载均衡
DoH DoT 支持 DoH DoT GW

OA 内网 DNS

传统 DNS
DoH DoT
传统 DNS

​ 39 | ©2018 F5 NETWORKS
IPv6 过渡期的架构型安全问题
多数机构采用 NAT 进行过渡

云端 IPv6 清洗引流能力
ipv6 互联网环境 ipv6 互联网环境

CPE 端 IPv6 清洗能力


抗 DDOS/IPS

DNS 防护能力 AFM AFM

GTM GTM GTM GTM


边界过滤 AFM AFM

链路负载均衡 链路负载均衡

防火墙 /IPS (黑名单问题)


WAF WAF
SSLO SSLO
防火墙 |IPS
WAF WAF
WAF 防护 (XFF 支持能力) awaf awaf
IPS IPS

LTM 核心交换 LTM DLP DLP

LTM 核心交换 LTM


旁路资源池

IPv4 数据流 内部业务系统 内部业务系统

IPv6 数据流

​ 40 | ©2019 F5
IPv6 过渡期的架构型安全问题
多数机构采用 NAT 进行过渡

云端 IPv6 清洗引流能力
ipv6 互联网环境 ipv6 互联网环境

CPE 端 IPv6 清洗能力


抗 DDOS/IPS 抗 DDOS/IPS

DNS 防护能力 AFM AFM

GTM GTM GTM GTM


IPv6 协议安全 AFM AFM

链路负载均衡 链路负载均衡

防火墙 /IPS ( IPv6 支持能力)


WAF WAF
SSLO SSLO
防火墙 |IPS
WAF WAF
WAF 防护 (IPv6 支持能力) awaf awaf
IPS IPS

LTM 核心交换 LTM DLP DLP

LTM 核心交换 LTM IPv6 网络加固和优化 旁路资源池

IPv4 数据流 内部业务系统 内部业务系统

IPv6 数据流

​ 41 | ©2019 F5
SSL 的发展和安全盲点

数据中心

Internet Users Anti-DDoS Next-Gen IPS Anti-Spam WAF Apps


Firewall

​ 42 | ©2019 F5
通过 SSL 加密隧道的恶意软件和攻击 2016 年同比增长 19% , 2017 年增长 70% , 2018 年增长 268%
爆发增长的服务单元如何安放?  六大挑战
透明 + 串接是无奈的选择  加密流量造成安全盲点和高性能消耗。  流量无法精分,浪费设备资源。

 流量经过全部服务单元带来的高延迟。  服务单元策略一层不变

 服务单元扩展性差,扩容难度大。  运维及排障成本高
加密流量
加密流量 明文流量

互联网 DDoS IPS/ LLB FW SSL SWG IPS AV SLB WAF FW IPS SLB
/ 广域 IDS NGFW NGFW
网/外
联网

PROXY SWG DLP IPS

TAP/NTA TAP/NTA TAP/NTA


APT/ 内网
流量分析 蜜罐 流量分析 蜜罐 流量分析 蜜罐
态势感知 DNS
网络接入区域 DMZ 区域 生产内网区域
​ 43 | ©2019 F5
SSLO 提供的清晰架构

GSLB

互联网 FW SLB+SSL FW
/ 广域 LLB+SSLO SLB+SSLO
O
网/外
联网

旁路 旁路 旁路

服务网格 服务网格 服务网格

​ 44 | ©2019 F5
网络接入区域 DMZ 区域 生产内网区域
两层部署模型: BIG-IP 和 NGINX+ KIC
最佳实践

iControl REST F5 BIG-IP


CIS

L7 WAF Protection

L4 TCP

F5 BIG-IP Nginx KIC Web Service

1. L4:TCP
KIC 的扩展及高可用保障
2. SSL/SSLO
Web Service
加密流量的可视化和编排
3. L7: WAF Security
应用层安全策略
​ 45 | ©2018 F5 NETWORKS
XX 银行超级出口编排案例
电信 联通 移动 电信 联通 移动
总部 临桂
出口区 出口区
SSLO
WAF
SSLO
WAF • 极速交易扁平化架构
IPS Switch Switch IPS
核心 核心  资源池化打破传统 HA 架构资源利用率不高
区 Firewall Firewall

 架构扁平,流量精分,保证低延迟交易
Core Core Core SW Core SW
SW SW
APP 区 DMZ DMZ 区 APP 区  SSL 可视化能力

 运维便捷,一键 BYPASS

专线
 F5 模块 + 外部资源 ADDON ,赋能链路负载均衡

SAN 存储区 数据备份区 SAN 存储区 数据备份区

核心业务: 部署设备:
企业网银 i4600 Better + SSLO*4
​ 46 | ©2019 F5 个人网银 I4600 LTM*4
手机银行 i2600 LTM*2 、 4000s LTM*2
IPv6 安全边界 和 VIP64 的完美融合
AFM & AWAF

IPv6 安全监管要求节选

IPv6

AFM AWAF

天然适合加固的边界
无需溯源和解决黑名单问题

IPv4

模块介绍

• LTM : 46 转换;负载均衡;业务发布;
• AFM : 防火墙; DDoS 防护; IPS
• AWAF :应用安全防护 针对 IPv6 协议类安全,应用安全, DDoS 防护和 NAT 设备自身安全的多方面考察
• HSL :业务层大数据引擎

​ 47 | ©2019 F5
IPv6 深入改造应用方案

​ 48 | ©2018 F5 NETWORKS
整体思路
应用在不同网络协议中部署 部署关键点:

• IPv4 only • 操作系统、中间件


• IPv6 only • 日志、数据库、正则表达式、
• 双栈环境部署 • Libraries
• URLs
• DNS
• IP Geolocation
• Loopback and localhost
• 测试工具

​ 49 | ©2018 F5 NETWORKS
• 评估当前代码的 IPv6 兼容性

• 数据结构需要修改代码以容纳 128 位地址

• 微软 Checkv4.exe 来识别源代码是否支持 IPv6


实用性
• . 创建独立于地址族( AF )并向后兼容 IPv4 的代码

Tasks for 可靠性 • 仅 IPv4 ,双协议和仅 IPv6 的操作系统上具有相同的连接能力

IPv6 兼容性
• 在内存中存储 128 位 IPv6 地址以及与 32 位 IPv4 地址的兼容性

• DNS 查询能力支持 gethostbyname()

applications 松耦合性 • 使用正确的格式处理 FQDN 主机名或 IPv4 / IPv6 地址的输入和

developer 标准性开放性
输出

• 使用 IPv6 和 IPv4 建立套接字连接

易管理性 • 支持 IPv6 的高级 API : BSD 套接字 API , Perl Socket6 , IO ::


Socket :: INET6 , Python 套接字模块, Java 套接字

• 与 Path MTU Discovery ( PMTUD )配合,需支持 PMTUD 功能


使用最小 IPv6 链接 MTU 为 1280 字节

​ 50 | ©2018 F5 NETWORKS
系统及浏览器双栈行为整体视图
Firefox Firefox Chrome Opera Safari Explorer
fast,fail
MAC OS X 8.0.1 8.0.1 6.9.912.41 11.52 5.1.1
10.7.2 75s 0ms 300ms 75s 270ms
IPv6 SYN+ACK DNS IPv6 RTT

Windows 7 8.0.1 8.0.1 .0.874.121 11.52 5.1.1 9.0.8112


21s 0ms 300ms 21s 21s 21s
IPv6 SYN+ACK DNS IPv6 IPv6 IPv6

Windows XP 8.0.1 8.0.1 .0.874.121 11.52 5.1.1 9.0.8112


21s 0ms 300ms 21ds 21s 21s
IPv6 SYN+ACK DNS IPv6 IPv6 IPv6

Linux 8.0.1 8.0.1 11.60 bets


2.6.40,3.0 96s 0ms 189s
IPv6 SYN+ACK IPv6

iOS ?
​ 5.0.1
52 | ©2018 F5 NETWORKS 720ms
Happy EyeBall
A 记录 AAAA 记录

DNS 解析
V6 先,直接开始
CURL *curl = curl_easy_init(); V4 先,等 25ms

if(curl) {  
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");   IPv6

curl_easy_setopt(curl,CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, IPv4
地址排序
RFC6555 300L);    
IPv6
RFC6556
curl_easy_perform(curl);     IPv4
RFC8305
/* always cleanup */  
IPv6 建连
250ms delay
链接竞速
curl_easy_cleanup(curl); } IPv4 建连

Happy Eyeballs Version 1 Happy Eyeballs Version 2: Better Connectivity


Using Concurrency

​ 53 | ©2018 F5 NETWORKS
• 域名查询的处理
• 地址的排序
Happy EyeBall • 连接的尝试
• 超时时间设置( 300ms , 250ms )

​ 54 | ©2018 F5 NETWORKS
IPv4 输入框

​ 55 | ©2018 F5 NETWORKS
IPv6 地址匹配
/* Match IPv6 address */

/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-
fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-
fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}
(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/

/* Match both IPv4, IPv6 addresses */


/((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-
Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|
2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)
(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-
4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-
9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:
(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/

​ 56 | ©2018 F5 NETWORKS
客户端溯源

IPv6 Network IPv4 Network


IPv6 www.server.com
NAT64 IPv4: 16.100.100.100
Client

• C/S 架构插入 TCP-Option • B/S 架构插入 X-Forwarded-For


• 插入后需要 TOA 程序提取 • 需要后端服务器 access_log 适配格式

​ 57 | ©2018 F5 NETWORKS
复杂外链改造
第三方 SDK 模块(外链由 JS 嵌套和动态生成)
多 vs 对应多外链 单 vs 对应多外链
2.com/ls.js 2.com/ls.js
test.com:81/ls.js vs1:81 test.com/ipv6/2.com/ls.js
2.com 2.com
vs
test.com:82/get.php vs2:82 LTM
用户 用户 test.com/ipv6/1.com/get.php
LTM
1.com/get.php
1.com/get.php 1.com
1.com

高德地图 极验人机识别滑块
​ 58 | ©2018 F5 NETWORKS
IPv6 与 API

基于 HTTP 的 API ,如 JSON or XML

考虑作为 API 提供放和消费端的不同情况

http://[2a12:5375:4151:2300:1353:a632:5f4e:c232]:4711/rest/test

考虑协议栈的优先级

System.setProperty("java.net.preferIPv6Addresses", "true");
System.setProperty("java.net.preferIPv4Stack", "false");

​ 59 | ©2018 F5 NETWORKS
IPv6 地址存储
Memory Locations 配置文件

• 是否会溢出 • /etc/hosts
• 双栈是否需要存储两个地址 • Httpd.conf
• 基于域名进行配置

Databases

• 字符串类型或单独的 IPv6 类型
• MySQL inet6_aton

​ 60 | ©2018 F5 NETWORKS
中间件支持情况

• WAS : 从 6.0 版本开始默认支持 IPv6

• IIS :从 6.0 版本开始默认支持 IPv6

• WebLogic :从 9.0 版本开始默认支持 IPv6

• MQ: 从 6.0 版本开始默认支持 IPv6

• Tomcat :从 6.0 版本开始默认支持 IPv6

​ 61 | ©2018 F5 NETWORKS
数据库支持情况
常见数据库名称 版本

DB2 10.5

FileMaker Pro 16.0.2.205

Microsoft SQL Server 2016

MySQL 5.7.17

Maria DB 10.2.9

Oracle Database 12.1.0.2.0

PostgreSQL 10

IBM Informix® Dynamic Server (IDS) 11.5

Sybase OpenSwitch 15.1

​ 62 | ©2018 F5 NETWORKS
业务测试
从建设初期的双栈环境过渡到纯 V6 环境,模块 / 子系统间的网络交互正确性与兼容性是系统平
稳过渡的保证,每一次网络交互都有发起端 ( 客户端 ) 和响应端 ( 服务端 ) 。

网络通信场景 ( 间下表格 )

服务端
服务状态 服务暂不支持 V6 服务支持 V4 和 V6 服务支持 V4 和 V6

网络环境 双栈 双栈 V6 单栈

客户端
双栈 V4 V6 优先 V6

V6 单栈 X V6 V6

​ 63 | ©2018 F5 NETWORKS
非功能性需求举例 --- 弱网环境优化

智能压缩 DC Cookie
​ 64 | ©2018 F5 NETWORKS
非功能性需求
性能需求 安全需求 可维护性需求 运营需求

响应时间不超过 1.5 秒,高峰时段不超过 4 秒 用户在经过身份认证与授权 普通修改 1 天内完成 支持多种外部接口


首次点击界面显示反应时间不得超过 300 毫秒 运行日志管理及安全审计 重大需求或设计修改 1 周完成 长时间无响应,应提示 403 页面
在网络畅通时,电子地图刷新时间不超过 10 秒 恶意攻击防护 , 如病毒(包括木马)攻击、口 90% 的 BUG 修改时间不超过 1 个工 敏感字符型号显示
非高峰时间 3 秒内得到搜索结果 令猜测攻击、黑客入侵等 作日,其他不超过 2 个工作日 敏感信息加密
每日最大成交数 3000 笔业务 至少 99% 的攻击需要在 10 秒内检测到 任何对象的任何方法不允许超过 日志传输 / 保存 / 分析 / 溯源
平均交易并发数为 20 数据保密 200 行代码。 用户访问行为追踪与限制
最大交易并发数为 50 可靠性需求 安装新版本必须保持所有的数据库 对接公共组件
每天登录用户数为 3000 左右 内容和所有个人设置不变 登陆时间≤ 5 秒
对输入有提示,数据有检查,防止数据异常。
支持 3 万用户,支持 GB 级数据 产品必须提供可跟踪任何数据库字 页面间跳转时间≤ 3 秒
能正确处理或回避人为操作错误、输入非法数据
数据库表行数不超过 100 万行 段的工具 精确查询响应时间≤ 1 秒
软件系统的失效造成不能完成业务的概率小于 5‰
搜索时最长查询时间 <15 秒 模糊查询响应时间≤ 5 秒
要求系统 7x24 小时运行 可用性需求
计算的精确性到小数点后 7 位 支持静态用户(注册用户)在 50000 以
系统缺陷率每 1,000 小时最多发生 1 次故障。
CPU 占用率 <=50% 在网络环境差的条件下保证系 上

易测试性需求 统的可用性等。 支持动态用户(在线用户)在 1500 以上


兼容性需求 系统应支持 IOS , Android , windows 操作系统
在 95% 的故障中,系统最多需 支持并发数 300 以上
系统应支持多种浏览器
单个模块的最大圈复
要 20 秒重启。 发生错误引导至次级页面
系统应支持 Oracle, DB2 数据库系统
杂度不能超过 15
提供数据备份和恢复功能 错误次数统计分析
最多只有 5% 的系统实现需要具体到特定的操作系统
冒烟测试
应用热点 / 流量热点分析
替换关系数据库系统的平均时间不超过 2 小时
回归测试
舆情监控
​ 65 | ©2018 F5 NETWORKS 灰度发布 A/B 测试
​ 66 | ©2018 F5 NETWORKS
2020 年建设指导思想

夯实组织基础,健全领导小组 准确把握要求,狠抓工作任务落实 加强队伍建设,提升行业实战技术


责任制 能力

​ 67 | ©2018 F5 NETWORKS
网络地址规划
​网络规划举例
https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml

功能定义 地址段
国内 SP :
Link Local Unicast fe80::/10 中国联通: 2408:8000/20
Site Local Unicast fec0::/10 中国移动: 2409:8000::/20
Unique Local Unicast fc00::/7
中国电信 : 240E::/20
Global Unicast 2000::/3                    2001:0c68::/32
Multicast ff00::/8                    2001:07FA:0010::/48
                   2402:8800::/32 

location (L) type (T) available bits (B) VLAN numbers (V)

​ 68 | ©2018 F5 NETWORKS
IPv6 依然需要防护扫描 Interface ID 猜测

扫描不靠蛮力靠智力 EUI-64 OUI:24bit FFFE:16bit

基于 IPv4 2001:db8::192.168.1.1

low-bit 定义 2001::1

64bit 64bit 服务端口 2001:db8:1::80

Network Prefix Interface ID 扫描引擎 单词定义 2001:db8:1::bad:cafe


 基于协议
EUI-64  基于人性 连续分配 分配地址按顺序分配,不愿使用字母
 基于习惯
固定
SLAAC 语义不透明 [RFC7217] RFC7217 SLAAC 非随机

随机 SLAAC 临时伪随机 [RFC4941]


DHCPv6
手工配置 内网扫描

其他

LLMNR 基于 DNS 的本地链路主机名查询 [RFC4795]

地址空间足够,网络前缀一般固定一个,主要扫描的是 Interface ID 。
mDNS 基于组播的 DNS 查询协议, UDP 5353 [RFC6762]

64 位的空间足够让暴力破解也难以完成,扫描需要分类和猜测。
DNS-SD DNS 服务发现,和 mDNS 结合,实现零配置网络
[RFC6763]

​ 69 | ©2019 F5
IPv6 扩展头说明

选项值 英文含义 中文含义


0 Hop-by-Hop Options Header 逐跳选项报头

6 TCP  

17 UDP  

41 Encapsulated IPv6 Header 封装的 IPv6 报头

43 Routing Header 路由报头

44 Fragment Header 分片报头

50 Encapsulating Security Payload 封装安全载荷报头

51 Authentication Header 认证报头

58 ICMPv6  

59 No Next Header 没有下一报头

60 Destination Options Header 目的选项报头


​ 70 | ©2019 F5
ICMPv6 过滤
不使用的尽量关闭

​ 71 | ©2019 F5
ICMPv6 Type

​ 72 | ©2019 F5
RA option for DNS configuration
RFC 8106

google 解析为 ..
SLAAC RDNS Server 为

RA RA

DHCPv6

IPv6 RA OPTION

RA DNSSL OPTION [RFC 8106]


RA RDNSS OPTION [RFC 8106]

SLAAC 可以配置各种网络参数
• RDNSS option :递归 DNS 服务器选项
• DNSSL option : DNS search list 选项。

DHCPv6 和 SLAAC 同时配置 DNS 的处理和优先级见 RFC 8106

​ 73 | ©2019 F5
Overlapping Fragment Attack
DEMO 1

通过 overlapping 来覆写第二个分片的内容,产生攻击 payload


正常 IPv6 因为有 Path MTU 探测,分片只在发送发分,沿途不分配。目标主机再组装。

不同操作系统利用这种攻击手段可以实现: Overlapping 分片必须禁止 [RFC 5722]


• DoS (资源消耗或者 OS crash )
• 安全设备 bypass
• 甚至 RCE
• 操作系统指纹嗅探

​ 74 | ©2019 F5
Overlapping Fragment Attack
PAXSON/SHANKAR 模型

OS 指纹嗅探

构造攻击 payload

逃逸检查

不同系统和策略对于 overlapping 分配的结果不同


​ 75 | ©2019 F5
IPv6 扩展头部: Routing Header
IPV6 扩展头部 TYPE0 ROUTING HEADER

类似 IPv4 时代的 IP OPTION 中的 Loose Source and Record Route (松散的源路由)

routing header 的 type 最大威胁的就是 type 0 ( RH0 )

可以在 类型指定数据中,定义沿途需要转发的 hop 地址。

​ 76 | ©2019 F5
IPv4 和 IPv6 分片处理

IPv4 标准头部中有关于分片的定义 IPv6 fragment 扩展头专门定义分片,标准头部没有定义

• IPv6 的标准头部固定为 40bytes ,靠扩展头部来扩展功能性。


• 分片就有专门的扩展头部。

​ 77 | ©2019 F5
IPv4 和 IPv6 分片对比
IPv4 IPv6

• IPv4 在标准头部中控制分片。 IPv6 在拓展分片头部中控制。

• IPv6 取消了 DF 位,因为只在最初的发起方做分片,沿途不分配。

• IPv6 支持 Path MTU 的发现。

​ 78 | ©2019 F5
互联网出口 DNS 防护架构
ISP
ISP

AFM AFM
抗 DDOS/IPS 网络层 DDOS 防护 + DNS 防火墙
AFM AFM
NG DNS
F5 DNS F5 DNS F5 DNS F5 DNS

链路负载均衡 链路负载均衡

防火墙 防火墙
WAF WAF
DMZ WAF WAF
DMZ

内网 DNS 内网 DNS 内网 DNS 内网 DNS


核心交换 核心交换

IPv6 业务发布区 IPv6 业务发布区


IPv4 业务发布区 IPv4 业务发布区

​ 79 | ©2018 F5 NETWORKS
RH0 机制举例
正常过程

​ 80 | ©2019 F5
客户端程序 ---Socket 建立

•fd6 = socket(AF_INET6,
SOCK_STREAM, IPPROTO_TCP);

•ret = connect(fd6, aitmp->ai_addr,


sizeof(struct sockaddr_in6));

​ 81 | ©2018 F5 NETWORKS
不同地址类型访问
 RFC2732 URL 访问 Socket 访问

http://[2010:836B:4179::836B:4179]
http://202.1.1.1
http://www.example.com

​ 82 | ©2018 F5 NETWORKS
IPv6 地址大小写处理
JAVA:
public class Guru99 {
public static void main(String args[]) {
2001:db8:5ef5:79fb:b5:9ca5:a266:e068
String S1 = new String("UPPERCASE CONVERTED TO LOWERCASE");
//Convert to LowerCase
VS System.out.println(S1.toLowerCase());
 
2001:DB8:5EF5:79FB:B5:9CA5:A266:E068 }
}

Python 3.6.0 (default, Dec 24 2016, 08:01:42)


 RFC 5952 recommends that all IPv6 >>> import ipaddress
addresses should be written in lowercase >>> ipaddress.ip_address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.ip_address('2001:db8::')
IPv6Address('2001:db8::')
>>> ipaddress.ip_address('2001:DB8::')
​ 83 | ©2018 F5 NETWORKS IPv6Address('2001:db8::')
JS 嵌套生成外链
针对复杂的天窗 – 大量 JS
http 请求
外链含有 JS 1
用户
请求 JS1 各种外部资源
获取 JS1 , JS1 中含有 JS2
请求 JS2
获取 JS2 , JS2 中含有 JS3

请求 JS3

1 、复杂的网站(尤其是调用第三方 SDK ,比如高德地图),会有很多的 JS ,一个 JS 内带出新的 JS 。


因此需要针对这种结构,给每个 JS 做分析,并处理。

2 、一些 JS 动态生成的外链请求,无法直接定位,需要找使用的第三方 SDK 厂家支持。

​ 84 | ©2018 F5 NETWORKS
针对 HTTPS 外链处理
针对 HTTPS 的天窗处理
http response
源站
用户 LTM
为了保证 HTTPS 的平滑过渡,
把外链都改成 HTTP
http https
方法 1
用户 LTM
外部资源
1 、 LTM 上修改用户访问外链的 http header 中的 host 为真实的 host ,保证 ssl 协商成功。
2 、因为之前修改 HTML 的外链从 https 改为 http ,所以客户端到 LTM 端为 HTTP 明文。
3 、 LTM 到外部资源,使用 server ssl profile 重新协商加密回去。

https https
方法 2
用户 LTM
1 、 LTM 上修改用户访问外链的 http header 中的 host 为真实的 host ,保证 ssl 协商成功。
2 、外链依然使用 HTTPS ,使用主站被 CA 签发的证书做 SSL 卸载,保证用户和客户端协商成功。
3 、 LTM 到外部资源,使用 server ssl profile 重新协商加密回去。
​ 85 | ©2018 F5 NETWORKS
IPv4 API VS 双栈 API
仅支持 ipv4 程序开发 api ipv4 与 ipv6 共用 api
int inet_aton socket
inet_ntoa bind
inet_addr listen
gethostbyaddr accept
gethostbyname connect
htonl
ntohl
htons
inet_pton
inet_ntop
getaddrinfo
gethostbyname2

​ 86 | ©2018 F5 NETWORKS
IPv6 标准应用开发
Basic Socket API(RFC3493)

• Core socket functions


• Address data structures
• Name-to-address translation functions
• Address conversion functions struct hostent *gethostbyname(const char *name)

Advanced Socket API(RFC3542)

​ 87 | ©2018 F5 NETWORKS
传输层设计
var http = require('http');

var handler = function (request, response) {


Dual-Stack versus IPv6-Only
response.writeHead(200, {"Content-Type":"text/plain"});
response.end ("Hello World!\n");
应用层支持
console.log("Got a connection from " +
request.connection().stream.remoteAddress);
Multiple IPv6 Addresses RFC3484 };

应用中是否用到组播广播 var server= http.createServer();


server.addListener("request",handler);
server.listen(80,"198.51.100.22");

var server6= http.createServer();


server6.addListener("request",handler);
server6.listen(80,"2001:db8:42d7::2");

console.log("Server running on localhost at port 80");

​ 88 | ©2018 F5 NETWORKS

You might also like