VRF

https://www.estsecurity.com/securityCenter/commonSense/view/1301


PC일반

 

VRF(Virtual Routing and Forwarding)란 무엇인가요?

2017-04-24

인터넷 프로토콜 기반의 네트워크에서의 가상 라우팅과 포워딩(VRF)이란 하나의 라우터를 여러 개 가상 라우팅 도메인으로 나누어, 하나의 물리적 네트워크를 여러 개 프로토콜을 가진 논리적 네트워크로 구성하는 ‘네트워크 가상화’를 제공하는 기술입니다.


각 라우팅 인스턴스들이 독립적이기 때문에 동일한 또는 오버래핑된 IP 주소들이 충돌하지 않고 사용될 수 있으며, 네트워크 경로가 라우터에 의해 별도의 가상 네트워크로 분리되므로 네트워크 보안이 향상됩니다.


또한 이 기술을 통해 인터넷 서비스 제공자는 별도의 VPN을 제공할 수도 있습니다.


Softlayer의 글로벌 IP는 40개 DC 어디에 있는 서버에 라도 할당 가능하다. 
서버를 다른 DC에 지정할 경우 30초~1분가량 후 바로 이전 된다. 
사용자는 가장 가까운 센터로 접속하고 이후 라우팅은 Softlayer 내부망을 사용하기 때문에 글로벌 네트워크 가속 효과가 있다. 
(단, 사용자->서버만 그렇하며, 서버->사용자 는 일반 Routing과 동일하다. Softlayer는 서버의 DC는 알지만, 사용자 위치는 모르므로 당연하다. ) 

1. 포털에서 Global IP를 구매한다. 
2. Global IP메뉴에서 가서 Global IP를 할당할 서버를 지정한다. 
3. 해당 서버로 로그인 해서 해당 IP를 eth1 서브 인터페이스로 추가한다.


SuperMicro 보드 Turbo Boost 켜기

https://www.supermicro.com/support/faqs/faq.cfm?faq=21555

Question
How do I enable Turbo mode to get the maximum Turbo mode speed on my X10DRi motherboard?
Answer
Please make sure the following settings are correct:

1. Please make sure all cores are enabled: Advanced >> CPU Configuration >> Core enabled >> “0” to enable all cores.


2. Under the Bios setup go to: Advanced >> CPU Configuration >> Advanced Power Management and make sure the setting are as follows: 
Power Technology >> Custom

Energy performance Tuning >> disable

Energy performance BIAS setting >> performance

Energy efficient turbo >> disable


3. Then go to Advanced >> CPU Configuration >> Advanced Power Management >> CPU P state control and make sure the settings are as follows 
EIST (P-States) >> Enable

Turbo mode >> enable

P-state coordination >> HW_ALL


4. Then Advanced >> CPU Configuration >> Advanced Power Management >> CPU C state control and make sure the setting are as follows. 
Package C-state limit >> C0/C1 state

CPU C3 Report >>disable

CPU C6 report >> enable

Enhanced Halt state >> disable





5. Save the changes and exit and now you should be able to get the Max Turbo mode speed. 



Lenovo는 디폴트 ON임.

nginx에서 Lua 쓸 일이 생겨서 OpenResty를 그냥 사용하기로 했다.

CentOS7

yum install -y yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
yum install -y openresty
systemctl enable openresty
systemctl start openresty

Ubuntu

wget -qO - https://openresty.org/package/pubkey.gpg | apt-key add - ( ubuntu)
apt install -y software-properties-common
add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" (ubuntu)
apt update



테스트 서버 스펙 Intel Xeon Gold 6140 : 18Core CPU x 2 EA = 18 core x 2 hyperthread x 2 EA = 72 Logical Processers

4가지 케이스

loop.vbs : 무한루프를 돌려서 CPU 100%를 만드는 프로세스

numa.cmd : 개수를 입력 받아 그 수만큼 서버의 numa 별로 프로세스를 실행하는 배치파일


시나리오 

  • 36개 프로세스 실행 + numa 분배 없이 실행 =>  numa 쏠림 현상 발생
  • 36개 프로세스 실행 + numa 분배 하면서 실행 =>  numa 쏠림 없음
  • 72개 프로세스 실행 + numa 분배 없이 실행 =>  numa 쏠림 현상 발생, Application 지연 발생
  • 72개 프로세스 실행 + numa 분배 하면서 실행 =>  numa 쏠림 없음, Application 지연 없음.


