시작하기

일반적으로 SoftLayer API를 호출하기 위해서는 인증을 위한 API Key 가 있어야 합니다.
하지만 유일한 예외가 있습니다. 그것은 인스턴스 자기 자신의 메타 데이터 정보 를 호출 할 때입니다.
SoftLayer_Resource_Metadata 라는 Service는 어디에서 호출되었는지 만 중요하고, 사전에 API Key를 얻는 필요는 없습니다.
만약 slcli 명령을 사용하더라도 API Key없이 사용할 수 있습니다.

http://sldn.softlayer.com/reference/services/SoftLayer_Resource_Metadata

사용 조건

사용 조건은 다음과 같습니다.

  • 실제로 SoftLayer에서 실행되는 서버에서 실행
  • Private 통해 API 액세스 할 수 있는 서버에서 실행 (Public을 통해서는 동작하지 않습니다.)

예를 들어 관리 콘솔 등의 권한이 없어도 자신의 서버가 어떤 데이터 센터에서 움직이고 있는지 알 수 있습니다.

사용 방법(curl)

기본적으로 json 포맷으로 반환됩니다. (값만 반환)
하지만 .xml 확장자를 주면 xml 형식으로 반환됩니다.
또는 .json 처럼 명시적으로 .json을 붙여도 됩니다.
즉, getID인경우 getID.json 또는 getID.xml 로 쓸수도 있습니다.

  • DeviceID (Baremetal이라면 HardwareId VM라면 VirtualGuestId)

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getId
    
  • 호스트 이름, 도메인 이름, FQDN

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getHostname
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDomain
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getFullyQualifiedDomainName
    
  • Public/Private PrimaryIPAddress

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getPrimaryIpAddress
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getPrimaryBackendIpAddress
    
  • Public/Private MACAddress

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getFrontendMacAddresses
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getBackendMacAddresses
    
  • 라우터 정보 (상기 방법으로 얻은 MAC 주소를 파라미터로 끝에 넣어 주어야 합니다)

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getRouter/06:5c:99:52:1a:60
    
  • VLAN 정보 (상기 방법으로 얻은 MAC 주소를 파라미터로 끝에 넣어 주어야 합니다)

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getVlanIds/06:5c:99:52:1a:60
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getVlans/06:5c:99:52:1a:60
    
  • 데이터 센터 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDatacenterId
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDatacenter
    
  • 프로비저닝 상태

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getProvisionState
    
  • 태그 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getTags
    
  • UserData 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getUserMetadata
    
  • 서비스 자원 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getServiceResources
    

사용 방법 - slcli 사용

다시말하지만, slcli 명령을 사용하여도 metadata 정보의 취득에 관해서는 사전에 API Key의 설치는 필요하지 않습니다.

  • 명령 예시

      # slcli metadata -h
      Usage: slcli metadata [OPTIONS] PROP
    
        Find details about this machine
    
        PROP Choices
        *backend_ip
        *backend_mac
        *datacenter
        *datacenter_id
        *fqdn
        *frontend_mac
        *id
        *ip
        *network
        *provision_state
        *tags
        *user_data
    
        Examples :
        slcli metadata backend_ip
        slcli metadata backend_mac
        slcli metadata datacenter
        slcli metadata datacenter_id
        slcli metadata fqdn
        slcli metadata frontend_mac
        slcli metadata id
        slcli metadata ip
        slcli metadata network
        slcli metadata provision_state
        slcli metadata tags
        slcli metadata user_data
    
      Options:
        -h, --help  Show this message and exit.
    
        These commands only work on devices on the backend SoftLayer network. This
        allows for self-discovery for newly provisioned resources.
    
  • network 정보 확인

    # slcli metadata network
    :...............:...................:
    :      name     :       value       :
    :...............:...................:
    : mac addresses : 06:90:31:e4:0c:90 :
    :     router    :    fcr01.sng01    :
    :     vlans     :        xxxx       :
    :    vlan ids   :       xxxxxx      :
    :...............:...................:
    :...............:...................:
    :      name     :       value       :
    :...............:...................:
    : mac addresses : 06:18:10:e0:91:17 :
    :     router    :    bcr01.sng01    :
    :     vlans     :        xxxx       :
    :    vlan ids   :       xxxxxx      :
    :...............:...................:
    




https://softlayer.github.io/reference/services/SoftLayer_Resource_Metadata/ 참고

getBackendMacAddresses
A list of backend MAC addresses
getDatacenter
The name for the datacenter which the resource is in
getDatacenterId
The id for the datacenter which the resource is in
getDomain
A resource's domain
getFrontendMacAddresses
A list of frontend MAC addresses
getFullyQualifiedDomainName
A resource's fully qualified domain name
getGlobalIdentifier
A resource's globalIdentifier
getHostname
A resource's hostname
getId
A resource's id
getPrimaryBackendIpAddress
The primary backend IP address for the resource
getPrimaryIpAddress
The primary IP address for the resource
getProvisionState
Obtain the provision state for a resource
getRouter
The router associated with a network component
getServiceResource
Obtain a specific service resource associated with the resource
getServiceResources
Obtain service resources associated with the resource
getTags
Obtain tags associated with the resource
getUserMetadata
Obtain user data associated with the resource
getVlanIds
A list of VLAN ids for a network component
getVlans
A list of VLAN numbers for a network component

 



INTEL CPU 버그 -> 커널 스페이스 메모리가 유저 스페이스로 유출


https://lkml.org/lkml/2017/12/27/2

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/?id=a89f040fa34ec9cd682aed98b8f04e3c47d998bd

Xen : XSA-253 : https://xenbits.xen.org/xsa/advisory-253.html


Xen은 Paravirtual만 해당 된다는 얘기가 있다. AWS Korea는 전부 HVM이므로 해당이 없을지도..


Softlayer는 1월 6일 00시부터 이틀에 걸처 전체 Host를 리부팅 해서 패치 한다.


패치로 인해 성능이 5%~30% 저하된다는 벤치마크 결과가 있다. 특히 IO 쪽이 문제되는 듯.

http://www.phoronix.com/vr.php?view=25767


=======================================================================

지난 10 년 동안 생산 인텔 프로세서는 치명적인 칩 수준의 보안 버그를 가지고 있습니다.  OS 레벨에서 수정 사항이 나와야한다고보고하고, 수정본을 사용할 수있는 경우에도 주목할만한 성능 저하가있을 것입니다.

 

이 보고서는이 시점에서 버그에 대해 알려진 바가 크지 않다고 설명하지만, "지난 10 년 간 생산 된 최신 인텔 프로세서에 존재하는"근본적인 설계 결함 "이라고 지적했다.


이 버그로 인해 사용자 프로그램은 보호 된 커널 메모리의 내용을 식별 할 수있게되어 해커가 다른 보안 버그를보다 쉽게 ​​악용 할 수 있습니다. 등록 메모에 따르면, 실제로는 그보다 더 나쁠 수 있습니다. 커널 메모리에 대한 액세스를 제공하는이 버그는 "프로그램과 로그인 한 사용자가 커널 메모리의 내용을 읽을 때 악용 될 수 있습니다."


커널의 메모리 공간은 암호, 로그인 키, 디스크에서 캐시 된 파일 등과 같은 모든 종류의 비밀을 포함 할 수 있으므로 사용자 프로세스 및 프로그램에서 숨겨집니다. 브라우저에서 실행되는 JavaScript 또는 공유 된 공용 클라우드 서버에서 실행되는 악성 소프트웨어가 민감한 커널 보호 데이터를 스니핑 할 수 있다고 상상해보십시오.


이 칩 레벨 보안 버그에 대한 패치도 그리 좋지 않습니다. 이 보고서는이 시점에서 더 구체적인 정보가 명확하지 않더라도 수정으로 인해 5 % ~ 30 %의 속도 저하가 발생할 수 있다고 설명합니다. 속도 저하는 프로세서가 캐시 된 데이터를 덤프하고 메모리에서 정보를 다시로드해야하는 방식으로 인해 발생합니다.


현재 Microsoft 및 Linux 개발자는이 문제를 해결하기 위해 노력하고 있습니다. 이 결함은 인텔의 x86 하드웨어에 결함이 있기 때문에 인텔 기반 맥에도 영향을 미치지 만, 애플의 수정 작업은 불분명하다. 결함이 하드웨어 자체에 있기 때문에 정상적인 마이크로 코드 업데이트로 해결할 수는 없지만 오히려 OS 레벨의 수정이 필요합니다.


이러한 커널 페이지 테이블 격리 패치는 커널을 완전히 별도의 주소 공간으로 이동하므로 실행중인 프로세스에서 보이지 않을뿐 아니라 전혀 존재하지 않습니다. 실제로는 필요하지 않지만 Intel의 실리콘에는 커널 액세스 보호가 어떤 식 으로든 무시 될 수있는 결함이 있습니다.


