本发明涉及控制装置、控制系统、控制方法和控制程序。
背景技术:
作为构建虚拟环境的技术,一种被称作openstack(注册商标)的技术得到普及。此外,还提出有使用该openstack(注册商标)通过虚拟l2(层2)网络来连接多个数据中心等多个据点的技术(非专利文献1~3)。
现有技术文献
非专利文献
非专利文献1:openstack,[在线],[平成26年6月16日检索],互联网<url:http://www.openstack.org/>(openstack、[online]、[平成26年6月16日検索]、インターネット<url:http://www.openstack.org/>)
非专利文献2:石井久治等,“开源laas云基础设施openstack”,ntt技术刊物vol.23,no.8,2011(石井久治他、「オープンソースlaasクラウド基盤openstack」、ntt技術ジャーナルvol.23、no.8、2011).
非专利文献3:北爪秀雄等,“支持云服务的网络虚拟化技术”,ntt技术刊物vol.23,no.10,2011(北爪秀雄他、「クラウドサービスを支えるネットワーク仮想化技術」、ntt技術ジャーナルvol.23、no.10、2011).
非专利文献4:永渕幸雄等,“面向避免数据中心间实时迁移中的冗余路径的路径控制方式的提出”,信学技报,in2013-48,pp.71-76,jul.2013(永渕幸雄他、「データセンタ間ライブマイグレーションにおける冗長経路回避に向けた経路制御方式の提案」、信学技報、in2013-48、pp.71-76、jul.2013).
非专利文献5:减轻ddos攻击的对策,[在线],[平成26年6月16日检索],互联网<url:http://www.cisco.com/web/jp/product/hs/security/tad/tech/pdf/dda_wp.pdf>(ddos攻撃の軽減対策、[online]、[平成26年6月16日検索]、インターネット<url:http://www.cisco.com/web/jp/product/hs/security/tad/tech/pdf/dda_wp.pdf>)
非专利文献6:维基百科,http重定向,[在线],[平成26年6月16日检索],互联网<url:http://ja.wikipedia.org/wiki/%e3%83%aa%e3%83%80%e3%82%a4%e3%83%ac%e3%82%af%e3%83%88_(http)>(ウィキペディア、httpリダイレクト、[online]、[平成26年6月16日検索]、インターネット<url:http://ja.wikipedia.org/wiki/%e3%83%aa%e3%83%80%e3%82%a4%e3%83%ac%e3%82%af%e3%83%88_(http)>)
非专利文献7:永渕幸雄等,“虚拟数据中心环境中的ddos攻击业务分散方式的提出”,信学技报,in2014-48,pp.107-112,jul.2014(永渕幸雄他、「仮想データセンタ環境におけるddos攻撃トラヒック分散方式の提案」、信学技報、in2014-48、pp.107-112、jul.2014).
技术实现要素:
发明要解决的课题
在此,在数据中心内的特定的ip(internetprotocol:互联网协议)设备遭到由大量的分组带来的ddos(distributeddenialofservice:分布式拒绝服务)攻击的情况下,攻击分组集中在设置于该数据中心的入口的fw(firewall:防火墙)。其结果导致该数据中心内的ip设备有可能会无法对正规用户(攻击者以外的用户)继续提供服务。因此,本发明的课题在于,解决所述问题并且即使在遭到ddos攻击等攻击的情况下也继续提供服务。
解决课题的手段
为了解决所述课题,本发明是一种控制装置,该控制装置对边界路由器进行各种控制,所述边界路由器设置于由虚拟网络相互连接的多个据点,并对该据点内的设备与外部网络之间的通信进行中继,其特征在于,所述控制装置具有:nat设定部,其当检测到分组向任意据点内的设备集中时,对于被检测到所述分组的集中的设备即攻击对象设备所属的据点以外的各据点的边界路由器,进行所述攻击对象设备的ip地址的nat(网络地址转换)设定;重定向设定部,其对设置于任意据点内的重定向装置进行设定,使得针对所述重定向装置的访问重定向到所述攻击对象设备所属的据点以外的任意据点的边界路由器下属的主机;以及nat变更部,其在所述重定向的设定之后,将所述攻击对象设备所属的据点的边界路由器的nat设定中的所述攻击对象设备的私有ip地址变更成所述重定向装置的私有ip地址。
发明的效果
根据本发明,即使在遭到ddos攻击等攻击的情况下也能够继续提供服务。
附图说明
图1是示出系统的整体结构的一例的图。
图2是对系统的效果进行说明的图。
图3是示出边界路由器的结构的图。
图4是示出边界路由器的nat表格的一例的图。
图5是示出边界路由器的nat表格的设定变更的一例的图。
图6是示出dns服务器的结构的图。
图7是示出云控制器的结构的图。
图8是示出全球ip地址带信息(globalipaddressbandinformation)的一例的图。
图9是示出重定向装置的结构的图。
图10是示出云控制器的处理流程的流程图。
图11是示出重定向装置的处理流程的流程图。
图12是对vm的迁移进行说明的图。
图13是示出执行控制程序的计算机的图。
具体实施方式
以下,参照附图对用于实施本发明的方式(实施方式)进行说明。另外,本发明并不限定于本实施方式。
(整体结构)
首先,使用图1对本实施方式的控制系统(系统)的整体结构进行说明。系统具有:数据中心(数据中心1、2、3);用户终端10(10a~10e);dns(domainnamesystem:域名系统)服务器40;以及云控制器(控制装置)50。这些部分由互联网等网络60进行连接。
数据中心分别具有边界路由器30,能够设置1个以上的vm。在此,以数据中心1具有边界路由器30a、数据中心2具有边界路由器30b、数据中心3具有边界路由器30c的情况为例进行说明。另外,在本实施方式中,以数据中心内设置的设备为vm(virtualmachine:虚拟机)为例进行说明,但是,也可以是vm以外的设备。
边界路由器30(30a、30b、30c)与网络60连接,用于中继用户终端10与各数据中心的各vm之间的通信。另外,各边界路由器30将由虚拟l2(层2)网络21构成的数据中心1、2、3分割成相同的公共的网段22和网络60。
例如,边界路由器30a的接口31中设定有从被分配给数据中心1的ip地址带“aaa.bbb.ccc.0/24”中选择出的ip地址(全球ip地址)“aaa.bbb.ccc.101”。同样地,边界路由器30b中也设定有从被分配给该边界路由器30b所属的数据中心2的ip地址带中选择出的ip地址,边界路由器30c中也设定有从被分配给该边界路由器30c所属的数据中心3的ip地址带中选择出的ip地址。
边界路由器30具有nat(networkaddresstranslation:网络地址转换)功能,利用nat表格(参照图4)来进行各vm的全球ip地址—私有ip地址间的相互转换。例如可以考虑如下情况:分配“xxx.yyy.zzz.0/24”作为数据中心1的内部的私有ip地址空间,vm(a)的私有ip地址是“xxx.yyy.zzz.101”。该情况下,边界路由器30a在接收到发给vm(a)的分组时,将分组的目标地址的全球ip地址(例如“aaa.bbb.ccc.101”)转换成该vm(a)的私有ip地址(“xxx.yyy.zzz.101”)并转发至数据中心1的内部的vm(a)。另外,各数据中心间由虚拟l2(层2)网络21进行连接,无论哪个边界路由器30都使用nat表格,由此使得在接收到分组的情况下能够将该分组转发至目标地址的vm。
此外,边界路由器30还具有作为所谓的fw(firewall:防火墙)的功能,在检测到ddos攻击等攻击的情况下,进行攻击分组的过滤。此外,边界路由器30将检测到攻击的情况通知给云控制器50。该边界路由器30也可以通过物理机器来实现,也可以通过虚拟机器来实现。
vm经由虚拟l2网络21和边界路由器30来执行与用户终端10之间的通信。该vm例如是执行web服务器、db(数据库)服务器等的虚拟机器。该vm是通过数据中心内设置的物理资源来实现的。另外,物理资源是通信接口、处理器、存储器、硬盘等。在以下内容中,以发生针对数据中心1的vm(a)的攻击且该vm(a)的主机名为“hoge.example.co.jp”的情况为例进行说明。
此外,在数据中心内设置有重定向装置70。该重定向装置70在受理了来自用户终端10的访问时,进行向规定的重定向目的地的重定向。图1中,重定向装置70被表述为设置于数据中心1的装置,但是,也可以设置于数据中心2、3。另外,该重定向装置70可以通过vm来实现,也可以通过物理上的机器来实现。而且,还可以通过在边界路由器30中安装重定向装置70的功能来实现。
另外,各数据中心内的边界路由器30、vm和重定向装置70通过虚拟开关(省略图示)与虚拟l2网络21连接。该虚拟l2网络21是连接各数据中心间的逻辑性的l2网络。该虚拟l2网络21可以通过所谓的虚拟化技术来实现,也可以通过除此以外的技术来实现。
用户终端10经由网络60访问各数据中心内的设备(例如vm),从vm接受各种服务的提供。该用户终端10例如是个人计算机或智能手机等。
dns服务器40进行主机名的名称解析。例如,dns服务器40在从用户终端10受理了访问目的地的vm的主机名的名称解析的请求时,回复与该主机名对应的ip地址。例如,参照dns服务器40本身保有的dns信息(参照标号102),返回针对“hoge.example.co.jp”的ip地址“aaa.bbb.ccc.101”。然后,用户终端10使用该ip地址访问vm(例如vm(a))。
另外,该dns信息中除了针对各vm(例如vm(a))的主机名的ip地址(全球ip地址)外,还设定有各vm(例如,vm(a))遭到攻击时的针对重定向目的地的主机名的ip地址。
例如,图1的标号102所示的dns信息中除了设定有针对vm(a)的主机名“hoge.example.co.jp”的ip地址“aaa.bbb.ccc.101”外,还设定有当vm(a)被攻击时的重定向目的地的主机名及针对该主机名的ip地址。列举具体例进行说明,考虑vm(a)被攻击时的重定向目的地是数据中心2的边界路由器30b或数据中心3的边界路由器30c的情况。该情况下,图1的标号102所示的dns信息中设定有这样的信息:针对主机名“hoge.anti_ddos1.example.co.jp”的ip地址是“ddd.eee.fff.101(边界路由器30b中设定的vm(a)的全球ip地址)”,针对主机名“hoge.anti_ddos2.example.co.jp”的ip地址是“ggg.hhh.iii.101(边界路由器30c中设定的vm(a)的全球ip地址)”。由此,接受了来自重定向装置70(详细情况后述)的重定向的用户终端10能够进行重定向目的地的主机名的名称解析。
云控制器50进行数据中心内的各设备(例如边界路由器30、vm、重定向装置70)的控制。云控制器50例如进行针对其它边界路由器30的nat用的ip地址的设定和nat表格的设定的变更。此外,云控制器50还对重定向装置70进行重定向的设定。
(动作概要)
接下来,继续使用图1对上述系统中的动作概要进行说明。在此,以数据中心1的边界路由器30a检测到针对vm(a)的ddos攻击的情况为例进行说明。例如,数据中心1的边界路由器30a在检测到ddos攻击时(s1),向云控制器50通知ddos攻击的检测(s2)。接到该通知的云控制器50从分别分配给数据中心2、3的全球ip地址带中选择出nat用的ip地址(s3)。然后,云控制器50对各边界路由器30进行nat的设定(s4)。即,云控制器50在边界路由器30b、30c各自的nat表格中设定在s3中选择出的vm(a)的全球ip地址和私有ip地址。
例如,云控制器50在边界路由器30b的nat表格中设定在s3中选择出的vm(a)的全球ip地址“ddd.eee.fff.101”和vm(a)的私有ip地址。此外,云控制器50在边界路由器30c的nat表格中设定在s3中选择出的vm(a)的全球ip地址“ggg.hhh.iii.101”和vm(a)的私有ip地址。
接下来,云控制器50对重定向装置70进行重定向的设定(s5)。例如,云控制器50以如下方式对重定向装置70进行重定向的设定:当该重定向装置70从用户终端10受理了访问时,重定向为url2(hoge.anti_ddos1.example.co.jp)和url3(hoge.anti_ddos2.example.co.jp)中的任意一个。该url2和url3是当dns服务器40的dns信息中记述的vm(a)被攻击时的重定向目的地的主机名。云控制器50从例如dns服务器40的dns信息中取得该重定向目的地的主机名。另外,如果在数据中心1内没有重定向装置70,则云控制器50使用数据中心内的资源来生成(准备)重定向装置70,进行上述重定向的设定。另外,关于重定向装置70的私有ip地址,从规定的私有ip地址空间(例如“xxx.yyy.zzz.0/24”)中选择空闲的私有ip地址(例如“xxx.yyy.zzz.102”)进行分配。
然后,云控制器50进行边界路由器30a的nat设定的变更(s6)。即,将边界路由器30a的nat表格中的针对vm(a)的全球ip地址的私有ip地址从vm(a)的私有ip地址变更成重定向装置70的私有ip地址(例如“xxx.yyy.zzz.102”)。
由此,如图2所示,正规用户的用户终端10(例如用户终端10d、10e)例如一开始访问重定向装置70,但是却被重定向而通过dns服务器40进行重定向目的地的主机名的名称解析,经由边界路由器30b或边界路由器30c访问vm(a)。即,正规用户的用户终端10(例如用户终端10d、10e)通过重定向装置70被重定向成url2(hoge.anti_ddos1.example.co.jp)或url3(hoge.anti_ddos2.example.co.jp)中的任意一个。在此,正规用户的用户终端10(例如用户终端10d、10e)在通过dns服务器40获知针对url2(hoge.anti_ddos1.example.co.jp)或url3(hoge.anti_ddos2.example.co.jp)的ip地址(“ddd.eee.fff.101”、“ggg.hhh.iii.101”)时,根据该ip地址经由边界路由器30b或边界路由器30c访问vm(a)。
另一方面,在攻击者的用户终端10(例如用户终端10a、10b、10c)利用不具有浏览器功能的攻击程序(攻击工具)进行了攻击的情况下,由于无法应对需要浏览器功能的重定向,因此,经由边界路由器30a以原来的ip地址(“aaa.bbb.ccc.101”)为目的地继续攻击重定向装置70。
由此,正规用户的用户终端10(例如用户终端10d、10e)会避开访问集中的边界路由器30a而访问vm(a),因此,当发生攻击时也容易访问vm(a)。此外,由于集中向边界路由器30a进行的访问得到缓和,因此,能够减轻边界路由器30a的频带压迫。其结果是,系统即使在遭到ddos攻击等攻击的情况下也能够对用户终端10继续提供服务。
(边界路由器)
接下来,详细说明系统的各构成要素。首先,使用图3对边界路由器30进行说明。
如所述那样,边界路由器30与网络60连接,用于中继用户终端10与各数据中心的各vm之间的通信。该边界路由器30具有接口31、34、存储部32和控制部33。
接口31是连接边界路由器30和网络60的接口。该接口31中设定有从该边界路由器30所属的数据中心的ip地址带中选择出的全球ip地址。接口34是连接边界路由器30和虚拟l2网络21、vm的接口。
存储部32存储nat表格。nat表格是用于将数据中心内的设备(例如vm)的全球ip地址和私有ip地址对应起来的信息。例如,图4所示的nat表格是边界路由器30a中的nat表格,该nat表格中示出针对全球ip地址“aaa.bbb.ccc.101”的私有ip地址是“xxx.yyy.zzz.101”。当路径控制部332(后述)进行nat时参照该nat表格。此外,根据来自云控制器50的指示来变更该nat表格。
图3的控制部33具有nat表格管理部331、路径控制部332、攻击通知部333和过滤部334。
nat表格管理部331根据来自外部装置的指示来更新nat表格(参照图4)。例如,在存在来自云控制器50的、nat表格中的与vm(a)的全球ip地址相对应的私有ip地址的设定变更的指示的情况下,与此对应地进行nat表格的设定变更。
例如,在存在来自云控制器50的、将nat表格中的与vm(a)的全球ip地址“aaa.bbb.ccc.101”相对应的私有ip地址从“xxx.yyy.zzz.101(vm(a)的私有ip地址)”变更成“xxx.yyy.zzz.102(重定向装置70的私有ip地址)”的设定变更指示的情况下,nat表格管理部331与此对应地如图5的标号301→标号302所示地进行nat表格的设定变更。
图3的路径控制部332进行经由接口31、34被输入的分组的路径控制。例如,在经由接口31从用户终端10接收到送至vm的分组时,将该分组转发至该vm。此时,路径控制部332参照nat表格(参照图4),进行分组中标注的全球ip地址与私有ip地址之间的nat转换。
攻击通知部333在检测到经由本身的边界路由器30的向vm进行的ddos攻击等攻击的情况下,将检测到攻击的情况通知给云控制器50。
过滤部334进行攻击分组的过滤。例如,过滤部334参照接收到的分组的报头信息,丢弃被估计为攻击分组的分组。
另外,将该边界路由器30作为通过具有所谓的fw功能的路由器来实现的路由器进行了说明,但是,该边界路由器30当然也可以通过路由器和fw这两个装置来实现。
(dns服务器)
接下来,使用图6对dns服务器40进行说明。如所述那样,dns服务器40进行访问目的地的主机名的名称解析。该dns服务器40具有通信控制部41、存储部42和控制部43。
通信控制部41用于控制与其它装置之间的通信。通信控制部41例如控制与用户终端10等之间进行的通信。
存储部42存储dns信息。该dns信息包含与主机名对应的ip地址(全球ip地址)的信息。主机名解决部432(后述)在进行主机名的名称解析时参照该dns信息。该dns信息例如是图1的标号102所示的信息等。
控制部43具有dns信息管理部431和主机名解决部432。
dns信息管理部431根据来自外部装置(例如云控制器50)的指示来设定dns信息。例如,关于dns信息,如图1的标号102所示,“aaa.bbb.ccc.101”被设定作为与vm(a)的主机名“hoge.example.co.jp”相对应的ip地址,“ddd.eee.fff.101”被设定作为与主机名“hoge.anti_ddos1.example.co.jp”相对应的ip地址,“ggg.hhh.iii.101”被设定作为与主机名“hoge.anti_ddos2.example.co.jp”相对应的ip地址。即,该dns信息中除了vm的主机名和ip地址所构成的对外,还设定有当检测到针对该vm的攻击时使用的vm的主机名和ip地址所构成的对。关于与当检测到针对该vm的攻击时使用的vm的主机名对应的ip地址,使用攻击对象的vm所属的据点以外的据点的边界路由器30下属的ip地址。另外,当重定向设定部533(后述)对重定向装置70进行重定向的设定时参照当检测到针对该vm的攻击时使用的vm的主机名。此外,上述主机名中包含的“anti_ddos1”、“anti_ddos2”是为了便于说明而使用的字符串,实际上不使用使攻击者获知该字符串是ddos对策那样的字符串。
主机名解决部432参照dns信息来进行主机名的名称解析。例如,主机名解决部432在从用户终端10受理了vm(a)的主机名的名称解析请求时,参照dns信息返回与该主机名对应的ip地址。
(云控制器)
接下来,使用图7对云控制器50进行说明。如所述那样,云控制器50进行数据中心内的各设备(例如边界路由器30、vm、重定向装置70等)的控制。
云控制器50具有通信控制部51、存储部52和控制部53。通信控制部51用于控制与其它装置之间的通信。通信控制部51例如控制在与边界路由器30或dns服务器40之间进行的通信。
存储部52存储边界路由器信息和全球ip地址带信息。
边界路由器信息是按照各个边界路由器30示出该边界路由器30所属的数据中心和该边界路由器30的ip地址的信息。
全球ip地址带信息是示出被分配给各数据中心的全球ip地址带的信息。例如,在图8所示的全球ip地址带信息中,被分配给数据中心1的全球ip地址带是“aaa.bbb.ccc.0/24”,被分配给数据中心2的全球ip地址带是“ddd.eee.fff.0/24”。nat设定部532(后述)对各边界路由器30进行nat的设定时参照该全球ip地址带信息。
控制部53具有攻击通知接收部531、nat设定部532、重定向设定部533和nat变更部534。存在配备有以虚线所示的迁移执行部535、dns信息设定部536的情况以及未配备有迁移执行部535、dns信息设定部536的情况,对配备的情况后面进行叙述。
攻击通知接收部531接收来自边界路由器30的攻击通知。
当由攻击通知接收部531接收到攻击通知时,nat设定部532对各数据中心的边界路由器30进行攻击对象的vm的nat的设定。
例如考虑攻击对象的vm是数据中心1的vm(a)的情况。该情况下,nat设定部532针对数据中心2、3的各边界路由器30,参照全球ip地址带信息(参照图8)来选择vm(a)的nat用的ip地址。例如,nat设定部532参照全球ip地址带信息(参照图8),从被分配给数据中心2的全球ip地址带“ddd.eee.fff.0/24”中选择出“ddd.eee.fff.101”,从被分配给数据中心3的全球ip地址带“ggg.hhh.iii.0/24”中选择出“ggg.hhh.iii.101”。然后,nat设定部532对数据中心2的边界路由器30b进行将vm的私有ip地址(例如“xxx.yyy.zzz.101”),与“ddd.eee.fff.101”对应起来的nat的设定。此外,nat设定部532对数据中心3的边界路由器30c进行将vm的私有ip地址(例如“xxx.yyy.zzz.101”)与“ggg.hhh.iii.101”对应起来的nat的设定。另外,nat设定部532将已在nat中设定完毕的各vm的ip地址预先存储于存储部52中,使得在nat的设定中各vm间ip地址不重复。
当由攻击通知接收部531接收到攻击通知时,重定向设定部533对重定向装置70进行重定向的设定。
例如,在攻击对象的vm是数据中心1的vm(a)的情况下,重定向设定部533从dns服务器40的dns信息(参照图1的标号102)中取得在检测到针对该vm(a)的攻击时使用的vm的主机名(“hoge.anti_ddos1.example.co.jp”和“hoge.anti_ddos2.example.co.jp”),对重定向装置70进行向该取得的任意一个主机名的主机的重定向的设定。由此,从用户终端10(正规用户的用户终端10)向重定向装置70进行的访问被重定向到“hoge.anti_ddos1.example.co.jp”或“hoge.anti_ddos2.example.co.jp”中的任意一个。其结果是,用户终端10(正规用户的用户终端10)经由边界路由器30b或边界路由器30c来访问vm(a)。另外,在重定向装置70中设定有多个重定向目的地的情况下,重定向设定部533针对重定向装置70中的重定向目的地的选择方法(例如轮循调度(roundrobin)等)也可以进行设定。
另外,当重定向装置70不在攻击对象的vm所属的数据中心内时,重定向设定部533例如在攻击对象的vm所属的数据中心内生成重定向装置70(例如重定向用vm),对该生成的重定向装置70进行上述重定向的设定。另外,由于各数据中心间由虚拟l2网络21进行连接,因此,重定向设定部533还可以在攻击对象的vm所属的数据中心以外生成重定向装置70,但是,通过在攻击对象的vm所属的数据中心内生成重定向装置70,能够避免攻击分组跨越数据中心间进行沟通的情况。
在由重定向设定部533进行重定向的设定之后,nat变更部534将攻击对象的vm所属的数据中心的边界路由器30的nat表格中的该vm的私有ip地址变更成重定向装置70的私有ip地址。
例如在攻击对象的vm是数据中心1的vm(a)的情况下,nat变更部534将vm(a)所属的数据中心1的边界路由器30a的nat表格中的vm(a)的私有ip地址变更成重定向装置70的私有ip地址(参照图1的s6)。由此,使得经由边界路由器30a的发给vm(a)的业务到达重定向装置70。
(重定向装置)
接下来,使用图9对重定向装置70进行说明。如所述那样,重定向装置70对来自用户终端10的访问进行重定向。该重定向装置70具有通信控制部71、存储部72和控制部73。
通信控制部71用于控制与其它装置之间的通信。通信控制部71例如控制与云控制器50或用户终端10之间进行的通信。
存储部72存储重定向目的地信息。该重定向目的地信息是示出重定向装置70的重定向目的地的主机名的信息,例如记述有“hoge.anti_ddos1.example.co.jp”和“hoge.anti_ddos2.example.co.jp”等。
控制部73具有重定向设定受理部731和重定向部732。
重定向设定受理部731经由通信控制部71从云控制器50受理了重定向设定时,将包含在重定向设定中的重定向目的地信息(重定向目的地的主机名)输出至存储部72。
重定向部732进行来自用户终端10的访问的http重定向(重定向)。例如,重定向部732经由通信控制部71受理了来自用户终端10的访问时,根据重定向目的地信息中所示的主机名(例如“hoge.anti_ddos1.example.co.jp”和“hoge.anti_ddos2.example.co.jp”),进行针对由轮循调度所确定的主机名的重定向。另外,重定向部732通过如上所述利用轮循调度来确定重定向目的地,由此从正规用户的用户终端10至攻击对象的vm(例如vm(a))的业务被分散到各数据中心的边界路由器30。
(处理流程)
接下来,使用图10对云控制器50的处理流程进行说明。在云控制器50的攻击通知接收部531从边界路由器30接收到对vm的攻击通知时(s11),nat设定部532参照全球ip地址带信息(参照图7)来选择该vm的nat用的ip地址(s12)。然后,nat设定部532将在s12中选择出的ip地址设定在各边界路由器30(攻击对象的vm所属的数据中心以外的各数据中心的边界路由器30)的nat表格中(s13)。然后,重定向设定部533确认在攻击对象的vm所属的数据中心是否存在重定向装置70(s14),如果没有重定向装置70(在s14中为“否”),则重定向设定部533生成重定向装置70(s15)。然后,前进至s16。另一方面,如果在攻击对象的vm所属的数据中心存在重定向装置70(在s14中为“是”),则重定向设定部533跳过s15,前进至s16。
在s16中,重定向设定部533对重定向装置70进行重定向的设定。重定向设定部533从dns服务器40的dns信息(参照图1的标号102)中取得当检测到针对攻击对象的vm(例如,vm(a))的攻击时使用的vm的主机名(“hoge.anti_ddos1.example.co.jp”和“hoge.anti_ddos2.example.co.jp”),对重定向装置70进行向该取得的任意一个主机名的主机的重定向的设定。
然后,在s16之后,nat变更部534将攻击对象的vm所属的数据中心的边界路由器30的nat设定中的攻击对象的vm的私有ip地址变更成重定向装置70的私有ip地址(s17)。
接下来,使用图11对重定向装置70的处理流程进行说明。重定向装置70的重定向部732受理了来自用户终端10的访问时(在s21中为“是”),利用轮循调度从重定向目的地信息中所示的主机中确定重定向目的地主机(s22),并将来自用户终端10的访问重定向到在s22中确定的主机(s23)。另一方面,重定向部732在受理来自用户终端10的访问之前(在s21中为“否”)返回s21。
(效果)
系统通过进行上述处理从而利用重定向装置70将从正规用户的用户终端10向攻击对象的vm进行的访问重定向。然后,正规用户的用户终端10在通过dns服务器40进行重定向目的地的主机名的名称解析时,经由攻击对象的vm所属的数据中心以外的数据中心的边界路由器30来访问攻击对象的vm。另一方面,攻击者的用户终端10即使访问重定向装置70也无法应对重定向,因此处于保持着访问重定向装置70的状态。
即,正规用户的用户终端10会避开由于攻击而导致访问集中的边界路由器30而访问攻击对象的vm,因此,使得容易访问攻击对象的vm。此外,利用重定向来缓和向攻击对象的vm所属的数据中心的边界路由器30进行的集中访问,因此,能够减轻该边界路由器30的频带压迫。其结果是,系统即使在受到ddos攻击等攻击的情况下也能够对用户终端10继续提供服务。
参照图12,使用具体例对本实施方式的效果详细地进行说明。在此,以如下情况为例进行考虑:连接各数据中心和网络60的访问线路的频带为10gbps,来自攻击者的用户终端10(10a、10b、10c)的攻击业务共计为8gbps,来自正规用户的用户终端10(10d、10e)的业务共计为4gbps,vm针对1个请求应答2m比特的数据。
该情况下,数据中心1的访问线路的负载为8gbps+4gbps=12gbps。另一方面,连接数据中心1和网络60的访问线路的频带为10gbps,因此,照这样的话,包含来自正规用户的用户终端10的业务在内,2gbps的量的业务会被丢弃。
在此,系统通过实施基于重定向装置70的重定向,能够期待以下的效果。
即,来自正规用户的用户终端10(10d、10e)的业务被分散到2个数据中心(数据中心2、3)的边界路由器30。其结果是,至数据中心1的边界路由器30a的业务为8gbps,至数据中心2的边界路由器30b的业务为2gbps,至数据中心3的边界路由器30c的业务为2gbps。即,成为10gbps以下,因此,业务不会被丢弃,能够保护来自正规用户的用户终端10的业务。
而且,重定向装置70对用户终端10发送重定向信息,因此,与利用vm等向用户终端10应答数据(在上述示例中为2m比特)的情况相比,能够减少至用户终端10的业务量。此外,由于重定向装置70以重定向处理作为主要处理,因此,对于来自用户终端10等的访问,相比于通常的网络服务器可以减少cpu(centralprocessingunit:中央处理器)、存储器等资源。其结果是,重定向装置70还能够应对来自众多的用户终端10的访问。此外,对于对vm的资源进行的ddos攻击也是有效的。
而且,利用边界路由器30中的nat设定的变更以及基于重定向装置70的重定向,来自攻击者的用户终端10访问不会到达攻击对象的vm。因此,攻击对象的vm只要应对来自正规用户的用户终端10的访问即可,因此,能够应对对上述那样的vm的资源进行的ddos攻击。
此外,系统在攻击检测之前预先进行针对dns服务器40进行的dns信息的设定。因此,系统例如如非专利文献7所述的技术那样,与在攻击检测之后变更dns服务器的dns信息来应对的情况相比,能够迅速进行针对攻击的应对。
(其它实施方式)
另外,云控制器50也可以在如上述那样进行了基于重定向装置70的重定向的设定之后,使攻击对象的vm迁移至其它数据中心(例如数据中心2)。该情况下,云控制器50具有图7所示的迁移执行部535,利用该迁移执行部535来执行该vm的迁移。
例如,如图12所示,云控制器50的迁移执行部535使攻击对象的vm(a)从数据中心1迁移至数据中心2。通过执行这样的迁移,经由边界路由器30b或边界路由器30c访问了vm(a)的正规用户的用户终端10无需再进行与数据中心1的通信,因此能够缩短与vm(a)之间通信的通信时间。
此外,以在各数据中心设置有1台边界路由器30的情况为例进行了说明,但是,在各数据中心当然也可以设置多台边界路由器30。该情况下,云控制器50通过与上述同样的处理流程对各边界路由器30进行nat的设定,进行攻击对象的vm所属的数据中心的边界路由器30的nat的变更,执行基于重定向装置70的重定向。
另外,假设了边界路由器30当检测到ddos攻击时发送攻击通知,但并不限于此。例如也可以当超出规定的阈值地发送了由该边界路由器30中继的至vm的分组时发送攻击通知。此处的阈值例如采用连接从边界路由器30至网络60的接口31中设定的频带的值。
此外,假定了云控制器50的重定向设定部533从dns服务器40的dns信息中取得重定向装置70中设定的重定向目的地的主机名,但并不限于此。例如,在由云控制器50来设定dns服务器40的dns信息的情况下,云控制器50将设定于dns服务器40的dns信息预先存储于存储部52中。然后,云控制器50从存储部52的dns信息中取得重定向目的地的主机名,并在重定向装置70中进行设定。即,云控制器50还具有设定dns服务器40的dns信息的dns信息设定部536(参照图7),dns信息设定部536将设定于dns服务器40的dns信息预先存储于存储部52中。然后,重定向设定部533从存储部52的dns信息中取得攻击对象的vm所属的据点以外的任意据点的边界路由器30下属的主机的主机名,将该主机名的主机作为重定向目的地的主机在重定向装置70中进行设定。
另外,所述系统的各构成要素是功能概念性的构成要素,并不一定需要如各图所示的那样构成,可以以任意的单位合并或分散来构成。
(程序)
此外,还可以生成并执行以计算机能够执行的语言记述了上述实施方式的云控制器50所执行的处理的程序。该情况下,通过由计算机执行程序而能够获得与上述实施方式同样的效果。而且,也可以通过如下方式来实现与上述实施方式同样的处理:将上述程序记录于计算机可读取的记录介质中,使计算机读入记录于该记录介质的程序并执行该程序。以下,对执行实现与云控制器50同样的功能的控制程序的计算机的一例进行说明。
图13是示出执行控制程序的计算机的图。如图13所示,计算机1000例如具有存储器1010、cpu1020、硬盘驱动器接口1030、磁盘驱动器接口1040、串口接口1050、视频适配器1060和网络接口1070。上述各部由总线1080连接。
存储器1010包含rom(readonlymemory:只读存贮器)1011和ram(randomaccessmemory:随机存取存储器)1012。rom1011存储例如bios(basicinputoutputsystem:基本输入输出系统)等启动程序。硬盘驱动器接口1030与硬盘驱动器1090连接。磁盘驱动器接口1040与磁盘驱动器1100连接。磁盘驱动器1100中插入有例如磁盘或光盘等能够拆卸的存储介质。串口接口1050与例如鼠标1110和键盘1120连接。视频适配器1060与例如显示器1130连接。
在此,如图13所示,硬盘驱动器1090存储例如os1091、应用程序1092、程序模块1093和程序数据1094。在上述实施方式中说明的各表格被存储于例如硬盘驱动器1090、存储器1010中。
此外,控制程序还例如作为记述有由计算机1000执行的指令的程序模块而被存储于硬盘驱动器1090中。具体而言,记述有在上述实施方式中说明的云控制器50执行的各处理的程序模块被存储于硬盘驱动器1090中。
此外,基于控制程序的信息处理中使用的数据作为程序数据例如被存储于硬盘驱动器1090中。并且,cpu1020根据需要将存储于硬盘驱动器1090中的程序模块1093、程序数据1094读出至ram1012,执行上述各流程。
另外,控制程序的程序模块1093、程序数据1094不限于存储于硬盘驱动器1090中的情况,例如还可以存储于能够拆卸的存储介质中,经由磁盘驱动器1100等而由cpu1020读出。或者,控制程序的程序模块1093、程序数据1094也可以存储于经由lan(localareanetwork:局域网)或wan(wideareanetwork:广域网)等网络连接的其它计算机中,经由网络接口1070由cpu1020读出。
标号说明
1、2、3:数据中心;
10:用户终端;
21:虚拟l2网络;
22:网段(networksegment);
30:边界路由器;
31、34:接口;
32、42、52、72:存储部;
33、43、53、73:控制部;
40:dns服务器;
41、51、71:通信控制部;
50:云控制器;
60:网络;
331:nat表格管理部;
332:路径控制部;
333:攻击通知部;
334:过滤部;
431:dns信息管理部;
432:主机名解决部;
531:攻击通知接收部;
532:nat设定部;
533:重定向设定部;
534:nat变更部;
535:迁移执行部;
536:dns信息设定部;
731:重定向设定受理部;
732:重定向部。