32개 

loop.vbs
While True
Wend
numa.cmd
@echo off
if defined verbose echo on 
setlocal enableextensions enabledelayedexpansion

if "%1"=="" (
     echo Usage: %0 ^
     goto end
) else (
     set ProcessCount=%1
)

set /a ProcessCountMinusOne=%ProcessCount% - 1
set /a NumberOfNumaNodes=%HighestNumaNodeNumber% + 1
set end=%ProcessCountMinusOne%

for /L %%p in (0, 1, %end%) do (
     set /a node=%%p %% %NumberOfNumaNodes%
echo start /node !node! cscript loop.vbs
     start /node !node! cscript loop.vbs
)
:end


'Cloud > Softlayer' 카테고리의 다른 글

Global IP setting  (0) 2018.07.08
SuperMicro 보드 Turbo Boost 켜기  (0) 2018.06.28
Numa 불균형 테스트 해보기  (0) 2018.06.17
NAT 서버 설정 - CentOS 7기준  (0) 2018.06.03
ICOS를 Linux file system에 마운트 해보기  (0) 2018.05.25
Softlayer BIOS Performance Setting  (0) 2018.05.15

userdata가 든 파일명이 user-data.web이라면


간단하게는  

user_data = "${file('user-data.web')}"

혹시, 작은 따옴표건으로 에러가 난다면 아래처럼 큰 따옴표로 바꿔본다. (신기하게도 난 아래게 정상 동작했다)

user_data = "${file("user-data.web")}"

terraform plan을 해보면 실제 파일의 내용이 대신 들어가 있다. 


복잡하게는 

resource "template_file" "web-userdata" {
    filename = "user-data.web"
}
resource "aws_launch_configuration" "webfarm" {
    name = "web_config"
    image_id = "ami-c5b7d8b2"
    instance_type = "t2.micro"
    security_groups = ["${aws_security_group.web-instance.id}"]
    user_data = "${template_file.web-userdata.rendered}"
}


'Cloud' 카테고리의 다른 글

Terraform에서 user_data를 파일로 지정하고 싶을 때  (0) 2018.06.14
cloud-init example  (0) 2018.06.13
Magic Quadrant for IaaS, Worldwide  (0) 2018.05.29

https://github.com/cloud-init/cloud-init/tree/master/doc/examples

https://cloudinit.readthedocs.io/en/latest/topics/examples.html

#cloud-config
package_upgrade: true
packages:
  - httpd


#cloud-config
package_update: true
package_upgrade: all

packages:
 - httpd24
 - php56
 - mysql55-server
 - php56-mysqlnd

runcmd:
 - service httpd start
 - chkconfig httpd on
 - groupadd www
 - [ sh, -c, "usermod -a -G www ec2-user" ]
 - [ sh, -c, "chown -R root:www /var/www" ]
 - chmod 2775 /var/www
 - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, + ]
 - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, + ]
 - [ sh, -c, 'echo "" > /var/www/html/phpinfo.php' ]


#cloud-config
 power_state:
   delay: "+30"
   mode: poweroff
   message: Bye Bye
   timeout: 30
   condition: True


#cloud-config
runcmd:
 - [ sh, -c, 'echo ==== $(date) ====; echo HI WORLD; echo =======' ]


'Cloud' 카테고리의 다른 글

Terraform에서 user_data를 파일로 지정하고 싶을 때  (0) 2018.06.14
cloud-init example  (0) 2018.06.13
Magic Quadrant for IaaS, Worldwide  (0) 2018.05.29
NAT

기본 권장 아키텍처는

일반적으로 서버는 모두 사설 IP 대역에 두고,

서비스가 필요한 부분은 Cloud LB를 통해서 외부와 연결 하기를 권장합니다.

꼭 Public IP가 필요한 경우는, Public IP를 부여해도 되고, NAT 서버에서 Secondary IP를 할당 해서 1:1 NAT를 해주면 됩니다. 


본 글은 일반적인 NAT 서버 구성방법과, 서버내에 기본 라우팅을 바꾸는 법을 설명합니다. (간단합니다)

서버는 NAT 서버, 일반 서버 두대로 가정합니다.
[NAT 서버] PublicIP: 169.56.100.5 PrivateIP: 10.178.100.10

NAT 서버를 먼저 설정해 봅니다.