이 분리의 단점은 모든 시스템 호출과 하드웨어의 모든 인터럽트에 대해 두 개의 개별 주소 공간을 전환하는 것은 비교적 비용이 많이들고, 시간이 많이 걸린다는 점입니다. 이러한 컨텍스트 스위치는 즉시 발생하지 않으며 프로세서가 캐시 된 데이터를 덤프하고 메모리에서 정보를 다시로드하도록합니다. 이렇게하면 커널의 오버 헤드가 증가하고 컴퓨터 속도가 느려집니다.


개발자가 패치 작업을 할 때 버그에 대한보다 구체적인 정보가 현재 금하고 있다고 추측합니다. 다음 주 곧 Intel에서 직접 더 많은 세부 정보를 얻을 수 있습니다.

포털에서 파일 스토리지 주문 후 

주문된 파일 스토리지 세부 내용으로 들어가서 

"호스트 권한 부여" 메뉴 선택 후 접근할 서버들을 추가함


또는 아래 커맨드로 생성 후 호스트 권한 부여

slcli file volume-order --storage-type endurance --size 100 --tier 4 --location seo01 --snapshot-size 100 --billing hourly

slcli file access-authorize -v 51497695 40209179

(slcli file access-authorize -v VMID VID


아래 커맨드

#nfs프로그램 설치

yum -y install nfs-utils nfs-utils-lib


#마운트할 디렉토리 생성

mkdir /data


#/etc/fstab 파일을 열고 마지막에 아래 내용 추가 후 저장 (앞쪽 nfs서버주소는 포털에서 확인) , nfs4.1로 바뀌면서 sec=sys를 안하면 write가 안되므로 꼭 쓰도록 하자.

vi /etc/fstab

nfsseo0101c-fz.adn.networklayer.com:/IBM01SEV1511949_1   /data    nfs4    hard,intr,rw,sec=sys    0 0


#/etc/fstab 내용을 실제로 마운트 시킴

mount -a


IBM Bluemix Load Balancer

  • 애플리케이션 서버 팜 앞에 로드 밸런서를 배치하여 애플리케이션의 가용성과 성능을 향상시킵니다. 
  • 애플리케이션 서버의 상태를 모니터링하고 개별 서버 장애로부터 보호합니다. 
  • 관리는 직관적인 그래픽 인터페이스와 API를 사용하여 쉽게 사용할 수 있습니다. 
  • 무엇보다도 사용하는 것에 대해서만 지불하면 됩니다.

특징들

종량제 가격 책정

로드 밸런서 사용 시간 및 처리 된 데이터를 기준으로 매월 사용한 양에 대해서 만 비용을 지불하면 됩니다.

Offload SSL handshake

SSL 오프로드를 사용하면 서버 자원을 실제 애플리케이션 처리하는 데만 집중할 수 있습니다.
암호화로 인한 서버 자원을 낭비할 필요가 없습니다.

프리미엄 Layer-4

최종 사용자 데이터 트래픽을 여러 응용 프로그램 서버에 지능적으로 배포하고 최종 사용자 환경을 향상시킵니다. 가상 및 베어 메탈 서버을 모두 지원하며,  HTTP, HTTPS 및 TCP 기반 애플리케이션을 위한 Layer-4 스위칭을 수행합니다.

지능형 트래픽 분산

라운드 로빈 (round-robin), 가중 라운드 로빈 (weighted round-robin) 및 최소 연결(least connections)을 사용하여 트래픽을 균형있게 조정할 수 있습니다.

신속한 서버 장애 감지

서버 상태를 정기적으로 모니터링하여 다운된 서버로의 트래픽 전송을 방지합니다.

고급 트래픽 관리

애플리케이션 트래픽 흐름에 맞게 세션 지속성(Session Persistence, 소스 IP 기반)을 설정하거나 VIP포트당 최대 연결 한도를 설정 할 수 있습니다.


비용

다음 메트릭의 실제 소비량에 대해 청구합니다. (아래 SEO01 기준)

MetricDescription

단가*

Service usage (in hours)

이 서비스가 한 달에 몇 시간 동안 사용됩니까?

$0.028 per hour
Data processed (in Gigabytes GB)

해당 월에 LB가 처리 한 총 데이터 량은 얼마입니까?

$0.009 per GB

아웃 바운드 인터넷/공용 대역폭에는 표준 데이터 전송 요금이 부과됩니다. (SEO01 : $0.12 per GB)


SoftLayer 네트워크에는 
퍼블릭 네트워크(인터넷망)과 프라이빗 네트워크(사설망) (10.0.0.0/8)가 있습니다. 
퍼블릭 네트워크를 통해 통신 과금이 발생하는 경우가 있습니다. 
서버에 데이터를 업로드하는 분은 무료입니다만 
서버에서 데이터를 다운로드 (아웃 바운드) 통신 과금 대상이됩니다. 
간단하게 생각하면 Public Interface에서 나가는 트래픽은 과금 대상입니다. (VM 및 Baremetal)

아웃 바운드 통신은 서버 1 대 1 달 다음 무료 프레임이 있습니다.

  • 물리적 서버는 500GB
  • 가상 서버는 250GB
  • 네트워크 어플라이언스 (Vyatta / Citrix NetScaler VPX)은 20TB
    • ※ 어플라이언스는 만약을 위해, 구입 전에 티켓에 확인하는 것이 좋습니다. VPX는 무제한 이라는 얘기도 있습니다.

※ 방화벽은 Bandwidth 의한 청구하지 않습니다. 

즉, Hardware Firewall (Shared,Dedicated), Fortigate Security Appliance 모두 트래픽을 과금 하지 않습니다.
단, 트래픽의 양을 제한하는 기능을 사용할 수 있습니다. 
http://knowledgelayer.softlayer.com/faq/does-softlayer-charge-firewall-bandwidth

그것을 넘은만큼의 트래픽에 대해서는 DC에 대해 다음 요금이 발생합니다. 
서울 PoD는 $ 0.12/GB입니다. 
※ 다음의 값은 1TB의 Bandwidth를 구입할 때 까지의 단가와 동일합니다.

  • USA / Amsterdam / London / Frankfurt - $ 0.09 /GB
  • Canada / Paris / Milan / Singapore / Seoul - $ 0.12 /GB
  • Hong Kong / Tokyo / Australia - $ 0.14 /GB
  • Mexico - $ 0.18 /GB
  • Brazil / India - $ 0.25 /GB

통신량이 무료 범위를 크게 초과 할 이미 예상된다 있다면, 
사전에 데이터 통신량을 구입할 수 할인됩니다. 물리적 서버의 경우 5T 이상에서 거래 ) 
(1000GB을 구입 및 500GB 무료 + 500GB 종량 과금 동일한 금액)

무제한 Unlimited Bandwidth (100 Mbps Uplink)의 가격은 다음과 같습니다.  100Mbps만 제공합니다.
- USA / Amsterdam / London / Frankfurt - $ 2000 
- Canada / Paris / Milan / Singapore / Seoul - $ 2660 
- Hong Kong / Tokyo / Australia - $ 3120
- Mexico - $ 4000 
- Brazil / India - $ 5560

추가 Bandwidth 용량이 필요하신 분은 1TB로 구분하여 티켓을 통해 주문 가능합니다. 
http://knowledgelayer.softlayer.com/faqs/56#671

How can I get additional bandwidth for my server 
The best way to purchase additional bandwidth for your server is to open a "Sales"ticket, requesting additional bandwidth. Please specify the amount of additional bandwidth and the server you are requesting the bandwidth for 
Note : Bandwidth is only available in 1000GB increments or as an unmetered service .

또한 무상 프레임의 2 배를 초과하면 즉시 종량 과금하고 무상 프레임의 2 배 이내이면 추가 분은 다음달에 청구됩니다.
http://knowledgelayer.softlayer.com/faq/how-much-do-you-charge-bandwidth-overages

If you exceed twice the amount of bandwidth you are allotted, we will automatically charge you for excess bandwidth used at the time. If you exceed your allotment by less than twice the allowance, the overages will be added to your next monthly invoice.

Bandwidth는 풀링 할 수 있습니다. 즉 각 서버들의 트래픽을 모아서 하나의 풀 안에서 꺼내어 쓸 수 있습니다.
다만, Pooling하려면 서버마다 $ 25 필요합니다. 
Unlimited Bandwidth를 포함 할 수는 없습니다.


다음은 vRouter 5400과 vRouter 5600의 차이점을 설명하고 있습니다. 
앞서 언급 한 바와 같이, 불행히도 공식 마이그레이션 가이드 같은 것은 존재하지 않기 때문에 전반적인 포괄적인 가이드를 하기에는 어려운 상황입니다.

5. 인터페이스

vRouter 5600에서는 컨트롤 플레인과 데이터 플레인이 분리된 DPDK를 이용하기 때문에 인터페이스가 아래처럼 각각 변경되었습니다.

  • eth0, eth1, eth2, eth3 -> dp0s0, dp0s1, dp0s2, dp0s3
  • bond0, bond1 -> dp0bond0, dp0bond1

