KR101868633B1 - 마이그레이션들 동안 네트워크 재구성을 자동화하는 방법 - Google Patents

마이그레이션들 동안 네트워크 재구성을 자동화하는 방법 Download PDF

Info

Publication number
KR101868633B1
KR101868633B1 KR1020110046566A KR20110046566A KR101868633B1 KR 101868633 B1 KR101868633 B1 KR 101868633B1 KR 1020110046566 A KR1020110046566 A KR 1020110046566A KR 20110046566 A KR20110046566 A KR 20110046566A KR 101868633 B1 KR101868633 B1 KR 101868633B1
Authority
KR
South Korea
Prior art keywords
network
environment
target environment
source
level attributes
Prior art date
Application number
KR1020110046566A
Other languages
English (en)
Other versions
KR20110132973A (ko
Inventor
바타차랴 카말
니콜라이 에이. 조우코프
비르기트 모니카 피츠만
하리고빈드 벤카트라즈 라마사미
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110132973A publication Critical patent/KR20110132973A/ko
Application granted granted Critical
Publication of KR101868633B1 publication Critical patent/KR101868633B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

마이그레이션들에서 방화벽 재구성과 같은 네트워크 방화벽을 자동화하는 것은, 그 발견에 기초하여 타겟 환경에서의 하나 또는 그 이상의 네트워크 기능들에서의 네트워크 재구성 요구들을 결정하는 것; 및 상기 타겟 환경에서의 하나 또는 그 이상의 네트워크 기능들에 상기 네트워크 재구성 요구들을 적용하는 것을 포함한다.

Description

마이그레이션들 동안 네트워크 재구성을 자동화하는 방법{AUTOMATING NETWORK RECONFIGURATION DURING MIGRATIONS}
본 발명은 일반적으로는 컴퓨터 시스템들과 관련되고, 구체적으로는 컴퓨터 서비스 기술들 및 정보 기술(information technology, IT) 변환 태스크들과 관련된다.
마이그레이션(migration), 통합(consolidation), 가상화(virtualization), 및 클라우드화(cloudification)는 정보 기술 변환 태스크들 중 일부이며, 특히 현재의 비용 절감 및 그린 데이터 센터들(green data centers)과 관련된다. 본 명세서에서, 이들 태스크들 및 유사한 태스크들은 총괄적으로 "마이그레이션" 으로 일컬어진다. 마이그레이션에서의 태스크는 의존성(dependencies) 또는 친화성(affinities)의 발견, 즉 어떤 컴포넌트들(서버들, 어플리케이션들, 어플리케이션 모듈들, 데이터베이스 등)이 네트워크를 통해 어떤 다른 컴포넌트들과 상호작용(interact)하는지에 관한 발견을 포함한다.
서로 다른 어드레스들(예를 들어, 도메인 네임 서비스의 맥락에서 도메인 네임들 또는 IP 어드레스들) 및 서로 다른 네트워크 토폴로지를 갖는 타겟 환경으로 컴포넌트들을 마이그레이팅함에 있어서, 상기 타겟 환경의 방화벽 구성들은, 너무 많은 불필요한 통신 경로들을 개방하지 않고서도, 상호작용할 필요가 있는 모든 컴포넌트들이 여전히 상호작용할 수 있도록, 세팅될 필요가 있다. 예를 들어, "방화벽 재구성(firewall reconfiguration)"은 타겟 환경에서의 방화벽 파라미터들의 재구성 또는 세팅을 일컫는데, 그리하여 상기 마이그레이션 이후 상기 타겟 환경에서의 컴포넌트들이 여전히 상호작용할 수 있도록 한다. 방화벽 재구성은 현재 수동으로(manually) 이루어지고 있으며, 심지어 그 소스 환경에서의 의존성의 상세한 표현에 대한 접근없이 수행된다.
새로운 네트워크로 어플리케이션들을 마이그레이팅하는 것은 그 상호작용이 매끄럽게 일어나도록 할 수 있어야 한다. 예를 들어, 그 새로운 방화벽들 등이 그 마이그레이트되는 어플리케이션들이 이전과 같이 기능할 수 있도록 해야 한다.
누락된(missing) "허용(allow)" 규칙의 의미에서, 잘못된 방화벽 재구성은 이후에 단대단(end-to-end) 테스팅에서 나타나는 상당한 에러들의 소스가 되고 또한 식별 및 픽스(fix)하는데 있어서 어려움이 있다. 따라서 긴 마이그레이션 스케쥴들 및 높은 마이그레이션 비용들을 초래할 수 있다. 이러한 이유들로 인해, 많은 기업들은 마이그레이션들을 계속해서 회피하고 있다. 그와는 반대로, 타겟 환경에서 너무 많은 "허용" 규칙들을 만드는 것은 필요한 것보다 그리고 그 소스 환경에서 가능했던 것보다 더 많은 유형의 공격들에 그 타겟 환경을 오픈시킬 수 있다.
마이그레이션들에서 네트워크 재구성을 자동화하는 방법 및 시스템이 제공된다. 일 측면에서, 상기 방법은 소스 환경과 연관된 하나 또는 그 이상의 네트워크-레벨 속성들 그리고 마이그레이트되는 하나 또는 그 이상의 컴포넌트들의 타겟 환경과 연관된 하나 또는 그 이상의 네트워크-레벨 속성들에 기초하여 타겟 환경의 하나 또는 그 이상의 기능들(functionalities)에서의 네트워크 재구성 요구들(network reconfiguration needs)을 결정하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 타겟 환경의 하나 또는 그 이상의 네트워크 기능들에 상기 네트워크 재구성 요구들을 적용하는 단계를 포함할 수 있다.
일 측면에서, 마이그레이션들에서의 네트워크 재구성을 위한 시스템은, 소스 환경과 연관된 하나 또는 그 이상의 네트워크-레벨 속성들 그리고 하나 마이그레이트되는 하나 또는 그 이상의 컴포넌트들의 타겟 환경과 연관된 하나 또는 그 이상의 네트워크-레벨 속성들에 기초하여 타겟 환경의 하나 또는 그 이상의 네트워크 기능들에서의 네트워크 재구성 요구들을 결정하도록 동작가능한 모듈을 포함할 수 있다. 상기 시스템은 또한 상기 타겟 환경의 하나 또는 그 이상의 네트워크 기능들에 상기 네트워크 재구성 요구들을 적용하도록 동작가능한 규칙 적용 모듈을 포함할 수 있다.
여기에 기술되는 하나 또는 그 이상의 방법들을 수행하기 위해 머신에 의해 실행가능한 명령들의 프로그램을 저장하는 컴퓨터 판독가능 스토리지 매체가 또한 제공될 수 있다.
여러 가지 실시예들의 구조 및 동작 뿐만 아니라 추가 특징들이 첨부되는 도면들을 참조하여 이하에서 더 상세히 기술될 것이다. 도면들에서, 유사한 참조 부호들은 동일하거나 기능적으로 유사한 엘리먼트들을 나타낸다.
도 1a 및 1b는 본 발명의 일 실시예에서의 방화벽 재구성 개념을 도시한다.
도 2는 본 발명의 일 실시예에서 방화벽 구성 분석에 기초한 방화벽 재구성을 보여주는 흐름도이다.
도 3a 및 3b는 본 발명의 일 실시예에서 마이그레이션들에서 네트워크 및/또는 방화벽 재구성을 수행하는 시스템의 여러 가지 기능적 컴포넌트들을 도시한다.
도 4a 및 4b는 본 발명의 일 실시예에서 예시적인 방화벽 구성을 도시한다.
도 5는 타겟 환경에서 어떻게 웹 서버가 그 소스 환경에서 그것의 IP 어드레스로부터 다른 IP 어드레스로 마이그레이팅될 수 있는지의 일 예를 보여준다.
도 6은 본 발명의 시스템들 및 방법들이 수행 또는 실행될 수 있는 컴퓨터 시스템의 일 예를 보여준다.
네트워크 재구성을 자동적으로 수행하는 방법 및 시스템, 예를 들어, 방화벽 세팅을 재구성하는 파라미터들과 관련된, 마이그레이션 동안 및/또는 마이그레이션 후, 컴포넌트들과 연관된, 방화벽과 같은 네트워크-레벨 파라미터들을 변경(modify)하는 방법 및 시스템이 개시된다. 본 발명의 방화벽 재구성은 또한 마이그레이션을 위한 컴포넌트들과 연관된 방화벽 파라미터들을 세팅할 수 있다. 예를 들어, 만약 상기 타겟 환경이 새로운 데이터 센터라면, 상기 방화벽들은 스크래치(scratch)로부터 구성된다. 일 측면에서, 마이그레이션과 결부된 모든 컴포넌트들을 위한 네트워크 레벨 정보는 자동적으로 발견되고, 방화벽 재구성이 적용되어, 새로운 컴퓨팅 환경으로의 마이그레이션 이전에 마이그레이트된 컴포넌트들이 기능하고 그들의 기능들을 제공하도록 하는 한편, 보안을 위해 그 방화벽들을 통해 불필요하게 개방된 연결들이 최소가 되도록 할 수 있다.
개시되는 시스템 및 방법은 사용자가 정확한 새로운 방화벽 구성들 등을 발견하고 작업하도록 내버려두기 보다는 오히려, 그것들을 설정하도록 자동적으로 제안 또는 심지어 조용히(silently) 세팅할 수 있다. 개시되는 시스템 및 방법은 인간 사용자가 특정 플로우들이 어플리케이션들이 여전히 기능하도록 허용될 필요가 있었다는 것을 간과하거나, 첫 번째 문제를 회피하기 위해 너무 많은 플로우들을 허용하지만 그에 따라 그 타겟 환경이 더 약한 보안성을 갖도록 하게 되는 시나리오를 회피할 수 있다.
도 1a 및 1b는 본 발명의 일 실시예에서의 방화벽 재구성 개념을 도시한다. 도 1a는 전-마이그레이션(pre-migration) 소스 기업 환경을 도시하는데, 여기서는 머신 X1(104) 상에서 실행 중인 웹 서버(102)는 106에서 방화벽에 의해 보호될 수 있고, 머신 X2(110) 상에서 실행 중인 데이터 서버(108)는 112에서 방화벽에 의해 보호될 수 있다. 이 소스 환경에서, 방화벽들(106 및 112)은 클라이언트(114)가 106에서 방화벽을 통해 102에서 웹 서버에 접근할 수 있도록 그리고 102에서 웹 서버가 112에서 방화벽을 통해 108에서 데이터 서버에 접근할 수 있도록 구성된다. 또한 상기 도면은 마이그레이트되지 않거나, 시간 내에 적어도 이 포인트에 있지 않거나 동일한 타겟 환경에 있지 않은 메일 서버(113)를 보여준다. 이는 단지 그 타겟 환경에서 어떻게 그 어플리케이션 구조 또는 네트워크 구조가 변경될 수 있는지에 관한 일 예일 뿐이다.
예를 들어, 두 개의 방화벽들이 CISCOTMPIX 디바이스들이라고 가정하자. 도 4a는 어드레스들 및 소스 방화벽 구성의 일 예를 도시한다. pix106은 106에서 방화벽의 호스트네임이라고 하자. 상기 방화벽은 두 개의 인터페이스들, 즉 dmz 및 outside를 갖는다. dmz 인터페이스(142)(ip 어드레스 = 192.168.1.0)은 더 높은 보안성을 갖는 인터페이스인 반면, outside 인터페이스(140)(ip 어드레스 = 209.165.201.0)는 더 낮은 보안성을 갖는 인터페이스이다. 프라이빗 어드레싱(private addressing)은 dmz 인터페이스 뒤에 위치한 102에서의 웹 서버(ip 어드레스 = 192.168.1.1, 네트워크 어드레스 변환(NAT)-outside = 209.165.201.1)를 위해 사용된다. 상기 dmz 인터페이스가 상기 outside 인터페이스보다 더 높은 보안성을 갖는 인터페이스이므로, 상기 DMZ로부터 인터넷으로 개시되는 어떤 트래픽은 디폴트로 허용될 것이다. 그러나, 가령 (이 서버가 외부(outside)로부터 공격받을 수 있으므로) 인터넷에 대한 접근이 단지 상기 서버가 제공하는 서비스들로부터만 허용되어야 한다고 가정하자. 또한 메일 서버(113) - 이는 마이그레이트되지 않음 - 가 어드레스들(ip 어드레스 = 192.168.1.3, NAT-outside = 209.165.201.3)을 갖는다고 가정하자. 이 경우, 106에서의 방화벽은 다음과 같이 구성될 수 있다(그 구성 파일의 일부임).
Figure 112011036776522-pat00001

상기 예는 두 개의 접근 리스트들을 포함한다. 리스트 INTERNET_TO_DMZ는 인터페이스 outside와 연관되고(마지막 라인 참조) 이 인터페이스에 의해 어떤 트래픽이 들어오도록 허용되는지를 정의한다. 리스트 NO_DMZ_OUT는 인터페이스 dmz와 연관되고(6 라인 참조) 그 인터페이스에 의해 어떤 트래픽이 들어오도록 허용되는지를 정의한다. 클라이언트(114)로부터 웹 서버(102)로의 정상적(normal)이고, 암호화되지 않은 웹 트래픽을 허용하는 라인은 "access-list INTERNET_TO_DMZ permit tcp any 209.165.201.1 eq web"이다. 필드 "access-list INTERNET_TO_DMZ"는 이 규칙이 어떤 접근 리스트에 속하는지를 정의한다. 필드 "permit"는 그것이 트래픽을 (거부하기보다는) 허용하는 규칙이다. 필드 "tcp"는 사용되는 프로토콜을 일컫는다. 그 다음 필드 "any"는 인커밍 트래픽의 소스 IP 어드레스를 일컬으며 이것이 임의의 어드레스(따라서 클라이언트(114)의 특정 주소)일 수 있음을 말해준다. 필드 "209.165.201.1"는 인커밍 트래픽의 타겟 주소를 일컬으며 특히 웹 서버(102)의 외적으로 보이는(outwardly visble) 어드레스를 나타낸다. 마지막 필드 "eq web"은 인커밍 트래픽의 타겟 포트를 일컬으며, 여기서 상징적 표기("web", "80"이 아님)이고, 특히 포트(80)로의 트래픽은 이 규칙에 의해 허용된다.
이 access-list INTERNET_TO_DMZ는 access list NO_DMZ_OUT와 같은 "dehy ip any any" 필드들을 갖는 마지막 규칙을 필요로 하지 않는다. 왜냐하면, 처음의 두 라인들에서의 필드들 "security0" 및 "security100"는 더 높고 더 낮은 보안성의 개념들을 정의하는데, 이는 인터페이스 "outside"에 대해 "deny"의 디폴트를 암시한다. 왜냐하면 상기 트래픽은 더 낮은 네트워크 존으로부터 더 높은 네트워크 존으로 갈 것이기 때문이다.
"nat" 및"global" 를 함께 시작하는 라인들은 네트워크 어드레스 변환 규칙을 정의한다. 이것들은 ID 필드 "1"에 의해 링크된다. 이것들은 209.165.201.1에서 209.165.201.254 범위의 전체 outside가 192.168.1을 시작하는 대응하는 dmz 어드레스들로 트렌스레이트된다. 도 4a는 이들 트렌스레이션들의 두 가지 예들만을 보여준다.
이와 유사하게, pix112를 도 4b에 도시된 바와 같이 112에서의 방화벽의 호스트네임이라고 하자. 상기 방화벽은 두 개의 인터페이스들, dmz 및 inside를 갖는다. dmz 인터페이스(ip 어드레스 = 192.168.1.254)는 더 낮은 보안성을 갖는 인터페이스인 반면, inside(ip 어드레스 = 10.1.1.254)는 더 높은 보안성을 갖는 인터페이스이다. 프라이빗 어드레싱은 상기 inside 인터페이스 뒤에 위치한 108에서의 데이터 서버(ip 어드레스 = 10.1.1.2, NAT-dmz = 192.168.1.2)를 위해 사용된다. 상기 inside 인터페이스가 상기 dmz 인터페이스보다 더 높은 보안성을 갖는 인터페이스이므로, 인터널 네트워크로부터 상기 dmz로 개시된 어떤 트래픽은 디폴트로 허용될 것이다.
111에서의 방화벽은 다음과 같이 구성될 수 있다(구성 파일의 일부임).
Figure 112011036776522-pat00002
Figure 112011036776522-pat00003

여기서, 특히 마지막 access-list 라인은 어떤 어드레스롭루터의 트래픽이 포트 50000 - 이는 이 예에서 데이터베이스 포트인 것으로 가정됨 - 상에서 데이터 서버(어드레스 변환 이전의 어드레스 192.168.1.2)로 허용됨을 나타낸다.
상기 규칙들은 소스 환경(100)에서의 방화벽 규칙들이다.
상기 웹 서버 및 상기 데이터 서버를 새로운 환경 - 여기서는 도 1b에 도시된 타겟 환경으로 언급됨 - 으로 마이그레이팅함에 있어서, 본 발명의 시스템 및 방법은 상기 방화벽 재구성 요구들을 자동적으로 발견하여 그 수요들을 적용할 수 있고, 그리하여 클라이언트(114)가 상기 타겟 환경에서 124에서의 머신 상에서 실행 중인 웹 서버(102)에 접근할 수 있도록 하고 또한 124에서의 머신 상에서 실행 중인 웹 서버(102)가 상기 타겟 환경에서 120에서의 머신 상에서 실행 중인 데이터 서버(108)에 접근할 수 있도록 한다.
일 측면에서, 후-마이그레이션(post-migration) 타겟 환경(199)에서 적절한 변화들을 갖고서 복제될 필요가 있는 전-마이그레이션 소스 환경(100)에서의 방화벽 구성들 및 호스트를 식별하기 위해 자동화된 발견 기술들이 사용될 수 있다. 수행되는 자동화된 분석은 방화벽 구성들을 분석하는 것(예를 들어, 위에서 도시된 것들과 같은 방화벽 구성들을 분석함에 의해), 그리고 예를 들어, netstat과 같은 상태 명령들을 이슈함에 의해 런타임 또는 시스템 상태를 조사함에 의해, 그 소스 환경 호스트에서의 네트워크 상태 정보를 분석하는 것을 포함할 수 있다. 자동화된 분석은 또한 네트워크 흐름 분석, 네트워크 로그 분석, 미들웨어 및 어플리케이션 구성들에서 구성되는 의존성들을 분석하는 것, 그리고 코드 또는 프로그램 등에서 직접적으로 의존성들을 분석하는 것을 포함할 수 있다. 예를 들어, 웹 서버(102) 상에서 실행되는 상기 netstat 명령들의 분석은 192.168.1.1:5678(어플리케이션 포트) 및 192.168.1.2:50000(데이터 서버(108) 상의 DB2 포트) 사이의 연결의 존재를 보여줄 수 있다.
만약 예를 들어, 구성되는 의존성들에서 호스트네임들이 검출된다면, 예를 들어, 웹 서버(102)로부터 데이터 서버(108)로의 연결은 "서버 data.example.com 상의 포트 50000에서 데이터베이스 EXDATA에 대한 호스트 www.example.com 링크들 상의 IHS 서버"와 같은 구성들을 통해 검출된다면, 소스 포트(상기 예에서 5678)는 알려지지 않을 것이다. 왜냐하면 그것은 일반적으로 명시되지 않기 때문이다. 나아가, 각각의 서버는 몇 개의 IP 어드레스들을 가질 수 있다. 이 경우, IP 어드레스들은 이 포인트에서 변환될 필요는 없지만, 단지 적절한 타겟 규칙들을 세팅하기 위해서 이후에 필요하다.
조직적 어려움(organizational difficulties)으로 인해, 상기 소스 환경의 정확한 방화벽 규칙들을 획득하는 것이 늘 가능하지는 않음을 주목하자. 예를 들어, 상기 네트워크 인프라구조는 하나의 조직 내에서 획득될 수 없고, 상기 네트워크 제공자로부터 상세한 방화벽 규칙들을 획득하는 것은 어려울 수 있다. 심지어 방화벽 구성들이 획득될 수 있는 경우에도, 특히 만약 그 네트워크 구조의 변화들로 인해 그 소스 환경에서의 방화벽에 의해 분리되어 있지 않은 타겟 환경에서의 방화벽에 의해 일부 어플리케이션들이 분리된다면,위에서 언급한 바와 같은 추가 데이터 소스들을 분석하는 것이 유용할 수 있다. 예를 들어, 일부 어플리케이션들은 원격 데이터 센터 또는 클라우드(cloud)로 이동될 수 있는 반면, 다른 것들은 그 비즈니스 작업에 더 가까이 남아 있다. 만약 상기 방화벽 규칙들이 "어떤(any)" 필드들을 갖는 넓은 "허용(permit)" 규칙들을 포함한다면, 알려진 방화벽 규칙들 이외에 추가 데이터를 분석하기 위한 또 다른 이유가 있다. 그리고 예를 들어, 이전과 동일한 존(zone)에 더 적은 어플리케이션들이 존재하거나, 심지어 보안성을 증가시키기만 하므로, 어떤 이는 그 타겟 환경에서 더 정확한 규칙들을 원할 수도 있다. 이들 마지막 경우들은 실제로 전문가에 의한 체킹을 필요로 할 수 있다.
도 2는 본 발명의 일 실시예에서의 방화벽 구성 분석에 기초한 방화벽 재구성을 보여주는 흐름도이다. 전형적으로 그것은 발견 단계(201)로부터 시작하는데, 그것의 결과는 소스 방화벽 구성(220) 또는 소스 컴포넌트 연결(222) 둘 다 또는 둘 중 하나, 즉 액티브 또는 구성된 연결들이 된다. 현재의 방법들은 이 단계를 위해, 예를 들어, 방화벽 구성을 획득하기 위해 CISCOTMPIX 방화벽들 상의 "sh conf" 명령들을 이용할 수 있고, IBM®Tivoli®Application Dependency Discovery Manager 및 IBM Research Galapagos tool(Kostas Magoutis, Murthy Devarakonda, Nicolai Joukov, 및 Norbert G. Vogl:Galapagos:분산형 시스템들에서 단대단 어플리케이션-스토리지 관계들의 Model-driven discovery; IBM Journal of Research and Development Vol.52, No4/5, 2008)과 같은 일반적인 발견 툴들을 사용할 수 있다. 단계 202는 마이그레이트되는 컴포넌트들에 적절한 소스 방화벽 규칙들의 세트 R의 식별(identification)과 관련된다.
소스 방화벽 구성이 주어지는 경우, R은 후-마이그레이션 환경으로 마이그레이트되는 적어도 하나의 컴포넌트에 대해 적절한 그것의 규칙들의 서브세트이다. 마이그레이트되는 컴포넌트들은 그 마이그레이션을 위한 배치 계획(placement plan)(224)에서 주어질 수 있다. 위의 예에서, 상기 세트 R은 클라이언트9114)로부터 웹 서버(102)를 통해 데이터 서버(108)로의 요청들이 여전히 단대단 방식으로 수행될 수 있음을 보장하는 규칙들일 뿐만 아니라 이들 서버들로 그리고 이들 서버들로부터 다른 많은 트래픽을 거부하는 규칙일 것이다. 세트 R의 식별은 모든 방화벽 구성 규칙들(즉, 상기 예들에서 "access-list"를 시작하는 라인)을 발견함에 의해 수행되는데, 이 모든 방화벽 구성 규칙들은 하나 또는 그 이상의 마이그레이트된 서버들의 ip 어드레스를 포함한다. 여기서 "포함하다(comprise)"에 의해, 어드레스 범위(즉, 구체적인 어드레스, 어떤 것(any), 또는 192.168.1.*와 같이 와일드카드를 갖는 어드레스) - 이는 그 방화벽의 해당 인터페이스 상에서 평가(evaluate)됨 - 는 이 서버의 어드레스를 포함한다는 것을 의미한다.(예를 들어, 192.168.1.*는 다른 것들 중에서, 192.168.1.0 및 192.168.1.1을 포함한다). 위의 방화벽 pix106의 예에서, 마이그레이션에 적절한 방화벽 구성 규칙들의 서브세트는 굵은 글씨로 강조되어 있다. 방화벽 pix106에 의해 보호되는 메일 서버(smtp 서버)는 마이그레이트되지 않으므로, 대응하는 방화벽 규칙들은 강조되지 않았고 상기 후-마이그레이션 환경에서는 적절하지 않다는 점을 주목하자. 또한 만약 서버가 실제로 주목(listen)하고 있는 어떤 포트들에 관해 그것이 알려져 있다면, 또한 규칙이 이들 포트들 중 적어도 하나를 포함하는지 아닌지를 결정하기 위해 체크가 또한 수행될 수 있다. 이 예에서, 처음의 다섯 라인들은 실제로 마이그레이트되지 않지만(그 새로운 방화벽은 서로 다른 네임, 서로 다른 인터페이스 네임들, 및 서로 다른 IP 어드레스들을 가질 수 있음), 그 다음의 라인들을 인터프리트하기 위해 필요하다.
본 발명의 방법은 또한, 예를 들어, 실제로 발생했거나 구성되는 네트워크 흐름들을 발견할 수 있다. 만약 본 발명의 방법이 방화벽 구성 대신에 그러한 네트워크 흐름들을 발견한다면, 이들 모든 흐름들의 세트는 마이그레이션에 적절한 규칙 세트 R이 된다.
발견 단계(201)는 잠재적으로 마이그레이트될 소스 컴포넌트들을 분석함에 의해 시작할 수 있다. 또한, 일반적으로 모든 방화벽들 및 라우터들 - 이것들을 통해 상기 컴포넌트들 사이의 트래픽이 흐를 수 있음 - 이 발견될 수 있다. 일 측면에서, netstat 및/또는 구성된 의존성 분석으로부터 획득된 정보는 충분할 수 있고, 이 경우, 그 컴포넌트들이 흐를 수 있는 모든 방화벽들 및 라우터들은 발견될 필요가 없다. 예를 들어, 만약 어떤 컴포넌트들이 단지 하나에 의해 이전에(서로 다른 데이터 센터들) 그리고 그 후에 두 개의 방화벽들로 나눠졌다면, 예를 들어, 어느 타겟 방화벽을 위해 어느 컴포넌트들에 대한 정보를 취하기 위해 어느 소스 방화벽들로부터와 같은 정보를 결정하기 위한 추가 발견들이 이뤄질 수 있고, 또는 그 반대일 수 있다.
만약 발견된 컴포넌트들의 서브세트만을 마이그레이트하는 것이 결정된다면(예를 들어, 웨이브 계획(wave plan)이 있고 하나의 웨이브 계획이 현재 마이그레이트되고 있기 때문에), 발견된 연결들은 두 개의 컴포넌트들 중 하나가 실제로 마이그레이트되는 것들로 제한될 수 있다. 요컨대, 웨이브 계획은 관련된 컴포넌트들을 함께 그룹핑하여 그것들이 그 타겟 환경에서 함께 마이그레이트되고 테스트될 수 있도록 하는 것을 일컫는다.
204에서, 배치 계획(placement plan)이 사용된다. 그것은 네임들 또는 어드레스들이 소스 환경(100)으롤부터 타겟 환경(199)으로 변하는지 설명한다. 바꿔 말하면, 상기 배치 계획은 그 컴포넌트들이 타겟 환경에서 어디에 배치될 것인지를 간략히 기술한다. 마이그레이션들에서의 배치 계획들을 유도하기 위해 수동 및 자동화된 메커니즘 둘 다가 사용될 수 있다.
소스 타겟
www.example.com www.newplace.com
data.example.com db.newplace.com
mail.example.com mail.example.com
... ...
배치 계획은 표(표 1에 도시됨), 또는 리스트, 또는 스프레드쉬트, 또는 유사 데이터 구조일 수 있는데, 이것들 각각은 마이그레이트되는 컴포넌트들의 소스 및 타겟 어드레스들을 결정한다. 이와 유사하게, IP 어드레스 변화들, 및/또는 타겟 호스트네임들을 IP 어드레스들로 매핑하기 위한 표가 있을 수 있다. 일부 마이그레이션들에서, 서버 네임들은 변하지 않고 단지 IP 어드레스만 변한다(예를 들어, 표 2에 도시됨). 소스와 타겟 환경 사이의 다른 매핑이 가능하다.
소스 타겟
209.165.201.1 209.165.201.1
209.165.201.3 209.165.201.3
웹 서버(102)의 192.168.1.1 웹 서버(102)의 192.168.2.1
메일 서버(113)의 192.168.1.3 메일 서버(113)의 192.168.1.3
10.1.1.2 10.2.2.2
방화벽 pix112의 192.168.1.2 방화벽 pix124의 192.168.1.2
네트워크 어드레스 변환에 관해, 배치 계획(224)의 기술은 이미 타겟 토폴로지(226)(도 1b에 도시된 예에서)가 알려져 있다고 가정함을 주목하자. "192.168.1.1)을 시작하는 어드레스들은 로컬이고 따라서 소스 및 타겟 환경 둘 모두에서 다수의 장소들에서 동시에 발생할 수 있다. 그러므로 그들이 보유(hold)되는 정확한 서버들에 의해 그것이 명시되며, 그 소스 환경으로부터의 192.168.1.2의 경우 이는 방화벽(112)이며, 이는 네트워크 어드레스 변환을 수행한다.
단계 204는 마이그레이트되는 컴포넌트들에 적절한 소스 방화벽 규칙들의 세트 R을 변환한다. 그 결과의 변환되는 세트는 R'로 일컬어진다. 간단한 예로서, 본 발명은 개별 흐름(즉, 소스 IP 어드레스, 소스 포트, 목적 IP 어드레스, 목적 포트) 또는 그러한 개별 흐름을 허용하는 방화벽 규칙을 사용한다. 세트 R을 세트 R'으로 변환하기 위해, 본 발명의 방법은 상기 배치 표에서 소스 IP를 검색하고; 만약 그것이 거기에서 발생하면, 본 발명의 방법은 그 타겟 환경에서의 대응하는 어드레스에 의해 그것을 대체하고, 그렇지 않으면 본 발명의 방법은 그것을 변하지 않는 상태로 내버려 둔다. 이와 유사하게, 본 발명의 방법은 상기 배치 표에서 목적 IP 어드레스를 참조하고; 만약 그것이 거기에서 발생하면, 본 발명의 방법은 그 타겟 환경에서 대응하는 어드레스에 의해 그것을 대체하고, 그렇지 않으면 본 발명의 방법은 그것을 변하지 않는 상태로 내버려 둔다.
예를 들어, 도 5는 어떻게 소스 환경에서 그것의 IP 어드레스(예를 들어, ip 어드레스 = 192.168.1.1, NAT-outside = 209.165.201.1)로부터 그 타겟 환경에서의 다른 IP 어드레스(예를 들어, ip 어드레스 = 192.168.2.1, NAT-outside = 209.165.201.1)로 마이그레이트될 수 있는지를 보여준다. 이 예에서, 이 서버의 외부적으로 보이는(externally visible) 어드레스들은 변하지 않는 후-마이그레이션이고, 그래서 클라이언트가 동일 IP에서 그 웹 서버와 계속해서 컨택할 수 있도록 한다. 이는 본 발명에서 개시되는 접근법이 유효하도록 하는 필수적인 조건은 아님을 주목하자. 즉, 상기 외부적으로 보이는 어드레스는 후-마이그레이션을 변화시킬 수 있다. 이러한 경우들에 있어서, 예를 들어, 권한있는(authoritative) DNS 서버들은 상기 메일 서버의 호스트 네임을 위해 정확하게 외부적으로 보이는 IP 어드레스로 갱신된다. 클라이언트와 웹 서버를 분리시키는 방화벽(126)은 다음과 같은 구성 규칙들을 가질 수 있다.
Figure 112011036776522-pat00004
Figure 112011036776522-pat00005