# 1. NAT 서비스를 해줄 방화벽 서비스를 활성화 하고
systemctl enable firewalld
systemctl start firewalld

# 2. 커널에서 IP 패킷 포워딩을 허용 해 줍니다.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/ip_forward.conf
sysctl -p /etc/sysctl.d/ip_forward.conf

# 3. 방화벽에서 NAT MASQUERADE 설정을 할고, 설정을 반영합니다.
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth1 -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o eth1 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
firewall-cmd --reload

[일반 사설 IP만 있는 서버] PrivateIP:10.178.100.20
디폴트 라우팅만 NAT서버로 바꾸어 주면 됩니다. (AWS의 경우 라우팅 테이블을 바꾸면 되므로, 이런 걸 해 줄 필요가 없죠.)
다만 사전에 10.0.0.0/8은 원래 Default Gateway를 잘 바라보고 있는지 확인합니다. (없으면 추가 필요)

#변경 전 
[root@tf-vm ~]# ip route
default via 10.178.100.1 dev eth0
10.0.0.0/8 via 10.178.100.1 dev eth0
10.178.100.0/25 dev eth0 proto kernel scope link src 10.178.100.20
161.26.0.0/16 via 10.178.100.1 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002

#변경 후
[root@tf-vm ~]# ip route change default via 10.178.100.10
[root@tf-vm ~]# ip route
default via 10.178.100.10 dev eth0
10.0.0.0/8 via 10.178.100.1 dev eth0
10.178.100.0/25 dev eth0 proto kernel scope link src 10.178.100.20
161.26.0.0/16 via 10.178.100.1 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002

# 외부 접속이 가능한지, 그리고 외부로 나갈때 사용되는 IP를 확인해보면, NAT서버의 PublicIP를 사용함을 확인 할 수 있습니다.
[root@tf-vm ~]# curl whatismyip.akamai.com
169.56.100.5

이제 사설 IP만 있는 서버에서도 외부 Repo를 통해 업데이트를 하실 수 있습니다.


https 디버깅할려니 필요해서..

출처: https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html

Adding trusted root certificates to the server

If you want to send or receive messages signed by root authorities and these authorities are not installed on the server, you must add a trusted root certificatemanually.

Use the following steps to add or remove trusted root certificates to/from a server.

Mac OS X

FunctionMethod
Add

Use command:

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/new-root-certificate.crt

Remove

Use command:

sudo security delete-certificate -c "<name of existing certificate>"

Windows

FunctionMethod
Add

Use command:

certutil -addstore -f "ROOT" new-root-certificate.crt

Remove

Use command:

certutil -delstore "ROOT" serial-number-hex

Linux (Ubuntu, Debian)

FunctionMethod
Add
  1. Copy your CA to dir /usr/local/share/ca-certificates/
  2. Use command: sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
  3. Update the CA store: sudo update-ca-certificates
Remove
  1. Remove your CA.
  2. Update the CA store: sudo update-ca-certificates --fresh

NOTE

Restart Kerio Connect to reload the certificates in the 32-bit versions or Debian 7.

Linux (CentOs 6)

FunctionMethod
Add
  1. Install the ca-certificates package: yum install ca-certificates
  2. Enable the dynamic CA configuration feature: update-ca-trust force-enable
  3. Add it as a new file to /etc/pki/ca-trust/source/anchors/: cp foo.crt /etc/pki/ca-trust/source/anchors/
  4. Use command: update-ca-trust extract

NOTE

Restart Kerio Connect to reload the certificates in the 32-bit version.

Linux (CentOs 5)

FunctionMethod
Add

Append your trusted certificate to file /etc/pki/tls/certs/ca-bundle.crt

cat foo.crt >>/etc/pki/tls/certs/ca-bundle.crt

NOTE

Restart Kerio Connect to reload the certificates in the 32-bit version.



IBM은 2017 회복하려 했으나... 완전 추락..

2018은 구글이 재도약, 

알리바바, IBM, Oracle Niche로 밀려남.


Leaders : AWS, MS, Google 그냥 3강체계

Niche : IBM , Oracle , Alibaba Cloud 


Magic Quadrant for Cloud Infrastructure as a Service, Worldwide


'Cloud' 카테고리의 다른 글

Terraform에서 user_data를 파일로 지정하고 싶을 때  (0) 2018.06.14
cloud-init example  (0) 2018.06.13
Magic Quadrant for IaaS, Worldwide  (0) 2018.05.29

+ Recent posts