그리고 vRouter 5400에서 eth0과 eth2이 bond0으로 eth1과 eth3가 bond1으로 각각 LACP로 구성하고 있던 것처럼,
vRouter 5600에서는 dp0s0와 dp0s2이 dp0bond0으로 dp0s1과 dp0s3이 dp0bond1으로 각각 LACP 구성하고 다음과 같이 옵션이 변경되었습니다.

  • hash-policy -> vRouter 5600에서는 폐지
  • mode 802.3ad -> mode lacp

또한 VRRP는 다음과 같이 변경됩니다.

  • rfc3768-compatibility -> rfc-compatibility
  • VRRP 광고 간격을 나타내는 advertisement 값은 vRouter 5400에서는 bond0/bond1에 주문 후 생성된 초기 구성에서 명시적으로 1 초에 설정되어 있습니다.
    vRouter 5600에서는 dp0bond0/dp0bond1에 주문 직후의 초기 구성은 설정되어 있지 않지만, 기본값은 1 초이므로 동작은 동일합니다.
    하지만 명시적으로 설정해 줄 것을 권장합니다.
5400의 구성 예
# show interfaces bonding bond0 
 address 10.132.50.92/26
 hash-policy layer3+4
 mode 802.3ad
 vif 1449 {
     address 192.168.0.1/24
     vrrp {
         vrrp-group 1 {
             advertise-interval 1
             preempt false
             priority 254
             sync-group vgroup1
             virtual-address 10.132.14.145/28
             virtual-address 10.133.101.113/28
             virtual-address 10.132.176.1/26
         }
     }
 }
 vrrp {
     vrrp-group 1 {
         advertise-interval 1
         preempt false
         priority 254
         rfc3768-compatibility
         sync-group vgroup1
         virtual-address 10.132.50.84/26
     }
 }
5600의 구성 예
# show interfaces bonding dp0bond0
 bonding dp0bond0 {
        address 10.132.50.92/26
        mode lacp
        vif 1449 {
                address 192.168.0.1/24
                vrrp {
                        vrrp-group 1 {
                                advertise-interval 1
                                preempt false
                                priority 254
                                sync-group vgroup1
                                virtual-address 10.132.14.145/28
                                virtual-address 10.133.101.113/28
                                virtual-address 10.132.176.1/26
                        }
                }
        }
        vrrp {
                vrrp-group 1 {
                        advertise-interval 1
                        preempt false
                        priority 254
                        rfc-compatibility
                        sync-group vgroup1
                        virtual-address 10.132.50.84/26
                }
        }
 }

또한 VRRP인터페이스는 RFC 규격에 따라 bondXvX 에서 dp0vrrpX 로 변경되어 있습니다. 이것은 show vrrp명령을 실행하는 것으로 확인할 수 있습니다.

5400
show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
bond0             1      MASTER  yes        no     5s          vgroup1
bond0.1449        1      MASTER  no         no     5s          vgroup1
bond1             1      MASTER  yes        no     5s          vgroup1
bond1.1438        1      MASTER  no         no     7s          vgroup1

$ show vrrp detail | grep interface
  Virtual MAC interface:    bond0v1
  Virtual MAC interface:    bond1v1
5600
show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
dp0bond0          1      MASTER  dp0vrrp2   no     5h2m59s     vgroup1
dp0bond0.1449     1      MASTER  no         no     5h2m59s     vgroup1
dp0bond1          1      MASTER  dp0vrrp1   no     5h2m59s     vgroup1
dp0bond1.1438     1      MASTER  no         no     5h2m59s     vgroup1

$ show vrrp detail|grep interface
  Virtual MAC interface:    dp0vrrp2
  Virtual MAC interface:    dp0vrrp1
  • VIF의 설정 방법은 기존과 동일합니다. rfc-compatibility는 native interface에만 설정하고 VIF는 TAG VLAN이므로 설정하지 않는다는것도 vRouter 5400 때와 동일합니다. (설정하면 VIP의 Arp Resolution이 실패합니다)
  • Vyatta의 vrrp-group 번호와 sync-group 번호도 vRouter 5400 때와 동일하게, IBM Cloud에서 할당 해 준 것을 최대한 이용해야 합니다. 사용자가 변경 했을 때, 만약 Vyatta의 HA 구성이 여러 세트로 준비 된 경우 나중에 도입 된 다른 세트의 vRouter에 할당 된 vrrp-group 번호가 중복되어 vrrp의 flapping이 발생하여 통신 불가에 빠질 수 있습니다. 만약 사용자가 독자적으로 할당할 경우 중복이 일어나지 않도록 주의해야 합니다.
5400
set interfaces bonding bond0 vif 1449 address 192.168.0.1/24
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 advertise-interval 1
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 preempt false
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 priority 254 
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 sync-group vgroup1
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.14.145/28
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.133.101.113/28
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.176.1/26
5600
set interfaces bonding dp0bond0 vif 1449 address 192.168.0.1/24
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 advertise-interval 1
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 preempt false
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 priority 254 
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 sync-group vgroup1
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.14.145/28
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.133.101.113/28
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.176.1/26

 

6. SSH 서비스

vRouter 5400에서는 SSH 포트는 하나만 설정 가능했습니다. 그러나 vRouter 5600에서는 여러개의 포트를 설정 가능합니다. 만약 하나만 사용한다면 사용하지 않는 포트는 명시적으로 제거해야 합니다.

5400에서는 1개의 포트만 설정가능하기 때문에 최종적으로 20022 포트 하나만 사용 가능.
# set service ssh port 22
# set service ssh port 20022
# commit
# show service ssh                  
 port 20022
5600에서는 포트를 여러개 설정 가능하기 때문에 최종적으로 22와 20022 포트 둘다 사용 가능.
# set service ssh port 22
# set service ssh port 20022
# commit
# show service ssh
 ssh {
        port 20022
        port 22
 }

 

7. Firewall

vRouter 5400에서는 iptables 기반 (커널 기반) 이었지만, vRouter 5600에서는 사용자 영역(User Space)에서 제어하도록 구현되어 있습니다. 따라서 규칙의 설정 방법과 해석이 vRouter 5400과는 크게 변경되어 있습니다. 
Vyatta에서 Firewall은 반드시 사용하는 기능이므로 여기가 마이그레이션중 제일 어려운 곳이라고 생각됩니다.

7.1 설정 방법

vRouter 5400에서 set firewall로 설정하고 있었지만, vRouter 5600에서 set security firewall설정합니다.

5400
# set firewall 
Possible completions:
   all-ping     Policy for handling of all IPv4 ICMP echo requests
   broadcast-ping
                Policy for handling broadcast IPv4 ICMP echo and timestamp requests
   config-trap  SNMP trap generation on firewall configuration changes
 > group        Firewall group
   ip-src-route Policy for handling IPv4 packets with source route option
+> ipv6-name    IPv6 firewall rule-set name
   ipv6-receive-redirects
                Policy for handling received ICMPv6 redirect messages
   ipv6-src-route
                Policy for handling IPv6 packets with routing extension header
   log-martians Policy for logging IPv4 packets with invalid addresses
+> name         IPv4 firewall rule-set name
   receive-redirects
                Policy for handling received IPv4 ICMP redirect messages
   send-redirects
                Policy for sending IPv4 ICMP redirect messages
   source-validation
                Policy for source validation by reversed path, as specified in RFC3704
 > state-policy Global firewall state-policy
   syn-cookies  Policy for using TCP SYN cookies with IPv4
5600
vyatta@vga02# set security firewall 
Possible Completions:
   all-ping            Policy for handling of all IPv4 ICMP echo requests
   broadcast-ping      Policy for handling broadcast IPv4 ICMP echo requests
   config-trap         SNMP trap generation on firewall configuration changes
 > global-state-policy Configure global state parameters for firewall
+> name                Firewall ruleset
 > session-log         Session logging
   syn-cookies         Policy for using TCP SYN cookies with IPv4
   tcp-strict          Enable tcp strict stateful firewall rule


그리고 vRouter 5400는 하나의 인터페이스에 대한 in/out/local을 하나씩만 firewall을 설정할 수 있었지만, vRouter 5600에서는 다음 처럼 여러 개 지정할 수있게 되었습니다.

5400에서는 인터페이스마다 in/out/local에 대해 각각 1개씩만 firewall을 설정할 수 있다
# set interfaces bonding bond1 firewall in INTERNET-TO-LOCAL
# set interfaces bonding bond1 firewall in INTERNET
# set interfaces bonding bond1 firewall in SERVICE-ALLOW
# commit
# show interfaces bonding bond1 firewall 
 local {
     name SERVICE-ALLOW
 }
5600에서는 여러개를 설정 가능하다
# set interfaces bonding dp0bond1 firewall in INTERNET-TO-LOCAL
# set interfaces bonding dp0bond1 firewall in INTERNET
# set interfaces bonding dp0bond1 firewall in SERVICE-ALLOW
# commit
# show interfaces bonding dp0bond1 firewall 
 firewall {
        in INTERNET-TO-LOCAL
        in INTERNET
        in SERVICE-ALLOW
 }

7.2 인터페이스 기반 규칙 해석 순서