이와 유사하게, 도 1b를 참조하면, 데이터 서버(108)는 그 소스 환경에서의 IP 어드레스(ip 어드레스 = 10.1.1.2, NAT-dmz = 192.168.1.2)로부터 그 타겟 환경에서의 다른 IP 어드레스(말하자면, ip 어드레스 = 10.1.3.2, NAT-dmz = 192.168.2.2)으로 마이그레이트될 수 있다고 가정한다. 웹 서버와 데이터 서버를 분리시키는 방화벽(122)은 다음과 같은 구성 규칙들을 가질 수 있다.
Figure 112011036776522-pat00006

만약 다수의 연결들을 허용하는 방화벽 규칙이 있다면, 마이그레이트되는 것은 나눠진다. 만약 하나 또는 그 이상의 연결들을 분명하게 금지하는 방화벽 규칙이 있다면, 마이그레이트되는 것은 나눠진다. 순서는 대부분의 방화벽 구성 규칙 언어들에 있어서, 예를 들어, 이 예에서 방화벽 pix106, 규칙 "access_list NO_DMZ_OUT deny ip any any"에서 중요한 역할을 하는데, 이는 모든 트래픽을 금지시키는 것처럼 보이고, 만약 더 빠른 규칙들 중 어떤 것도 적용되지 않는 경우에만 도달될 수 있으며, 일부 트래픽을 허용한다. 그러므로 R 및 R' 둘 다는 실제로 규칙 리스트들(순서화된)이지, 엄격히 수학적 의미에서의 세트들(비순서화됨)이 아니다. 더욱이, 만약 상기 방화벽 구성 규칙 언어가 이 예들에서 보안성 레벨들에 의한 각각의 접근 그룹을 위해 유도된 "허용(permit)" 또는 "거부(deny)" 중 어느 하나의 값과 같은 것을 정의한다면, 전체 디폴트 값이 유지될 필요가 있다.
도 2를 다시 참조하면, 타겟 토폴로지(226)는 그 타겟 환경에서의 컴포넌트들이 어떻게 연결될 것인지, 그리고 특히 그 타겟 환경에서 어디에 방화벽들이 있을 지를 기술한다.
206에서, 변환된 규칙 리스트 R'은 타겟 환경에서 방화벽(도 1b의 126)은 장래 구성 내에 삽입된다. 전체 소스 환경의 서로 다른 영역들로부터의 컴포넌트들은 그 타겟 환경의 동일한 네트워크 존들 내에 마이그레이트될 수 있으므로, 이는 몇 개의 규칙 세트들의 조합을 필요로 할 수 있다. 규칙 세트들의 조합은 하나의 새로운 규칙을 그 포인트에 대해 셋업된 기존의 전체 규칙과 항상 조합함에 의해 구현될 수 있다.
몇몇의 방화벽 언어들은 병합 오퍼레이터(merge operator)를 단순히 가질 수 있는데, 이 병합 오퍼레이터는 규칙들을 병합하기 위해 사용될 수 있다. 그렇지 않으면, 규칙 세트들의 시작(beginning)으로부터의 모든 개별 "허용(permit)" 규칙들이 유지될 수 있고, 이어서 모든 브로더(broader), 더 낮은 우선순위의 "거부(deny)" 규칙들이 뒤따른다. 그런 다음 대응하는 변환된 세트(R')는 또한 동일한 형태를 갖는다. 방화벽 구성들을 마이그레이트되는 컴포넌트들로 제한함에 의해 유도된 많은 규칙 세트들(R)은 또한 이 형태를 가질 것이다. 또한 다르게는, 만약 특정 컴포넌트들에 대해 구체적인 개시 "거부(deny)" 규칙들이 있다면, 그것들이 우세(prevail)하게 되도록, 즉, 다른 세트들로부터 "허용(permit)" 규칙들의 전면에 그것들을 보유되도록 할 수 있다.
일 측면에서, 특히, 만약 위에서 열거된 시나리오들 중 어떤 것도 적용되지 않는다면, 충돌들(conflicts)은 수동으로 해결될 수 있다. 예를 들어, 만약 방화벽(126)이 인커밍 http 트래픽을 금지하는 분명한 규칙을 갖는다면, 재조정은 수동으로 수행될 수 있다. 예를 들어, 방화벽(도 1b의 126)에 의해 보호되는 존이 마이크레이트될 웹 서버(102)를 위한 우측 존이 될지에 관한 결정이 이뤄진다. 만약 그 답이 예(yes)라면, 충돌하는 규칙(예, 인커밍 http 트래픽을 금지하는 것)은 그 존에 이미 존재하는 다른 서버들로 제한되어야 한다(이는 그 규칙을 모두 제거하는 것보다 더 나은 옵션이다. 왜냐하면, 다른 서버들은 여전히 이전과 유사한 보호를 가질 것이기 때문이다).
더욱이, 상기 소스 환경에서의 방화벽 규칙들은 선택적으로 변경될 수 있다. 왜냐하면, 예를 들어, 일단 특정 컴포넌트들이 옮겨(move out), 그들의 상호작용을 허용하기 위한 규칙들에 대한 요구가 더 이상 없기 때문이다. 이는 그것들이 단지 컴포넌트들인 새로운 환경 내에 남아 있는 컴포넌트의 마이그레이션과 같고, 따라서 위의 단계들은 이 상황에 대해 또한 직접적으로 적용될 수 있다. 208에서, 새로운 규칙 세트들(R')은 상기 새로운 방화벽들에 적용된다.
방화벽 재구성에 추가로, 도메인 네임 서버들, 보더 게이트웨이들(border gateways), 및 라우터들과 같은 네트워킹 디바이스들은 이전과 같이 모든 어플리케이션들이 작동하도록 보장하기 위해 갱신될 필요가 있다. 예를 들어, 클라이언트(114)의 장래 요구들이 여전히 현재 물리적 머신(124) 상에서, 웹 서버(102)에 이르도록 보장하기 위해, 현재 여전히 클라이언트(114)가 사용하는 아웃사이드 어드레스(209.165.201.1)는 방화벽 pix126으로 라우트되어야 한다.
도 3a 및 3b는 본 발명의 일 실시예의 마이그레이션들에서의 방화벽 재구성들을 수행하는 시스템을위한 기능적 컴포넌트들을 도시하는 구조도이다. 도 3a 및 3b에 도시된 모듈들은 컴퓨터 시스템의 컴포넌트들일 수 있는데, 이들은 예를 들어, 운영 체제 및 서버 어플리케이션 세트를 실행시키는 프로그램 코드를 로드하고 실행시킬 수 있는 어떤 컴퓨팅 노드를 포함할 수 있다. 시스템 로직은 원격 소스로부터(예, 네트워크 파일 시스템으로부터) 로드되는 컴퓨터 실행가능 코드, 로컬 영구 광 디바이스(CD-ROM), 자기 스토리지(예, 디스크), 또는 CPU(314)에 의해 실행하기 위한 메모리(304) 내의 스토리지(316)로 구현될 수 있다. 네트워크 인터페이스(318)는 다른 네트워크 접근가능 서비스들로 통신하기 위해 사용될 수 있다. 이러한 인터페이스(318)는 하드웨어 디바이스, 예를 들어, 동축 케이블을 통한 이더넷, 무선 IP, IP 상의 전화(VoIP), 또는 기타의 하드웨어 디바이스를 포함할 수 있으나, 이러한 예들로 한정되는 것은 아니다. 메모리(304)는 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 및 어플리케이션 인터페이스들 - 이는 복잡한 제품들로부터의 부분 제거의 분석에 효과적인 로직 또는 기능적 컴포넌트들을 제공함 - 을 포함할 수 있다.
도 3a 및 3b는 컴퓨터 시스템에 상주하는 기능적 컴포넌트들을 예시하지만, 본 발명의 시스템 및 방법은 단지 그러한 구성들로 한정되는 것은 아님을 이해해야 할 것이다. 따라서, 상기 컴포넌트들은 분산된 환경에서 서로 다른 플랫폼 상에서 네트워크를 통해 분포될 수 있고, 및/또는 클라우드 컴퓨팅 환경으로 구성될 수도 있다. 나아가, 도 3a 및 3b는 CPU(314)를 도시하고 있으나, 상기 시스템은 다수의 프로세서들 및/또는 코어들을 포함할 수도 있다.
방화벽 규칙 발견 모듈(302)은 소스 환경 및 타겟 환경의 네트워크-레벨 속성들을 식별한다. 예를 들어, 소스 환경 및 타겟 환경의 방화벽 구성 파일들은 분석될 수 있다. 나아가, 네트워크 액티비티들은, 예를 들어, 실시간으로, 및/또는 로그 파일들을 분석함에 의해 분석될 수 있다. 이러한 구성 파일들은, 예를 들어, 네트워크(318)를 통해 전-마이그레이션 소스 환경(100)으로부터 검색(retrieve)될 수 있다. 규칙 선택 모듈(304)은, 예를 들어, 연관된 방화벽 구성들을 갖는 마이그레이트되는 컴포넌트들에 적용되는, 하나 또는 그 이상의 방화벽 구성 파일들에서 방화벽 규칙들을 선택한다. 규칙 변환 모듈(306)은 그 선택된 방화벽 규칙들을 그 타겟 환경 방화벽 규칙들로 변환한다. 규칙 조합 모듈(308)은, 만약 필요하다면, 마이그레이트되는 컴포넌트들을 위해 기존의 타겟 환경 방화벽 규칙들을 그 변환된 방화벽 규칙들과 조합한다. 규칙 적용 모듈은, 예를 들어, 후-마이그레이션 타겟 환경(199)에서 그 타겟 환경의 방화벽 구성 파일들을 변경함에 의해, 그 타겟 환경에 변환되고 조합된 규칙들을 적용한다(만약 적용가능하다면).
도 3b를 참조하면, 의존성 발견 모듈(303)은 마이그레이트되는 컴포넌트들 및 추가 컴포넌트들 - 이것들은 예를 들어, 전-마이그레이션 소스 환경(100)을 분석함에 의해, 마이그레이트되는 그러한 컴포넌트들에 의해 영향을 받고 및/또는 그들과 상호작용함 - 을 식별할 수 있다. 규칙 정의 모듈(305)은 마이그레이트되는 컴포넌트들 및 연관된 의존적인 컴포넌트들이 그 타겟 환경에서 네트워크를 통해 상호작용하도록 허용할 규칙들을 정의한다. 규칙 조합 모듈(308)은, 만약 필요하다면, 규칙 정의 모듈(305)에서 정의된 규칙들을 기존의 타겟 환경 방화벽과 조합한다. 규칙 어플리케이션 모듈은 그 조합된 규칙들(만약 적용가능하다면)을, 예를 들어, 네트워크, 방화벽과 같은 구성 파일들, 또는 기타 구성 파일들을 변경함에 의해, 후-마이그레이션 타겟 환경(199)에 적용한다.
당해 기술 분야에서 숙련된 자라면 알 수 있는 바와 같이, 본 발명의 측면들은 시스템, 방법 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명의 측면들은 전적으로 하드웨어 실시예의 형태를 취할 수도 있고, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함함)를 취할 수도 있고, 또는 소프트웨어와 하드웨어 측면들을 조합하는 실시예 - 이것들은 여기서는 모두 "회로", "모듈" 또는 "시스템"으로 일컬어질 수 있음 - 의 형태를 취할 수도 있다. 더욱이, 본 발명의 측면들은 하나 또는 그 이상의 컴퓨터 판독가능 매체(들) - 이것들은 그 상에 구현된 컴퓨터 판독가능 프로그램 코드를 가짐 - 에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터 판독가능 매체(들)의 어떤 조합이든지 이용될 수 있다. 상기 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 스토리지 매체일 수 있다. 컴퓨터 판독가능 스토리지 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 이것들의 적절한 조합일 수 있으나, 이러한 예들로 한정되는 것은 아니다. 컴퓨터 판독가능 스토리지 매체의 더 구체적인 예들(모든 예들을 총 망라하는 것은 아님)은 다음의 것, 즉 하나 또는 그 이상의 와이어들을 갖는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM, ROM, 소거가능 프로그램형 ROM(EPROM 또는 플래쉬 메모리), 광 섬유, 휴대용 컴팩트 디스크 ROM(CD-ROM), 광 스토리지 디바이스, 자기 스토리지 디바이스, 또는 이것들의 적절한 조합일 수 있다. 본 문서의 맥락에서, 컴퓨터 판독가능 스토리지 매체는, 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한 또는 명령 실행 시스템, 장치, 또는 디바이스와 함께 사용하기 위한 프로그램을 포함, 또는 저장할 수 있는 실체적인 매체일 수 있다.
컴퓨터 판독가능 신호 매체는 그 내부에 예를 들어 기저대역으로 또는 반송파의 일부로서 구현되는 컴퓨터 판독가능 프로그램 코드를 갖는 전파되는 데이터 신호를 포함할 수 있다. 이러한 전파되는 신호는, 전자기, 광학, 또는 이것들의 적절한 조합을 포함하여, 여러 가지 형태들을 취할 수 있다. 컴퓨터 판독가능 신호 매체는 컴퓨터 판독가능 스토리지 매체는 아니며 또한 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한, 또는 명령 실행 시스템, 장치, 또는 디바이스와 함게 사용하기 위한 프로그램을 전달, 전파, 또는 전송할 수 있는 컴퓨터 판독가능 매체일 수 있다.
컴퓨터 판독가능 매체 상에 구현되는 프로그램 코드는, 무선, 유선, 광섬유 케이블, RF 등, 또는 이것들의 적절한 조합을 포함하는, 적절한 매체를 사용하여 전송될 수 있다.
본 발명의 측면들을 위한 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 하나 또는 그 이상의 프로그래밍 언어들의 조합으로 작성될 수 있는데, 이러한 프로그래밍 언어의 예들에는, 자바, 스몰토크, C++ 등과 같은 객체 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어 또는 유사 프로그래밍 언어와 같은 전통적인 절차 프로그래밍 언어들, Perl VBS 또는 유사 언어들과 같은 스크립팅 언어, Lisp 및 ML과 같은 기능적 언어들, 및 Prolog와 같은 로직 지향 언어들이 포함되나, 이러한 예들로 한정되는 것은 아니다. 상기 프로그램 코드는 독립형 소프트웨어 패키지로서, 사용자의 컴퓨터 상에서 전적으로, 사용자의 컴퓨터 상에서 부분적으로, 사용자의 컴퓨터 상에서 부분적으로 그리고 원격 컴퓨터 상에서 부분적으로 또는 원격 컴퓨터 또는 서버 상에서 전적으로 실행될 수 있다. 후자의 시나리오에서, 상기 원격 컴퓨터는, LAN, 또는 WAN을 포함하는 네트워크의 어떤 유형을 통해 사용자의 컴퓨터에 연결될 수 있으며, 또는 그 연결은 외부 컴퓨터(예를 들어, 인터넷 서비스 제공자를 사용하여 인터넷을 통해)에 대해 이뤄질 수 있다.
본 발명의 측면들은 이하에서 본 발명에 따른 방법들, 장치들(시스템들) 및 컴퓨터 프로그램 제품들에 관한 흐름도들 및/또는 블록도들을 참조하여 기술된다. 흐름도들 및/또는 블록도들의 각각의 블록, 및 흐름도들 및/또는 블록도들의 블록들의 조합들은 컴퓨터 프로그램 명령들에 의해 구현될 수 있음을 이해해야 할 것이다. 이들 컴퓨터 프로그램 명령들은 범용 컴퓨터, 전용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서로 제공되어 머신을 만들어 낼 수 있다. 그리하여 그 명령들이 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치들을 통해 실행되는 경우 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/작용들을 구현하기 위한 수단을 생성하도록 한다.
이들 컴퓨터 프로그램 명령들은 또한 컴퓨터 판독가능 매체에 저장될 수 있는데, 상기 컴퓨터 판독가능 매체는 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 기타 디바이스들이 특정 방식으로 기능하도록 지시하여, 그 컴퓨터 판독가능 매체에 저장된 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능/작용을 구현하는 명령들을 포함하는 제조 물품을 만들어내도록 한다.
상기 컴퓨터 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 기타 디바이스들 상에 로드되어 일련의 동작 단계들이 상기 컴퓨터, 기타 프로그램가능 장치 또는 기타 디바이스들 상에서 수행되도록 하여, 컴퓨터로 구현된 프로세스를 만들어내도록 한다. 그리하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 장치 상에서 실행되는 경우 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/작용들을 구현하기 위한 프로세스들을 제공하도록 한다.
도면들 내의 흐름도 및 블록도들은 본 발명의 여러 가지 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍쳐, 기능 및 동작을 예시한다. 여기서 흐름도 또는 블록도들 내의 각각의 블록은 모듈, 세그먼트, 또는 코드의 일부분을 나타낼 수 있고, 이는 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행가능한 명령들을 포함한다. 또한 일부 달느 구현들에서, 블록에 나타낸 기능들은 도면들에 나타낸 그 순서를 벗어나서 발생할 수도 있음을 주목해야 한다. 예를 들어, 연속해서 도시된 두 개의 블록들은, 사실상 실질적으로 동시에 일어날 수도 있고, 또는 그 블록들은 때로는, 그것과 결부된 기능에 의존하여 역순으로 실행될 수도 있다. 또한 블록도들 및/또는 흐름도의 각각의 블록, 및 블록도들 및/또는 흐름도의 블록들의 조합들은 전용 하드웨어 기반의 시스템들에 의해 구현될 수 있는데, 상기 전용 하드웨어 기반의 시스템들은 전용 하드웨어 및 컴퓨터 명령들의 특정 기능들 또는 작용들 또는 조합들을 수행한다.
이제 도 6을 참조하면, 본 발명의 시스템들 및 방법들은 처리 유닛(2)을 포함하는 컴퓨터 시스템에서 수행 또는 실행될 수 있는데, 이 처리 유닛(2)은 하나 또는 그 이상의 프로세서들 및/또는 코어들, 메모리 및 기타 시스템 컴포넌트들(도면들에서는 구체적으로 도시되지 않음)을 수용하는데, 이는 컴퓨터 처리 시스템, 또는 컴퓨터 프로그램 제품을 실행할 수 있는 컴퓨터를 구현한다. 상기 컴퓨터 프로그램 제품은, 매체, 예를 들어, 하드 디스크, 컴팩트 디스크와 같은 컴팩트 스토리지 매체, 또는 기타 스토리지 디바이스들을 포함할 수 있는데, 상기 매체는 실행을 위해 처리 시스템으로 상기 컴퓨터 프로그램 제품을 제공하기 위해 당해 기술 분야에서 숙련된 자들에게 알려져 있거나 알려질 기술들에 의해 처리 유닛(2)에 의해 읽혀질 수 있다.
상기 컴퓨터 프로그램 제품은 여기에 기술되는 방법의 구현을 가능하게 하는 모든 특징들 각각을 포함할 수 있는데, 이는 컴퓨터 시스템에 로드되는 경우 상기 방법들 수행할 수 있다. 본 문서의 맥락에서 컴퓨터 프로그램, 소프트웨어 프로그램, 프로그램, 또는 소프트웨어는, 정보 처리 기능을 갖는 시스템으로 하여금, 직접적으로, 또는 (a) 또 다른 언어, 코드 또는 표기법으로의 변환, 및/또는 (b) 다른 유형적 형태로의 재생산, 둘 다 또는 그 중 하나의 이후에 특정 기능을 수행하도록 의도된 명령들의 세트의 어떤 언어, 코드 또는 표기법으로 된 어떤 표현을 의미한다.
본 발명의 시스템 및 방법을 수행하는 컴퓨터 처리 시스템은 또한 출력 디스플레이들을 제공하고 디스플레이를 제공하기 위한 모니터 또는 디스플레이 스크린(4)과 같은 디스플레이를 포함할 수 있는데, 이 디스플레이를 통해 사용자는, 예를 들어, 키보드(6) 및 마우스 디바이스(8) 또는 포인팅 디바이스와 같은 입력 디바이스들과 협력하여 그 처리 시스템과 상호작용하고 데이터를 입력할 수 있다. 상기 컴퓨터 처리 시스템은 또한 직접적으로 또는 원격 연결들을 통해, 프린터(10), 스캐너(미도시), 스피커, 및 다른 어떤 디바이스들과 같은 하나 또는 그 이상의 주변 디바이스들에 연결 또는 결합될 수 있다. 상기 컴퓨터 처리 시스템은 서버(10), 다른 원격 컴퓨터 처리 시스템(14), 네트워크 스토리지 디바이스들(12)과 같은 하나 또는 그 이상의 다른 처리 시스템들에 대해, 로컬 이더넷, WAN 연결, 인터넷 등을 통해, 또는 그들 간에 서로 통신하도록 하고 서로 다른 컴퓨팅 시스템들에 연결하는 기타 네트워킹 방법들을 통해, 연결 또는 결합될 수 있다. 본 발명의 시스템ㄷ르 및 방법들의 여러 가지 기능들 및 모듈들은 서로 다른 처리 시스템들(예, 2, 14, 16) 상에서 분산되어서 구현 또는 수행될 수 있고, 또는 그 네트워크 상에서 분산되어서, 또는 로컬로 저장되어 데이터에 접근하는 단일 플랫폼 상에서 구현 또는 수행될 수 있다.
여기에 사용되는 용어는 단지 특정 실시예들을 기술하려는 의도로 사용된 것이지 본 발명의 범위를 한정하려는 의도로 사용된 것은 아니다. 여기서 사용되는 바와 같이, 단수 형태인 "하나", "일", "한" 등은 그 맥락에서 분명히 다르게 표시되지 않는다면 복수 형태도 또한 포함하는 것으로 의도된다. "포함하다" 및/또는 "포함하는" 이라는 용어들은 본 명세서에서 사용되는 경우, 언급되는 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이것의 그룹들의 존재 또는 부가를 배제하는 것은 아니다.
이하의 청구항들에서, 만약 있다면, 모든 수단 또는 단계 플러스 기능 엘리먼트들의 대응하는 구조들, 재료들, 작용들, 및 균등물들은 구체적으로 청구되는 다른 청구되는 엘리먼트들과 함께 그 기능을 수행하기 위한 구조, 재로, 또는 작용을 포함하는 것으로 의도된다. 본 발명에 관한 기술은 예시 및 설명의 목적으로 제시된 것이지 그 예시된 형태대로 본 발명을 한정하려하거나 모든 실시예를 총 망라하려는 의도는 아니다. 본 발명의 범위 및 사상을 벗어나지 않고서 당해 기술 분야에서 통상의 기술을 가진 자들에게는, 많은 변형 및 변경 예들이 있을 수 있음은 자명할 것이다. 상기 실시예는 발명의 원리들 및 실제 어플리케이션을 가장 잘 설명하기 위해, 그리고 당해 기술 분야에서 통상의 기술을 가진 자들이 그 고려되는 특정 사용에 맞게 여러 가지 변형 예들을 갖는 다양한 실시예들에 대해 본 발명을 이해할 수 있도록 하기 위해, 선택되었다.
본 발명의 여러 가지 측면들은 컴퓨터 또는 머신 사용가능 또는 판독가능 매체에서 구현되는 프로그램, 소프트웨어, 또는 컴퓨터 명령들로 구현될 수 있는데, 이것들 각각은 상기 컴퓨터 또는 머신이 상기 컴퓨터, 프로세서, 및/또는 머신 상에 실행되는 경우 방법의 단계들을 수행하도록 한다. 본 발명에 기술되는 여러 가지 기능들 및 방법들을 수행하기 위해, 머신에 의해 실행가능한 명령들의 프로그램을 실체적으로 구현하는, 머신에 의해 판독가능한 프로그램 스토리지 디바이스가 또한 제공된다.
본 발명의 시스템 및 방법은 범용 컴퓨터 또는 전용 컴퓨터 시스템 상에서 구현 및 실행될 수 있다. 상기 컴퓨터 시스템은 알려지거나 알려질 시스템들의 유형일 수도 있고, 또한 전형적으로 프로세서, 메모리 디바이스, 스토리지 디바이스, 입력/출력 디바이스들, 내부 버스들, 및/또는 통신 하드웨어 및 소프트웨어 등과 함께 기타 컴퓨터 시스템들과 통신하는 통신 인터페이스들을 포함할 수 있다.
"컴퓨터 시스템" 및 "컴퓨터 네트워크" 라는 용어들은 본 명세서에서 사용될 수 있는데, 이것들은 픽스 및/또는 휴대용 컴퓨터 하드웨어, 소프트웨어, 주변기기들, 및 스토리지 디바이스들의 여러 가지 조합들을 포함할 수도 있다. 상기 컴퓨터 시스템은 복수의 개별 컴포넌트들을 포함할 수 있는데, 상기 개별 컴포넌트들은 네트워킹되거나 또 다르게 링크되어 서로 협력하여 작업을 수행하거나, 하나 또는 그 이상의 독립형 컴포넌트들을 포함할 수 있다. 본 명세서의 컴퓨터 시스템의 하드웨어 및 소프트웨어 컴포넌트들은 데스크탑, 랩탑, 서버와 같은 픽스된 디바이스들 및 휴대용 디바이스들을 포함하고 또한 그들 내에 포함될 수도 있다. 모듈은 디바이스, 소프트웨어, 프로그램, 또는 시스템의 컴포넌트일 수 있는데, 이것들 각각은 어떤 "기능"을 구현하며, 이는 소프트웨어, 하드웨어, 펌웨어, 전기 회로 등으로 구현될 수 있다.
위에서 기술된 실시예들은 예들이다. 따라서 본 발명이 이들 특정 실시예들로 한정되도록 해석되어서는 아니될 것이다. 따라서, 첨부되는 청구항들에 정의되는 본 발명의 사상 또는 범위를 벗어남이 없이 여러 가지 변경 및 변형 예들이 이루어질 수 있음은 당해 기술 분야에서 숙련된 자들에게 자명하다 할 것이다.

Claims (25)

  1. 마이그레이션들(migrations)에서 네트워크 재구성(network reconfiguration)을 자동화하는 방법에 있어서, 상기 방법은:
    소스 환경(souce environment)과 연관되는 하나 또는 그 이상의 네트워크-레벨 속성들(network-level attributes) 그리고 하나 또는 그 이상의 컴포넌트들(components)이 상기 소스 환경으로부터 마이그레이트되는 타겟 환경(target environment)과 연관되는 하나 또는 그 이상의 네트워크-레벨 속성들에 기초하여, 상기 타겟 환경의 하나 또는 그 이상의 네트워크 기능들(network functionalities)에서의 네트워크 재구성 요구들(network reconfiguration needs)을, 프로세서를 사용하여, 결정하는 단계(determining);
    상기 네트워크 재구성 요구들을 상기 타겟 환경에서의 하나 또는 그 이상의 네트워크 기능들에 적용하는 단계(applying); 및
    마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들의 소스 환경과 연관된 하나 또는 그 이상의 네트워크-레벨 속성들을 자동적으로 발견하는 단계(automatically discovering)를 포함하고,
    상기 타겟환경은 하나 또는 그 이상의 물리적 서버들을 포함하며,
    상기 소스환경은 마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들을 포함하는 하나 또는 그 이상의 물리적 서버들을 포함하고,
    상기 소스 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들은 변환되며(translated),
    상기 타겟 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들은 상기 소스 환경과 연관되는 변환된 하나 또는 그 이상의 네트워크-레벨 속성들을 상기 타겟 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들에 머지함에 의해서(by merging) 변경되고(modified),
    상기 네트워크 재구성 요구들을 결정하는 단계는:
    마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들과 관련된 소스 환경의 네트워크 구성에서 하나 또는 그 이상의 규칙들(rules)을 식별하는 단계(identifying);
    타겟 환경의 네트워크 구성을 포함시키기 위해 상기 하나 또는 그 이상의 규칙들을 변환하는 단계(translating); 및
    상기 타겟 환경에 상기 변환된 하나 또는 그 이상의 규칙들을 적용하는 단계(applying)를 포함하는,
    방법.
  2. 삭제
  3. 청구항 1에 있어서, 상기 소스 환경과 연관된 하나 또는 그 이상의 네트워크-레벨 속성들을 발견하는 단계(discovering)는:
    상기 소스 환경과 연관된 방화벽 구성 파일들의 분석을 수행하는 단계(performing); 또는
    상기 소스 환경에서 런-타임 네트워크 흐름을 관찰하는 단계(observing); 또는
    상기 소스 환경 상에서 실행 중인 하나 또는 그 이상의 서버들에서 구성된 의존성들(dependencies)을 분석하는 단계(analyzing); 또는
    방화벽 로그 파일들을 분석하는 단계(analyzing); 중 하나 또는 그 이상, 또는
    이 단계들의 조합들을 포함하는,
    방법.
  4. 청구항 1에 있어서, 상기 네트워크 재구성 요구들은 방화벽 재구성 요구들(firewall reconfiguration needs)을 포함하는,
    방법.
  5. 삭제
  6. 청구항 1에 있어서, 상기 소스 환경의 네트워크 구성은 소스 환경의 방화벽 구성을 포함하고, 상기 타겟 환경의 네트워크 구성은 타겟 환경의 방화벽 구성을 포함하되,
    상기 적용하는 단계는 상기 타겟 환경의 방화벽 인터페이스를 변경하는 단계(modifying)를 포함하는,
    방법.
  7. 삭제
  8. 삭제
  9. 청구항 1에 있어서, 상기 네트워크 재구성 요구들을 적용하는 단계는, 상기 타겟 환경의 네트워크 구성 파일들에서 변화들(changes)을 만드는 단계(making)를 포함하는,
    방법.
  10. 청구항 1에 있어서, 상기 방법은
    동적 DNS에서 변화들(changes)을 만드는 단계(making)를 더 포함하는,
    방법.
  11. 마이그레이션들(migrations)에서의 네트워크 재구성(network reconfiguration)을 자동화하는 방법을 수행하기 위해 머신에 의해 실행 가능한 명령들의 프로그램을 저장하는 비-일시적인(non-trnasitory) 컴퓨터 판독가능 스토리지 매체에 있어서, 상기 방법은:
    소스 환경(souce environment)과 연관되는 하나 또는 그 이상의 네트워크-레벨 속성들(network-level attributes) 그리고 하나 또는 그 이상의 컴포넌트들(components)이 상기 소스 환경으로부터 마이그레이트되는 타겟 환경(target environment)과 연관되는 하나 또는 그 이상의 네트워크-레벨 속성들에 기초하여, 상기 타겟 환경의 하나 또는 그 이상의 네트워크 기능들(network functionalities)에서의 네트워크 재구성 요구들(network reconfiguration needs)을 결정하는 단계(determining);
    상기 네트워크 재구성 요구들을 상기 타겟 환경에서의 하나 또는 그 이상의 네트워크 기능들에 적용하는 단계(applying); 및
    마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들의 소스 환경과 연관된 하나 또는 그 이상의 네트워크-레벨 속성들을 자동적으로 발견하는 단계(automatically discovering)를 포함하고,
    상기 타겟환경은 하나 또는 그 이상의 물리적 서버들을 포함하며,
    상기 소스환경은 마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들을 포함하는 하나 또는 그 이상의 물리적 서버들을 포함하고,
    상기 소스 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들은 변환되며(translated),
    상기 타겟 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들은 상기 소스 환경과 연관되는 변환된 하나 또는 그 이상의 네트워크-레벨 속성들을 상기 타겟 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들에 머지함에 의해서(by merging) 변경되고(modified),
    상기 네트워크 재구성 요구들을 결정하는 단계는:
    마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들과 관련된 소스 환경의 네트워크 구성에서 하나 또는 그 이상의 규칙들(rules)을 식별하는 단계(identifying);
    타겟 환경의 네트워크 구성을 포함시키기 위해 상기 하나 또는 그 이상의 규칙들을 변환하는 단계(translating); 및
    상기 타겟 환경에 상기 변환된 하나 또는 그 이상의 규칙들을 적용하는 단계(applying)를 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 마이그레이션들(migrations)에서의 네트워크 재구성(network reconfiguration)을 위한 시스템에 있어서,
    컴퓨터 프로세서;
    소스 환경(souce environment)과 연관되는 하나 또는 그 이상의 네트워크-레벨 속성들(network-level attributes) 그리고 하나 또는 그 이상의 컴포넌트들(components)이 상기 소스 환경으로부터 마이그레이트되는 타겟 환경(target environment)과 연관되는 하나 또는 그 이상의 네트워크-레벨 속성들에 기초하여, 상기 타겟 환경의 하나 또는 그 이상의 네트워크 기능들(network functionalities)에서의 네트워크 재구성 요구들(network reconfiguration needs)을, 상기 컴퓨터 프로세서 상에서 실행하고, 결정하도록 동작 가능한 모듈(module operable to determine);
    상기 네트워크 재구성 요구들을 상기 타겟 환경에서의 하나 또는 그 이상의 네트워크 기능들에 적용하도록 동작 가능한 규칙 적용 모듈(rule application module operable to apply); 및
    소스 환경과 연관된 상기 하나 또는 그 이상의 네트워크-레벨 속성들을 발견하도록 동작 가능한 발견 모듈(discovery module operable to discover)을 포함하고,
    상기 타겟환경은 하나 또는 그 이상의 물리적 서버들을 포함하며,
    상기 소스환경은 마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들을 포함하는 하나 또는 그 이상의 물리적 서버들을 포함하고,
    상기 소스 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들은 변환되며(translated),
    상기 타겟 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들은 상기 소스 환경과 연관되는 변환된 하나 또는 그 이상의 네트워크-레벨 속성들을 상기 타겟 환경과 연관되는 상기 하나 또는 그 이상의 네트워크-레벨 속성들에 머지함에 의해서(by merging) 변경되고(modified),
    상기 네트워크 재구성 요구들을 결정하도록 동작 가능한 모듈은:
    마이그레이트되는 상기 하나 또는 그 이상의 컴포넌트들과 관련된 소스 환경의 네트워크 구성에서 하나 또는 그 이상의 규칙들(rules)을 식별하는(identify) 동작;
    타겟 환경의 네트워크 구성을 포함시키기 위해 상기 하나 또는 그 이상의 규칙들을 변환(translate)하는 동작; 및
    상기 타겟 환경에 상기 변환된 하나 또는 그 이상의 규칙들을 적용하는(apply) 동작을 더 수행할 수 있는,
    시스템.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020110046566A 2010-06-03 2011-05-18 마이그레이션들 동안 네트워크 재구성을 자동화하는 방법 KR101868633B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/793,202 2010-06-03
US12/793,202 US8813209B2 (en) 2010-06-03 2010-06-03 Automating network reconfiguration during migrations

Publications (2)

Publication Number Publication Date
KR20110132973A KR20110132973A (ko) 2011-12-09
KR101868633B1 true KR101868633B1 (ko) 2018-06-18

Family

ID=45053223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110046566A KR101868633B1 (ko) 2010-06-03 2011-05-18 마이그레이션들 동안 네트워크 재구성을 자동화하는 방법

Country Status (3)

Country Link
US (1) US8813209B2 (ko)
KR (1) KR101868633B1 (ko)
CN (1) CN102271053B (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856661B1 (en) 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8381284B2 (en) 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
US8549609B2 (en) * 2011-05-31 2013-10-01 Red Hat, Inc. Updating firewall rules
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8713668B2 (en) * 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US8800024B2 (en) * 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
WO2013074828A1 (en) 2011-11-15 2013-05-23 Nicira, Inc. Firewalls in logical networks
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US9548962B2 (en) * 2012-05-11 2017-01-17 Alcatel Lucent Apparatus and method for providing a fluid security layer
US9059960B2 (en) 2012-08-31 2015-06-16 International Business Machines Corporation Automatically recommending firewall rules during enterprise information technology transformation
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
WO2015060857A1 (en) 2013-10-24 2015-04-30 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
US9483490B1 (en) * 2013-10-28 2016-11-01 Cloudvelox, Inc. Generation of a cloud application image
US9430483B1 (en) * 2013-12-30 2016-08-30 Emc Corporation Automatic file system migration to a network attached storage system
US9215213B2 (en) 2014-02-20 2015-12-15 Nicira, Inc. Method and apparatus for distributing firewall rules
US11675837B2 (en) * 2014-03-17 2023-06-13 Modelizeit Inc. Analysis of data flows in complex enterprise IT environments
CN104158732B (zh) * 2014-08-22 2017-11-28 成都致云科技有限公司 一种智能的云服务动态路由策略
US9756121B2 (en) * 2015-06-24 2017-09-05 International Business Machines Corporation Optimizing routing and load balancing in an SDN-enabled cloud during enterprise data center migration
US9806948B2 (en) 2015-06-30 2017-10-31 Nicira, Inc. Providing firewall rules for workload spread across multiple data centers
CN105187435A (zh) * 2015-09-24 2015-12-23 浪潮电子信息产业股份有限公司 一种防火墙规则过滤优化方法
US10348685B2 (en) 2016-04-29 2019-07-09 Nicira, Inc. Priority allocation for distributed service rules
US10135727B2 (en) 2016-04-29 2018-11-20 Nicira, Inc. Address grouping for distributed service rules
US10944722B2 (en) 2016-05-01 2021-03-09 Nicira, Inc. Using activities to manage multi-tenant firewall configuration
US11171920B2 (en) 2016-05-01 2021-11-09 Nicira, Inc. Publication of firewall configuration
US11082400B2 (en) 2016-06-29 2021-08-03 Nicira, Inc. Firewall configuration versioning
US11258761B2 (en) 2016-06-29 2022-02-22 Nicira, Inc. Self-service firewall configuration
US10582021B2 (en) 2016-07-01 2020-03-03 Mcafee, Llc Cloud assisted behavioral automated testing
US10484427B2 (en) * 2016-07-11 2019-11-19 Stripe Inc. Methods and systems for providing configuration management for computing environments
WO2018023338A1 (zh) 2016-08-01 2018-02-08 华为技术有限公司 一种网络功能nf管理方法及nf管理设备
US10608990B2 (en) * 2016-11-15 2020-03-31 Nicira, Inc. Accessing nodes deployed on an isolated network
US10419393B2 (en) 2017-05-11 2019-09-17 International Business Machines Corporation Using network configuration analysis to improve server grouping in migration
US10917436B2 (en) 2018-03-20 2021-02-09 Cisco Technology, Inc. On-demand security policy provisioning
US10873604B1 (en) * 2018-06-19 2020-12-22 Architecture Technology Corporation Methods and systems for reconfiguring network devices
JP7188046B2 (ja) * 2018-12-14 2022-12-13 富士フイルムビジネスイノベーション株式会社 通信システム、通信装置、通信システムプログラム及び通信プログラム
US11310202B2 (en) 2019-03-13 2022-04-19 Vmware, Inc. Sharing of firewall rules among multiple workloads in a hypervisor
US10791024B1 (en) * 2019-03-13 2020-09-29 Dell Products, L.P. Adaptive network interface configuration
US11809284B2 (en) * 2019-12-17 2023-11-07 Infosys Limited System and method of cloning a multi-tiered application
US11601399B2 (en) 2021-01-20 2023-03-07 Bank Of America Corporation System and method for detecting forbidden network accesses based on zone connectivity mapping
CN113542263B (zh) * 2021-07-13 2023-01-24 中国工商银行股份有限公司 防火墙策略迁移方法及装置
CN114338391A (zh) * 2021-12-28 2022-04-12 奇安信科技集团股份有限公司 一种防火墙的迁移配置方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289308A1 (en) * 2004-06-29 2005-12-29 Hitachi, Ltd. Method for controlling storage policy according to volume activity
US20060129670A1 (en) * 2001-03-27 2006-06-15 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704873B1 (en) * 1999-07-30 2004-03-09 Accenture Llp Secure gateway interconnection in an e-commerce based environment
JP2009508191A (ja) * 2005-08-23 2009-02-26 ミモーサ・システムズ・インコーポレーテッド Id保存を介するエンタープライズサーババージョン移行
CN101281461B (zh) * 2007-04-04 2012-07-04 国际商业机器公司 用于迁移应用所依赖的系统环境的方法和装置
CN101783873A (zh) 2009-01-19 2010-07-21 北京视典无限传媒技术有限公司 数字化多媒体信息传输平台
US8572625B2 (en) * 2009-08-04 2013-10-29 International Business Machines Corporation Method and system for application migration using per-application persistent configuration dependency

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129670A1 (en) * 2001-03-27 2006-06-15 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
US20050289308A1 (en) * 2004-06-29 2005-12-29 Hitachi, Ltd. Method for controlling storage policy according to volume activity

Also Published As

Publication number Publication date
KR20110132973A (ko) 2011-12-09
CN102271053A (zh) 2011-12-07
US8813209B2 (en) 2014-08-19
CN102271053B (zh) 2014-03-26
US20110302647A1 (en) 2011-12-08

Similar Documents

Publication Publication Date Title
KR101868633B1 (ko) 마이그레이션들 동안 네트워크 재구성을 자동화하는 방법
US10944691B1 (en) Container-based network policy configuration in software-defined networking (SDN) environments
US11265288B2 (en) Using network configuration analysis to improve server grouping in migration
RU2595517C2 (ru) Объекты виртуального сетевого интерфейса
KR101579715B1 (ko) 로지컬 다차원 레이블기반 정책 모델을 이용한 분산 네트워크 관리
CN113016167B (zh) 在网络中使权利跟随终端设备的方法和装置
JP2021184605A (ja) サービスルール処理のための、サービスノードへのリモートデバイス管理属性の分配
JP7217816B2 (ja) クラウドベースサービスのプログラムオーケストレーション
US7633855B2 (en) System and method for resolving address conflicts in a network
US9100363B2 (en) Automatically recommending firewall rules during enterprise information technology transformation
EP2499784B1 (en) Model-based virtual networking
US9491052B2 (en) Topology aware smart merge
US20200236187A1 (en) Discovery and service mapping of application programming interface proxies
US20100174811A1 (en) Network isolation and identity management of cloned virtual machines
JP2001237895A (ja) ネットワークゲートウェイの解析方法及び装置
US20200304377A1 (en) Agent-assisted discovery of network devices and services
US10178068B2 (en) Translating network attributes of packets in a multi-tenant environment
EP3884641B1 (en) Apparatus and method for migrating existing access control list policies to intent based policies and vice versa
CN108667776B (zh) 一种网络业务诊断方法
US20140068747A1 (en) Automatic Completeness Checks of Network Device Infrastructure Configurations During Enterprise Information Technology Transformation
US10862850B2 (en) Network-address-to-identifier translation in virtualized computing environments
US20130151679A1 (en) Hybrid virtual computing environments
CN117353961A (zh) 一种安全策略的获取方法及相关装置
Vemuri Policy Carry-Over for Mobility in Software Defined Networks
Hoogendoorn Multi-Site Network and Security Services with NSX-T

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
GRNT Written decision to grant