vRouter는 인터페이스 기반의 방화벽(Firewall)과 영역기반(zone-based) 방화벽이 있습니다. 인터페이스 기반의 방화벽은 vRouter 5400에서는 아래와 같이 iptable의 CHAIN과 동일하게 DNAT -> 방화벽(IN/OUT) -> SNAT 순서로 패킷이 처리되고 있습니다.


하지만, vRouter 5600에서는 다음과 같이 DNAT 전에 IN-방화벽이 먼저 평가됩니다.
Vyatta(로컬프로세스)에 대상 패킷이 도달하기 위해 IN-방화벽과 LOCAL-방화벽을 모두 통과해야만 한다는 것을 주의해야 합니다.
따라서 LOCAL로 접근하기 위해서는, vRouter 5400에서 기존 LOCAL-방화벽 설정을 IN-방화벽에 반영시킬 필요가 있습니다.
※ 앞서 얘기한 바와 같이 하나의 인터페이스에 여러개의 설정을 반영시킬 수 있기 때문에 vRouter 5400에서 LOCAL-방화벽으로 지정했던 정책을 vRouter 5600에서 IN-방화벽으로 지정하고 LOCAL-방화벽은 사용하지 않도록 해도 충분할 수 있습니다.


 

7.3 state policy의 global 옵션 설정

vRouter 5400에서는 iptables에서 사용하던 established/related 상태에 대한 설정을 global 수준에서만 지정 가능했습니다.
vRouter 5600에서는 TCP/UDP/ICMP 마다 stateful할지 여부를 지정할 수 있습니다.

5400
# set firewall state-policy 
Possible completions:
 > established  Global firewall policy for packets part of an established connection
 > invalid      Global firewall policy for packets part of an invalid connection
 > related      Global firewall policy for packets part of a related connection
# set firewall state-policy established action accept
# set firewall state-policy related action accept 
# set firewall state-policy invalid action drop
5600
# set security firewall global-state-policy 
Possible Completions:
   icmp enable icmp state monitoring for firewall
   tcp  enable tcp state monitoring for firewall
   udp  enable udp state monitoring for firewall
# set security firewall global-state-policy tcp 
# set security firewall global-state-policy udp
# set security firewall global-state-policy icmp

7.4 stateful firewall

vRouter 5400에서는 iptables에서 사용하던 established/related 상태에 대한 설정을 지정할 수 있었습니다. 또한 새 세션의 지정에 대해서는 new라는 상태를 이용했습니다.
vRouter 5600에서는 stateful하기 위해 단순히 state enable을 지정합니다. 새 세션의 지정에 관해서는 TCP에 관해서는 TCP Flag를 이용합니다.

vRouter5400의 방화벽 설정 예
# set firewall name INTERNET-TO-LOCAL default-action drop
# set firewall name INTERNET-TO-LOCAL rule 10 action accept
# set firewall name INTERNET-TO-LOCAL rule 10 state established enable
# set firewall name INTERNET-TO-LOCAL rule 10 state related enable
# set firewall name INTERNET-TO-LOCAL rule 20 action accept
# set firewall name INTERNET-TO-LOCAL rule 20 protocol vrrp
# set firewall name INTERNET-TO-LOCAL rule 30 action accept
# set firewall name INTERNET-TO-LOCAL rule 30 destination port 20022
# set firewall name INTERNET-TO-LOCAL rule 30 protocol tcp
# set firewall name INTERNET-TO-LOCAL rule 30 state new enable
# set interfaces bonding bond1 firewall local name INTERNET-TO-LOCAL
vRouter5600의 방화벽 설정 예
# set security firewall name INTERNET-TO-LOCAL default-action drop
# set security firewall name INTERNET-TO-LOCAL rule 10 action accept
# set security firewall name INTERNET-TO-LOCAL rule 10 state enable
# set security firewall name INTERNET-TO-LOCAL rule 10 protocol tcp
# set security firewall name INTERNET-TO-LOCAL rule 20 action accept
# set security firewall name INTERNET-TO-LOCAL rule 20 protocol vrrp
# set security firewall name INTERNET-TO-LOCAL rule 30 action accept
# set security firewall name INTERNET-TO-LOCAL rule 30 destination port 20022
# set security firewall name INTERNET-TO-LOCAL rule 30 protocol tcp
# set security firewall name INTERNET-TO-LOCAL rule 30 tcp flags SYN,!ACK,!FIN,!RST
# set interfaces bonding dp0bond1 firewall in INTERNET-TO-LOCAL

7.5 여러개의 port를 설정 하는 방법

vRouter 5400에서는 destination port를 직접 쓸 수 있습니다. (iptables의 multiport 옵션에 해당)
vRouter 5600에서는 명시적으로 port-group을 작성해서 사용 해야합니다.

5400
# set firewall name INTERNET-TO-LOCAL rule 30 destination port 80,443,10000-10010
5600
# set resources group port-group HTTPGROUP port 80
# set resources group port-group HTTPGROUP port 443
# set resources group port-group HTTPGROUP port 10000-10010
# set security firewall name INTERNET-TO-LOCAL rule 30 destination port HTTPGROUP

7.6 QOS / Traffic policy

5400에서는 QOS / Traffic policy 설정시 set traffic-policy를 사용했습니다.
5600에서는 set policy qos를 사용하거나 firewall rule에서 설정할 수 있습니다.

5400
set traffic-policy 
Possible completions:
+> drop-tail    Drop tail queue (FIFO) policy
+> fair-queue   Fair queuing policy
+> limiter      Traffic input limiting policy
+> network-emulator
                Network emulator policy
+> priority-queue
                Priority queuing based policy
+> random-detect
                Weighted Random Early Detect policy
+> rate-control Rate limiting policy
+> round-robin  Deficit round robin based policy
+> shaper       Traffic shaping based policy
5600
set policy qos name xxx shaper 
Possible Completions:
   bandwidth      Bandwidth limit
   burst          Burst size in bytes
+> class          Class number
   default        Qos profile for default traffic
   description    Description for this QoS policy
   frame-overhead Framing overhead
   period         Enforcement period (ms)
+> profile        QoS traffic profile
+> traffic-class  Traffic Class

# set security firewall name INTERNET-TO-LOCAL rule 40 police 
Possible Completions:
   bandwidth Bandwidth limit
   burst     Burst size in bytes
   ratelimit Ratelimit in packets/second.
 > then      Result for packets over police limit

8. NAT

예전에는 NAT는 set nat xxx로 설정했지만 앞으로는 set service nat xxx로 설정합니다.

5400
# set nat 
Possible completions:
 > destination  Destination NAT settings
 > source       Source NAT settings
5600
# set service nat 
Possible Completions:
   <Enter>      Execute the current command
 > destination  Destination NAT settings
 > ipv6-to-ipv4 IPv6 to IPv4 NAT settings
 > source       Source NAT settings

9. IPsec VPN

  • vRouter 5400에서 set vpn로 설정했던 것을 vRouter 5600에서는 set security vpn로 설정합니다.
  • IKEv2를 지원합니다. set security vpn ipsec ike-group IKEGROUP1 ike-version 2
  • IKE 실행 모드는 Main mode와 Aggressive mode의 2가지가 있습니다만, vRouter 5600에서도 Aggressive mode는 지원하지 않는 것 같습니다. 따라서 vRouter 5400 때와 마찬가지로 상대 기종에서는 Aggressive mode를 비활성화해야 합니다.
  • vRouter 5400에서는 ipsec-interfaces 의 지정이 필요했지만, vRouter 5600에서는 필요없습니다.
  • Site-to-Site VPN을 이용할 때는 prefix 지정으로 터널을 설정하는 방법과, VTI인터페이스를 설정하고 별도 라우팅을 설정하는 방법이 있습니다.
    • zone-based firewall을 이용하고있는 경우에는 prefix 지정 터널은 잘 동작하지 않는 것 같습니다. 만약 zone-based firewall을 이용하고있는 경우에는 VTI를 사용합시다.
    • prefix지정 VPN터널에서 흐르는 트래픽은 송신 원본 인터페이스가 불분명 하기 때문에 zone-based firewall에 의해 drop될 가능성이 있습니다.
5400
# set vpn ipsec                             
Possible completions:
   auto-update  Set auto-update interval for IPsec daemon.
   disable-uniqreqids
                Option to disable requirement for unique IDs in the Security Database
+> esp-group    Name of Encapsulating Security Payload (ESP) group
+> ike-group    Name of Internet Key Exchange (IKE) group
 > ipsec-interfaces
                Interface to use for VPN [REQUIRED]
 > logging      IPsec logging
 > nat-networks Network Address Translation (NAT) networks
   nat-traversal
                Network Address Translation (NAT) traversal
+> profile      VPN IPSec Profile
 > site-to-site Site to site VPN
5600
# set security vpn ipsec 
Possible Completions:
   <Enter>            Execute the current command
   auto-update        Set auto-update interval for IPsec daemon. [Deprecated]
   disable-uniqreqids <No help text available> [Deprecated]
+> esp-group          Name of Encapsulating Security Payload (ESP) group
+> ike-group          Name of Internet Key Exchange (IKE) group
 > logging            IPsec logging
 > nat-networks       Network Address Translation (NAT) networks
   nat-traversal      Network Address Translation (NAT) traversal [Deprecated]
+> profile            VPN IPSec Profile
 > site-to-site       Site to site VPN

 

10. OpenVPN

OpenVPN에 대한 설정 방법은 기본적으로 변경이 없습니다.

5400
# set interfaces openvpn vtun0
Possible completions:
 > auth         OpenVPN authentication method
 > bridge-group Interface to be added to a bridge group
 > client-bundle
                Generate SSL-VPN Client Bundles
   client-cert-not-required
                Client certificates not required
   description  Description for the interface
   device-type  OpenVPN interface device-type
   disable      Interface to be disabled
   encryption   Data encryption algorithm option
 > firewall     Firewall options
   hash         Hashing algorithm option
 > ip           IPv4 routing parameters
 > ipv6         IPv6 routing parameters
+> local-address
                Local IP address of tunnel
   local-host   Local IP address to accept connections (all if not set)
   local-port   Local port number to accept connections
   mode         OpenVPN mode of operation
+  openvpn-option
                Additional OpenVPN options
 > policy       Policy route options
   protocol     OpenVPN communication protocol
   redirect     Incoming packet redirection destination
   remote-address
                IP address of remote end of tunnel
 > remote-configuration
                Configure openvpn remote configuration
+  remote-host  Remote host to connect to (dynamic if not set)
   remote-port  Remote port number to connect to
 > replace-default-route
                OpenVPN tunnel to be used as the default route
 > server       Server-mode options
   shared-secret-key-file
                File containing the secret key shared with remote end of tunnel
 > tls          Transport Layer Security (TLS) options
 > traffic-policy
                Traffic-policy for interface
5600
 set interfaces openvpn vtun0
Possible Completions:
   <Enter>                  Execute the current command
 > auth                     OpenVPN authentication method
 > client-bundle            Generate SSL-VPN Client Bundles
   client-cert-not-required Client certificates not required
   description              Description for the interface
   device-type              OpenVPN interface device-type
   disable                  Interface to be disabled
   encryption               Data encryption algorithm option
 > firewall                 Firewall options
   hash                     Hashing algorithm option
 > ip                       IPv4 parameters
 > ipv6                     IPv6 parameters
   local-address            Local IP address or network address
   local-host               Local IP address to accept connections (all if not set)
   local-port               Local port number to accept connections
   mode                     OpenVPN mode of operation
+  openvpn-option           Additional OpenVPN options
   protocol                 OpenVPN communication protocol
   remote-address           IP address of remote end of tunnel
 > remote-configuration     Configure openvpn remote configuration
+  remote-host              Remote host to connect to (dynamic if not set)
   remote-port              Remote port number to connect to
 > replace-default-route    OpenVPN tunnel to be used as the default route
 > server                   Server-mode options
   shared-secret-key-file   File containing the secret key shared with remote end of tunnel
 > tls                      Transport Layer Security (TLS) options

 

11. conntrack module

vRouter 5400에서는 다음과 같이 conntrak모듈을 사용합니다.

5400
# set system conntrack expect-table-size xxx
# set system conntrack hash-size xxxx
# set system conntrack table-size xxx

 

12. root가되는 방법 / sudo 대해

vRouter 5400에서는 sudo -s 로 암호없이 root 사용자 수있었습니다. 그러나 vRouter 5600에서는 vyatta 사용자가 sudo를 실행할 권한이 없습니다. 이것은 vRouetr5600에 admin보다 더 상위의 권한 수준으로 superuser가 만들어졌기 때문입니다. vRouter 5400 처럼 vyatta 사용자가 sudo를 실행하기 위해서는 superuser로 변경해야 합니다.

5400에서는 admin/operator만 존재함
# set system login user vyatta level 
Possible completions:
   admin        Administrators
   operator     Operators
5600에서는 superuser가 추가됨
# set system login user vyatta level 
Possible Completions:
   admin    
   operator 
   superuser
5600에서 sudo실패 사례(level이 admin일 때)
$ sudo ls -l
[sudo] password for vyatta: 
Sorry, user vyatta is not allowed to execute '/bin/ls -l' as root on vga02.ibm.com.
5600에서 sudo실행 방법
# set system login user vyatta level superuser 
# commit

(ssh의 로그아웃/로그인을 해서 세션을 새로 맺음)
$ show login
login     : vyatta
level     : Superuser
user      : vyatta
groups    :  users adm systemd-journal vyattacfg vyattaadm wireshark
$ sudo ls -l
[sudo] password for vyatta: 
total 4
-rw-r----- 1 vyatta users 402 Jul 21 17:09 id_rsa.pub

그러나 sudo 실행시 비밀번호 입력을 요구하게됩니다. 비밀번호 입력없이 sudo를 실행하기 위해서는 /etc/sudoers를 편집해야 합니다.
시스템 설정을 직접 편집 하는 것은 vRouter의 지원 범위를 벗어나지 만, 아무래도 비밀번호 입력없이 sudo를 실행해야 한다면 다음 단계를 수행하면 됩니다.
(반복하지만 vRouter의 지원 대상에서 제외 되므로 이 변경 작업으로 인한 어떤 문제가 발생하더라도 책임 지지 않습니다!).
재부팅시 설정이 사라지지 않겠지만, 버전 업 등을 행한 경우 이 정보는 유실 되어 재구성이 필요할 수 있습니다.

sudo를 패스워드 없이 실행하는 설정
$ su -
Password:

# visudo
(下記を追記して保存)
vyatta  ALL=(ALL:ALL) NOPASSWD:ALL

# cat /etc/sudoers|grep vyatta
vyatta  ALL=(ALL:ALL) NOPASSWD:ALL

참고 : 버그

  • Version 5.2R5S3 에서 # set system login user vyatta level superuser를 한 번 설정 한 후 다시 # set system login user vyatta level superuser로 admin을 복원해도 $ show login 명령의 출력 결과는 Superuser 상태가되어 버리는 표시 버그가 있습니다.  "Bug ID : VRVDR-37958"로 등록되어 있으며 vRouter 5600 17.2 이상 (Yountville)에서 수정 예정입니다.

 

13. SSL/TLS의 버전

vRouter 5400에서는 TLS1.0 만을 지원하고 있으며, SSLv3, TLS1.1, TLS1.2은 지원하지 않습니다.
vRouter 5600에서는 TLS1.0, TLS1.1, TLS1.2을 지원하고 있으며, SSLv3는 지원하지 않습니다.

 

14. tcpdump

tcpdump를 캡처 할 때 어떤 인터페이스의 통신인지를 확인하는 것이 귀찮을 때 -i any를 사용하는 일이 자주 있습니다.vRouter 5400에서는 그렇게 해도 문제가 없었습니다만,
vRouter 5600에서 -i any 사용은 vRouter가 보낸 패킷은 캡처하고 주는데, vRouter를 통한 패킷(dataplane 이용)은 캡처를 하지 않으므로, 명시적으로 인터페이스를 지정할 필요가 있습니다.

5600에서 vRouter의 끝에 있는 서버에 ping을 쏘고 있어도 로그에 출력되지 않는다.
# tcpdump -D
1..spathintf [Up, Running]
2.dp0s0 [Up, Running]
3.dp0bond0 [Up, Running]
4.dp0s1 [Up, Running]
5.dp0bond1 [Up, Running]
6.dp0vrrp1 [Up, Running]
7.dp0s2 [Up, Running]
8.dp0vrrp2 [Up, Running]
9.dp0s3 [Up, Running]
10.dp0bond1.1438 [Up, Running]
11.dp0bond0.1449 [Up, Running]
12.any (Pseudo-device that captures on all interfaces) [Up, Running]
13.lo [Up, Running, Loopback]
14.nflog (Linux netfilter log (NFLOG) interface)
15.nfqueue (Linux netfilter queue (NFQUEUE) interface)
16.usbmon1 (USB bus number 1)
17.usbmon2 (USB bus number 2)

# tcpdump -i any icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

# tcpdump -i dp0s1 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0s1, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

# tcpdump -i dp0s3 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

5600에서 똑같은 상황에서 인터페이스를 명시적으로 지정한 경우
# tcpdump -i dp0bond1 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0bond1, link-type EN10MB (Ethernet), capture size 262144 bytes
19:06:01.1499973371 IP 126.211.xx.xx > 161.202.121.202: ICMP echo request, id 25179, seq 837, length 64
19:06:01.1499973660 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25179, seq 837, length 64
19:06:01.1499974001 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25179, seq 837, length 64
19:06:01.1499974034 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25179, seq 837, length 64
19:06:02.1500013612 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 838, length 64
19:06:02.1500013922 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 838, length 64
19:06:02.1500014498 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 838, length 64
19:06:02.1500014539 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 838, length 64
19:06:03.1500013463 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 839, length 64
19:06:03.1500013483 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 839, length 64
19:06:03.1500013870 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 839, length 64
19:06:03.1500014086 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 839, length 64
^C
12 packets captured
0 packets received by filter
0 packets dropped by kernel

# tcpdump -i dp0bond1.1438 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0bond1.1438, link-type EN10MB (Ethernet), capture size 262144 bytes
17:08:07.1500209525 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 184, length 64
17:08:07.1500210181 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 184, length 64
17:08:08.1500213757 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 185, length 64
17:08:08.1500214394 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 185, length 64
17:08:09.1500224574 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 186, length 64
17:08:09.1500225213 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 186, length 64
17:08:10.1500219418 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 187, length 64
17:08:10.1500219745 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 187, length 64
^C
8 packets captured
0 packets received by filter
0 packets dropped by kernel


1. 첫번째

본 기사에서는 IBM Cloud (Bluemix Infrastructure / SoftLayer)의 Vyatta Gateway Appliance (vRouter 5400)와 Virtual Router Appliance (vRouter 5600)의 차이를 설명하고, 5400에서 5600으로 마이그레이션 하는 것을 목표로 합니다. 
불행히도 Vyatta Gateway Appliance (vRouter 5400)는

  • 2017 년 9 월 1 일에 EOM (End of Market : 판매 종료)
  • 2018 년 2 월 20 일에 EOS (End of Support : 지원 종료)

됩니다. 공식 마이그레이션 가이드 같은 것은 존재하지 않기 때문에 전반적으로 설명 하기는  어려운 상황입니다.
먼저 마이그레이션전 준비사항에 대해 알아 보겠습니다.
참고 자료 :

2. vRouter5400 / 5600의 차이점 요약

  • vRouter 5400의 후속 버전이 vRouter 5600이지만, 불행히도 설정이 서로 호환 되지 않습니다. 따라서 5400 구성 스크립트를 5600에서 그대로 실행할 수 없습니다. 기본적인 설정 방법은 기존 방법 처럼, Operation Mode와 Configuration Mode를 구분하여 설정합니다.
  • CloudZ IBM Bluemix IaaS는 Portal에서 Vyatta Gateway Appliance (vRouter 5400)를  여러 VLAN을 연결(associated)시킨 후, Routed 모드로  전환하여, 연결 된 VLAN에 대한 라우팅을 Vyatta Gateway Appliance의 VRRP에 할당 된 VIP 통하도록 설정 가능했습니다. 당연히 Virtual Router Appliance (vRouter 5600)에서도 동일 하게 할 수 있습니다.
  • 기존 vRouter 5400은 받은 패킷을 Linux Kernel에서 처리했지만 이것만으로는 10Gbps 같은 고속 NIC환경에서는 인터럽트 처리가 따라잡지 못했습니다. 충분한 성능 상의 혜택을 받기 위해서, vRouter 5600에서는 컨트롤 플레인(전송 경로의 결정)와 데이터 플레인(실제 전송)처리 부분을 분리하고 특히 데이터 플레인에서 Intel DPDK를 이용하고 유저 랜드에서 효율적으로 처리를 목표로 하였습니다. (https://namu.wiki/w/Intel%20DPDK) 따라서 데이터 플레인의 인터페이스가 설치되고, iptables를 이용하지 않는 유저 랜드에서 처리하는 필터링 방식으로 변경되어 있습니다. slideshare에있는 «고성능 가상 Router»Brocade Vyatta 5600 vRouter 아키텍처 개요를 참조하십시오.
  • vRouter의 OS 비용은 vRouter 5400는 $219 로 고정이 였지만, vRouter5600는 다음과 같이 변경되어 있습니다. (기타 비용은 변경되지 않습니다)
    • Single Processor 모델은 $219그대로 동결.
    • Dual Processor 모델은 $399로 증가.
vRouter5400 (VGA)
vyatta @ vga01 : ~ $ show version
Version : VSE6.7R10
Description : Brocade vRouter 5415 6.7 R10
Copyright : 2016 Brocade Communications Systems, Inc.
Built by : autobuild@vyatta.com
Built on : Thu Jan 28 01:12:37 UTC 2016
Build ID : 1601280114-ec94d79
System type : Intel 64bit
Boot via : image
HW model : PIO-628U-TR4T + -ST031
HW S / N : A16640424B01844
HW UUID : 00000000-0000-0000-0000-002590FA8E5C
Uptime : 15:49:23 up 6 days, 21:03, 1 user, load average : 0.07, 0.20, 0.27
vRouter5600 (VRA)
vyatta @ vga02 : ~ $ show version
Version : 5.2R5S3
Description : Brocade Vyatta Network OS 5600 5.2R5S3 Standard License
License : Standard
Built on : Fri Jun 30 13:09:25 UTC 2017
System type : Intel 64bit
Boot via : image
HW model : PIO-628U-TR4T + -ST031
HW S / N : A16640427510214
HW UUID : 00000000-0000-0000-0000-0CC47AD310C0
Uptime : 01:49:12 up 9 min, 1 user, load average : 0.42, 0.46, 0.34

3. 마이그레이션 전략

마이그레이션 전략은 다음의 두가지 방법을 생각할 수 있습니다.

3.1 새로 vRouter 5600을 구축하는 방법.

장점

  • 새로운 환경에서 충분히 테스트 한 후 기존 vRouter 5400에서 VLAN disassociate 후 신규 vRouter 5600에 VLAN associate 함으로써 다운타임을 최소화 하면서 전환 할 수있다.
  • 전환시 문제가 발견된 경우에는 VLAN의 associate / disassociate 만 바꾸어서 즉시 이전 vRouter 5400 환경으로 되돌릴 수있다.

단점

  • vRouter 자신의 IP 주소와 VRRP의 VIP 등의 IP 주소가 변경되어 버린다. 그 결과 vRouter 와 연결된 상대 쪽 VPN 장비 및 On-Prem의 NW 구성 변경이 필요하기 때문에, 만약 이러한 상대 쪽 환경이 존재한다면 영향 범위를 클라우드로만 볼 수 없다.
  • 신규로 프로비저닝한 vRouter 5600과 기존 vRouter 5400의 동시 사용을 위한 과금을 고려해야 한다. (월말 변경 추천)
  • 전환전 Firewall등을 검증 하기 위해 서버 및 스토리지가 필요하다.( 테스트만 사용할 시간 과금 추천)

3.2 기존 vRouter 5400을 직접 OS Reload에서 마이그레이션하는 방법

기존 자원의 OS를 vRouter5400 -> vRouter 5600 로 바꾸는 것은 OS reload (기존 서버에 OS를 다시 설치하는 기능)기능으로 실행 가능하며, 다음 문서에 방법이 나와 있습니다.

장점

  • IP 주소가 변경되지 않는다.
  • 기존 서버를 재사용하기 때문에 추가 요금이 최소 밖에 발생하지 않는다. (OS 라이선스 비용 일할 과금)
  • 기존 서버를 재사용하기 때문에 서버를 새로 주문을 할 필요가 없다.
  • vRouter 5400의 EOM(End of Market)까지는 OS reload를 해서vRouter 5600을 다시 vRouter 5400에 되돌릴수도 있다.
  • 기존 HA로 구성이 되어 있을 경우 Slave 1대만 reload를 해서 vRouter 5400과 vRouter 5600 두개로 VRRP에 따른 HA 구성을 만들 수 있기 때문에, vRouter 5600로 전환하고 본격적인 테스트를 한 후, 문제가 발생하면 vRouter 5400로 되돌릴 수 있다.

단점

  • 서비스 영향을 최소화하기 위한 테스트를 충분히 실시 할 수 없을 가능성이 있다. (특히, HA 구성이 안되어 있는 경우)

vRouter 5400과 vRouter 5600에는 많은 차이가 있기 때문에 사전에 이론적으로 문서상으로만 탁상 공론해서 정리하기는 어렵다고 생각됩니다. 만약 OS Reload으로 전환하더라도 1) vRouter 5600에서 동작 확인을 다른 환경에서 미리 실시하는 것과, 2) 유지 보수 시간을 충분히 마련하여 테스트 시간와 장애시 복구할 시간을 확보해 둔 다음 작업하는 것이 바람직 합니다.


4. 마이그레이션 전에 해 두어야 할 일

4.1 유지 보수 시간의 확보

VLAN의 route / bypass 변경 및 associate / disassociate 중 네트워크 중단이 발생하기 때문에, 이전 하는 동안에 Vyatta 통한 스토리지 액세스 등은 피해야 합니다. 마이그레이션 시간과 테스트 시간, 만일의 경우 복구 시간까지 고려해서  유지 보수 시간을 미리 확보 해 두어야 합니다.

4.2 미리 백업해두기

  • vRouter 5400에서 vRouter 5600은 IBM Cloud에서 OS reload을하여 upgrade 할 수 있습니다. 이때에는 설정 파일은 초기화되어 버리기 때문에 다음 방법등을 이용하여 백업을 해 두어야 합니다. 당연하지만 백업 한 파일은 다른 서버 등으로 복사 해 두십세요.
구성 파일의 백업 방법

#config 파일 백업
$ cp -pr /config/config.boot /config/config.boot_20170601

# tech-support용 파일을 수집한다./config/support/ 아래에 파일이 생성된다
$ show tech-support save
$ generate tech-support archive

  •  Vyatta / VyOS 설정 정보를 그대로 또는 암호 정보를 은폐하고 명령 형식으로 추출하는 방법

4.3 Master / Backup 노드의 확인

두 노드가 MASTER / BACKUP인지 확인합니다. 만약 OS Reload 마이그레이션을 수행 할 때 BACKUP NODE에서 실시합시다.

두 노드가 MASTER / BACKUP인지 확인
$ show vrrp
                                 RFC Addr Last Sync
Interface Group State Compliant Owner Transition Group
--------- ----- ----- --------- ----- ---------- -----
bond0 1 MASTER yes no 10s vgroup1
bond0.1449 1 MASTER no no 10s vgroup1
bond1 1 MASTER yes no 10s vgroup1
bond1.1438 1 MASTER no no 10s vgroup1

MASTER / BACKUP을 전환하기 위해서는 MASTER 노드 측에서 reset vrrp master명령을 실행합니다. 다음 예제는 group 1을 전환 하였을 때의 예이지만, group 2, 3도 마찬가지로 명령을 실행하여 전환 할 수 있습니다.

MASTER / BACKUP 전환
$ reset vrrp master interface bond0 group 1
vrrp group 1 on bond0 is in sync-group vgroup1
Forcing vyatta-bond1-1 to BACKUP ...
Forcing vyatta-bond0-1 to BACKUP ...
Forcing vyatta-bond0.1449-1 to BACKUP ...
Forcing vyatta-bond1.1438-1 to BACKUP ...

$ show vrrp
                                 RFC Addr Last Sync
Interface Group State Compliant Owner Transition Group
--------- ----- ----- --------- ----- ---------- -----
bond0 1 BACKUP yes no 18s vgroup1
bond0.1449 1 BACKUP no no 18s vgroup1
bond1 1 BACKUP yes no 18s vgroup1
bond1.1438 1 BACKUP no no 18s vgroup1


4.4 Preempt 기능 비활성화 및 Priority 값 확인

Preempt 기능을 비활성화하면 1호기에 장애가 생겨서 2호기로 Takeover가 발생한 후, 1호기가 다시 복구되어도 Priority 값(높을수록 우선 순위 높음)과 관계없이 2 호기가 계속 MASTER로 동작합니다. 
반면, Preempt 기능을 활성화하면, 1호기에 장애가 생겨서 2호기에 Takeover가 발생한 후, 1호기가 다시 복구되었을 때 만약 1호기의 Prioirty 값이 높으면 1호기에 다시 FailBack을 합니다. 작업 중에 Priority값이 높은 서버로 자동적으로 돌아가고 싶지 않으면 두 노드에서 Preempt기능은 미리 해제하도록 권장합니다.
※ 원래 Preempt 기능은 VRRP 구성을 하는 두대의 Vyatta에 성능 차이가있을 때 가능한 성능 수치가 높은 노드에서 처리시키는 경우에 유효하지만, 모두 동일한 성능과 기종을 이용한다면 Preempt 기능을 이용하는 것은 별로 의미가 없습니다.

Preeempt 및 Priority 확인
$ show vrrp detail | grep Preempt
  Preempt : disabled
  Preempt : disabled
  Preempt : disabled
  Preempt : disabled

$ run show vrrp detail | grep Priority
  Priority : 254
  Priority : 254
  Priority : 254
  Priority : 254

4.5 Config-Sync 기능 해제 확인

# show system config-sync구성에서 알 수 있듯이 기본적으로 nat, firewall, vpn 구성이 자동으로 동기화되도록 구성되어 있습니다. 만약 vRouter 5400과 5600을 섞어서 구성하면 동기화하려고 됨으로써 시스템이 불안정해질 수 있습니다. 5400과 5600의 구성이 다르기 때문에 서로 동기화하는 것은 의미가 없습니다. 만약 Config-Sync를 수행한다면 두 노드를 5600로 upgrade 후에해야합니다. 마이그레이션 전에 두 노드에서 Config-Sync는 사전에 삭제 해 두어야 합니다.

config-sync 설정 삭제
vyatta @ vga01 # delete system config-sync
vyatta @ vga01 # commit
vyatta @ vga01 # save


IBM Cloud에서 Vyatta을 이용 중이거나 제안중인 분들에게, 체크 해야 할 포인트를 알려드립니다.

Vyatta Gateway Appliance(VGA) 또는 Vyatta 6.x Subscription Edition on Bare Metal Server는 IBM Cloud Bluemix Infrastructure (구 SoftLayer)에서 방화벽 (영역 사이의 필터링)과 암호화 통신 (IPsec VPN) 및 캡슐화 통신 (GRE) 등 에 이용되는 소프트웨어 라우터입니다.
현재 제안 중 · 구축 된 환경에서, Vyatta을 이용되는 분은 꼭 아래의 Q & A를 읽어보십시오.

Q1 : 현재 Vyatta의 End of Support (EOS:지원중지)는 언제인가?

A : 기존 Vyatta은 vRouter 5400을 사용하고 있었습니다. vRoter 5400 개발사인 Brocade 사의 EOS는 2017년 8월로 예정되어 있습니다. IBM Cloud에서의 EOS는 반년 후 2018년 2월 20일 (예정)입니다.
또한 vRouter5400의 EOM이 9/1되었다고 8/1에 발표되었습니다. 이 EOM 이후 vRouter5400이다 Vyatta Gateway Appliance는 새로 주문할 수 없습니다.
http://knowledgelayer.softlayer.com/faqs/1493#7423 (영문)
http://www.brocade.com/en/support/product-end-of-life.html (영문)

Q2 : 현재 Vyatta (vRouter 5400)의 후속 제품은?

A : Virtual Router Appliance (VRA)입니다. vRouter5600를 기반으로 제공되지만 이제 vRouter 5600로 판매되는 AT&T 제품은 없습니다. 하지만 VRA의 기반이되는 vRouter5600 지원은 IBM과 AT&T의 유지 보수 계약에 따라 계속 제공되므로 vRouter5600 자체의 EOS에는 영향을 받지 않습니다. 
자세한 내용은 아래 링크를 참조하십시오.
https://knowledgelayer.softlayer.com/topic/virtual-router-appliance (영문)

Q3 : VRA되면 무엇이 좋아지나요?

A : vRouter 5400는 소프트웨어적인 처리를 많이 사용하고 있기 때문에, 10Gbps NIC의 성능을 살릴 수 없었습니다. VRA의 기반이 되는 vRouter5600는 새로운 암호화 기능과 DPDK 사용으로 인해서 대폭적인 성능 향상이 있습니다.
VGA에서 VRA로 변경했을 때의 구체적인 장점은 다음과 같습니다.

  • CPU 코어 당 처리량 향상
  • Advanced Encryption Standards(AES)에 따른 IPSec VPN 세션 처리량 향상 (최대 3배)
  • Routes, Flows 동시 연결 제한을 확장함
  • Layer2 터널링 프로토콜 Version 3 (L2TPv3) 인터넷 키 교환, Version 2 (IKEv2), Secure Hash Algorithm 2 (SHA-2) 및 802.1Q tunneling (Q-in-Q) 캡슐화 기능을 구현

자세한 내용은 아래 링크를 참조하십시오.
http://knowledgelayer.softlayer.com/procedure/what-improvements-does-brocade-vrouter-5600-have-over-vyatta-5400 (영문)
https://www.slideshare.net/brocade/brocade-vyatta-5600vrouterarchitectureag

Q4 vRouter 5400에서 VRA로 전환상의 주의점은?

A : vRouter 5400에서 사용했던 Customer Portal에서 VLAN Association / Bypass mode / Routed mode 등의 Vyatta Gateway Appliance가 제공하는 라우팅 구조 자체는 바뀌지 않습니다. 즉, 기존과 같은 DMZ 구성 및 VPN 구성을 할 수 있습니다. 
그러나 DPDK를 사용하고 및 기존 내부 아키텍처를 변경함에 따라 인터페이스의 변경 (예 : eth0 -> dp0s0, bond0 -> dp0bond0 등)이나 명령의 변경 (set firewall name xxxx -> set security firewall name xxxx)이 되었고, vRouter 5400 구성 스크립트를 그대로 VRA에서 사용할 수 없습니다. 
또한 Vyatta은 self managed 서비스 이므로, IBM에 의한 자동 전환은 지원 되지 않습니다. 
따라서 이전(migration)을 하기 전에 충분한 검토와 테스트 기간을 두는 것이 좋습니다. 
또한 이전에 따른주의 사항은 아래 "vRouter5400 (Vyatta Gateway Appliance)에서 vRouter5600 (Virtual Router Appliance)로 전환"을 참조하십시오.
(참고 자료)
vRouter5400 (Vyatta Gateway Appliance)에서 vRouter5600 (Virtual Router Appliance)로 전환 (1)
vRouter5400 (Vyatta Gateway Appliance)에서 vRouter5600 (Virtual Router Appliance)로 전환 (2) 

VYATTA 5400 TO VIRTUAL ROUTER APPLIANCE UPGRADE OPTIONS 
http://knowledgelayer.softlayer.com/procedure/learn-about-virtual-router-appliance-upgrade-options (영문)

Brocade 5600 vRouter Software Documentation Library 
http://www.brocade.com/content/html/en/technical-documentation-library/5600-vrouter-50r1-library/GUID-9F13C099-B7E0-4FF9-AC65-5B3CA911E05A-homepage.html (영문)
http://www.brocade.com/content/dam/common/documents/content-types/technical-documentation-library/brocade-5600-vrouter-doc-library-index.pdf (Index PDF)

Q5 : VRA는 어떻게 주문할 수 있나요?

A : 현재 다음의 데이터 센터에서 사용할 수 있습니다.
https://knowledgelayer.softlayer.com/faqs/1495#7461 (영문)

Q6 : VRA의 가격은 얼마인가요?

A : vRouter 5400 OS 라이선스 비용은 $219 이었지만, 

Virtual Router Appliance 5.x (up to 1Gbps) Subscription Edition (64 Bit) [$219.00]

Virtual Router Appliance 5.x (up to 20Gbps) Subscription Edition (64 Bit) [$399.00]


http://knowledgelayer.softlayer.com/faqs/1493#7423 (영문)

Q7 : Early Adapter Program의 알려진 문제점이 있나요?

A : 아래 링크를 참조하십시오. 
또한 현재 Early Adapter Program으로 vRouter5600을 이용하신 고객에 대해서는, OS 다시로드를 사용하여 2017 / 8 / 31까지 vRouter5600에서 VRA 전환을 실시합니다.
http://knowledgelayer.softlayer.com/procedure/please-note-following-about-brocade-vrouter-5600-eap (영문)

Q8 : 현재 구축 된 시스템은 VRA에 언제 이행해야 하나요?

A : 마이그레이션을 위해 충분한 준비 기간이있는 것이 바람직합니다. 따라서 vRouter5400의 EOS 3개월 전인 2017년 11월 이전에 검토를 시작하십시오. EOS를 맞이해도 이용자의 책임으로 계속 작동 할 수 있지만, 보수의 관점에서 EOS의 시기를 목표로 VRA로 전환 할 것을 권장합니다.

CentOS7 HA Cluster 구축 하기

* 요구사항

 - 두대의 Private IP를 가진 서버, 별개의 VIP를 통한 Failover 구성

 - 상기 두개의 서버에서 1개의 공유 스토리지 사용 : Block Storage, GFS2, 100GB/1000IOPS (성능은 맞추어서)

* 아키텍처


* HA 구성을 위한 리소스 구매

- Linux Server 2대 신청 : CentOS 7.x - Minimal Install (64 bit)

==>  svr01.mungi.com  10.178.80.44

==>  svr02.mungi.com  10.178.80.45


- Performance Storage 100GB/1000IOPS 신청

==>  대상 주소 :161.26.102.18

==>  허용서버 추가 (2대)

==>  svr01

   사용자명: IBM01SU1040169-V36035181

   패스워드: Sm99G8pgxSlfH3EG

   호스트 IQN: iqn.2005-05.com.softlayer:IBM01SU1040169-V36035181

==>  svr02

   사용자명: IBM01SU1040169-V29352927

   패스워드: EZlHmrKzNgexS9ar

   호스트 IQN: iqn.2005-05.com.softlayer:IBM01SU1040169-V29352927


- VIP 사용을 위한 Portable Private IP 신청 

==>  10.178.5.230


* iSCSI연결

yum install -y iscsi-initiator-utils device-mapper-multipath


touch /etc/multipath.conf


systemctl start multipathd

systemctl enable multipathd


cp /etc/iscsi/initiatorname.iscsi{,.orig}

vi /etc/iscsi/initiatorname.iscsi #=> CloudZ포털에서 확인한 HOST IQN 값으로 변경


cp /etc/iscsi/iscsid.conf{,.orig}

vi /etc/iscsi/iscsid.conf  #=> 아래 항목을 주석 해제 및 CloudZ 포털에서 확인한 값으로 변경

    node.session.auth.authmethod = CHAP

    node.session.auth.username = "Username-value-from-SL-Portal"

    node.session.auth.password = "Password-value-from-SL-Portal"

    discovery.sendtargets.auth.authmethod = CHAP

    discovery.sendtargets.auth.username = "Username-value-from-SL-Portal"

    discovery.sendtargets.auth.password = "Password-value-from-SL-Portal"


systemctl enable iscsi

systemctl enable iscsid

systemctl start iscsi

systemctl start iscsid

systemctl status iscsid #=> active (running) 인지 확인


iscsiadm -m discovery -t sendtargets -p "161.26.102.18" #=> CloudZ 포털에서 확인한 IP 값으로 변경


iscsiadm -m node -L automatic


multipath -l #=> 아래 처럼 보여야 함



* Cluster 구성

/etc/hosts에 상대 정보 추가

10.178.80.44  svr01.mungi.com svr01

10.178.80.45  svr02.mungi.com svr02


==> VIP

yum install -y corosync pacemaker pcs resource-agents


systemctl start pcsd

systemctl enable pcsd

systemctl enable corosync

systemctl enable pacemaker


passwd hacluster                   #자동생성된 hacluster유저의 패스워드 설정


# --> 여기서 부터는 한쪽에서만 해도 됨.

pcs cluster auth svr01          #인증 계정 적용

pcs cluster auth svr02


# MyCluster 이름의 클러스터를 생성

#해당 클러스터엔 svr01 svr02 두대의 서버가 포함

#데이터 전송은 UDP통신을 사용하도록 설정

pcs cluster setup --start --name MyCluster svr01 svr02 --transport udpu


pcs property set stonith-enabled=false


pcs cluster start --all


pcs status #옵션 정상 구성확인, 계속볼려면 crm_mon



* VIP 클러스터 리소스 설정, Portable Private IP 사용

pcs resource create SVC_VIP IPaddr2 ip=10.178.77.230 cidr_netmask=32 nic=eth0:1 op monitor interval=5s  #사용할 VIP로 설정, 퍼블릭이면 eth1:1



* 스토리지 클러스터 리소스 설정

iscsiadm -m session  #각서버에서 세션 맺어진 것 확인


yum install -y fence-agents-scsi  gfs2-utils  lvm2-cluster


# multipath -l dev id 확인후 3600a098038303743372b4966496d724d 변경

pcs stonith create SCSI-STONITH fence_scsi devices=/dev/mapper/3600a098038303743372b4966496d724d pcmk_monitor_action=metadata  pcmk_reboot_action=off pcmk_host_list="svr01 svr02" meta provides=unfencing


pcs property set stonith-enabled=true

pcs property set no-quorum-policy=ignore

pcs property set default-resource-stickiness=100


#볼륨 매니저 설정

lvmconf --enable-cluster


pcs cluster cib dlm_cfg

pcs -f dlm_cfg resource create dlm ocf:pacemaker:controld op monitor interval=120s on-fail=fence clone interleave=true ordered=true

pcs -f dlm_cfg resource create clvmd ocf:heartbeat:clvm op monitor interval=120s on-fail=fence clone interleave=true ordered=true

pcs -f dlm_cfg constraint order start dlm-clone then clvmd-clone

pcs -f dlm_cfg constraint colocation add clvmd-clone with dlm-clone

pcs -f dlm_cfg property set no-quorum-policy=freeze


pcs -f dlm_cfg constraint

pcs -f dlm_cfg resource show

pcs cluster cib-push dlm_cfg


#디스크 파티션 구성 및 포맷

fdisk /dev/mapper/3600a098038303743372b4966496d724d

  n -> primary -> 계속 엔터, t -> 8e

partprobe /dev/mapper/3600a098038303743372b4966496d724d

pvcreate -ff /dev/mapper/3600a098038303743372b4966496d724d

vgcreate --clustered=y vg_cluster /dev/mapper/3600a098038303743372b4966496d724d


lvcreate -l 100%FREE --name lv_storage vg_cluster

mkfs.gfs2 -j2 -t MyCluster:DataDisk -p lock_dlm /dev/vg_cluster/lv_storage


# 디스크 마운트

mkdir -p /DataDisk  #디렉토리 생성은 양쪽 서버에 수행

pcs resource create ClusterFS Filesystem device="/dev/vg_cluster/lv_storage" directory="/DataDisk" fstype="gfs2" "options=noatime" op monitor interval=10s on-fail=fence clone interleave=true




CentOS 7 기준

사설 - eth0

cp /etc/sysconfig/network-scripts/ifcfg-eth0{,:1}

vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

   DEVICE=eth0:1

   IPADDR=10.178.5.230

   #나머진 그대로.


ifup eth0:1


공인 - eth1

cp /etc/sysconfig/network-scripts/ifcfg-eth1{,:1}

vi /etc/sysconfig/network-scripts/ifcfg-eth1:1

BOOTPROTO=static

DEFROUTE=yes

DEVICE=eth1:1

GATEWAY=169.56.115.25

IPADDR=169.56.115.26

NETMASK=255.255.255.248

ONBOOT=yes

ifup eth1:1


+ Recent posts