0429

망지·2022년 4월 29일
1
post-custom-banner

인프라스트럭처와 클라우드 연결연습.(어제)

remote............클라우드처럼 옆에 PC가 내가 빌려 쓸 자원이 됨.

layer 4 전달해주는 기능?
포트를 관리해주는 계층. 그 계층에서 포워드가 일어남(?)
우리는 그동안 L4기능만 이용해왔는데 L7기능을 사용해보자.

두번째 프로젝트
프라이빗 클라우드 관련

[root@web01 ~]# cd /var/log/httpd
[root@web01 httpd]# pwd
/var/log/httpd
[root@web01 httpd]# ls
access_log  error_log

access_log : 어떤 ip가 언제 어떤 브라우저를 통해서 접속했는지?
error_log : 어떤 에러가 났는지

[root@web01 httpd]#cat access_log
10.0.14.1 - - [29/Apr/2022:18:17:24 +0900] "GET / HTTP/1.1" 200 53785 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
10.0.14.1 - - [29/Apr/2022:18:17:37 +0900] "GET / HTTP/1.1" 200 53785 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"

출발지 IP 기록. 10.0.14.1로 됨. 우리는 managerPC로 들어갔는데 그 외부의 IP가 기록되지 않고 내부에서 출발하는 ip로 기록됨.
접속과정 - manager ->외부 랜카드 -> 내부랜카드(10.0.14.1) -> web01

[root@web01 httpd]#cat access_log
10.0.14.1 - - [29/Apr/2022:18:25:49 +0900] "GET /favicon.ico HTTP/1.1" 404 209 "http://nat.lovemj.shop/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0"

-> 같은 웹사이트에 파이어폭스로 접근한 모습. 아까와 달리 'firefox'로 되어있음.
이것을 이용해 각 다른 서버로 이동시킬 수 있음.(L7)
L4는 단순히 포워드를 해주는 역할까지만 했지만 L7은 글을 읽을 수 있고 아이폰이면 어떤 서버로, 파이어폭스면 어떤서버로 이렇게 연결해줄 수 있다.(물론 다른걸 이용해서 이렇게 할 수도 있지만, L7으로도 가능하다~~)
우리는 haproxy 이용해서 기능을 탑재해 볼 것

# vi /etc/haproxy/haproxy.cfg
global
    daemon

defaults
    mode               http

frontend  http-in
    bind *:80 #L4 S/W (TCP Port)
    acl firefox hdr_sub(User-Agent) Firefox # acl ; access control list
    acl trident hdr_sub(User-Agent) Trident #L7 S/W (Contents Swtich)
    default_backend    backend_servers
    use_backend bk_firefox if firefox
    use_backend bk_trident if trident

backend backend_servers
    balance            roundrobin
#    cookie  SVID insert indirect nocache maxlife 10s
    server             web01 10.0.14.2:80 cookie w1 check
    server             web02 10.0.14.5:80 cookie w2 check
    server             web03 10.0.14.4:80 cookie w3 check

backend bk_firefox
    server             web01 10.0.14.2:80
backend bk_trident
    server             web02 10.0.14.5:80

acl ; access control list - 접근 제어 목록
acl firefox hdr_sub(User-Agent) Firefox
=>firefox; 접근제어목록명 (내가 정한거 이거 빼고는 다 정해져있는것) hdr_sub(User-Agent) (컨텐츠)
헤더 까서 user-agent 부분 봐라. 유저데이터 항목 안에 Firefox있으면 포워드 구분시켜주자.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
유저데이터 항목에 인터넷 브라우저가 어떤식으로 기록되는지 확인.

use_backend bk_firefox if firefox
위에 정의한 목록에 firefox만족이 된다면 bk_firefox로 포워드 해주기 위해.

위에 정의한 trident, firefox이외의 사용자가 진입한다면 default backend로 갈 것,,,

우분투에서, index.html 및 php파일 바꿔주었을 때

curl 127.0.0.1
<h1>web02</h1>

이렇게 뜨지만 도메인으로 wordpress웹서버 접속했을 때는 이와 다른 결과를 보임.(워드프레스 화면 그대로 출력)

우리가 설정을

seo@web02:/etc/nginx/sites-enabled$ cd /etc/nginx/sites-available/
seo@web02:/etc/nginx/sites-available$ vi wordpress.conf

여기서 링크로 enabled연결 해주는 식으로 했기 때문.

server {
            listen 80;
            root /var/www/html/wordpress/public_html;
            index index.php index.html;
            server_name nat.lovemj.shop;

여기 server_name nat.lovemj.shop으로 해놔서 이 도메인으로 웹브라우저를 통해서 접근하면 public_html에 index.php화면을 보여줌
근데 curl하면 var/www/html 의 index.html을 보여줘서 다르게 보였던 것.

centOS랑 설정이 여러가지로 다른다는 것 기억해두기!!

프로젝트 2 - 프라이빗(ESXi,Openstack) 퍼블릭(AWS,Azure,GCP,Alibaba) 클라우드 융복합 멀티클라우드 설계 및 구축

ESXi; 유료. 성능 좋음
Openstack ; 무료. 성능 별루.
이건 선택.

퍼블릭은 네가지 다 섞기

프라이빗 퍼블릭- 하이브리드
퍼블릭 여러개 (+프라이빗)- 멀티

컴퓨터 - 윈10x- 바로 하이퍼바이저 설치하는 ..-타입 1
두번째 수준에 게스트os. 단계가 3가지. 수준으로 따지면 1수준,2수준
1- 하이퍼바이저
2- 게스트 os
=>베어메탈
아무것도 설치되어있지 않은 하드웨어에 os없이 바로 하이퍼바이저 설치.
=> 타입1

==> 이걸 구현해볼 것 .(가정을 통해.)

이 구조를 vm으로 만들 것

사실상 크게 보면 이 모양.
(중첩된 가상화. nested virtualization)
ESXi -> 하이퍼바이저.(타입1)

1. ESXi환경 꾸미기

ESXi
CPU : 4C
RAM : 10G(10240mb)
SSD : 128G
NET : Bridge
IMG : VMware_ESXi.iso

  • CPU가상화 (HVM)
    Intel VT -x
    AMD AMD-V
    중첩된 가상화의 경우 이거 체크해야함

Test1234!

192.168.0.248

타입1은 호스트가 esxi자체가 됨
이전에는 윈10 이었음.

관리 -스왑 - 데이터스토어 없음에서 datastore1로 바꿔주기

Security.AccountLockFailures
이거 검색해서 들어가서 시도횟수 0으로 바꿔서 비밀번호 횟수제한 없애기.

VM Linux Spec 4개
CPU : 1C
RAM : 1G
SSD : 100GB(thin)
NET : VM Network(Bridge)
IMG : *.iso

thin(동적할당) - 실제크기 2M~1G, 최대가상크기 100G
thick(고정크기) - 실제 크기 100G(점유)
느리게 : 맨날 잘 청소하는 느낌 (셋팅 시간이 오래걸리지만 성능은 좋음)
빠르게 : 정리 x 그때그때 내가 필요한 만큼만. 급하니까 그 공간만 치우기.(빠르게 포맷 개념.) (빠르지만 성능은 .. 그때그때 비우기 위해 연산이 필요함.)
=>thin으로 만들어야한당!!!
(그렇지 않으면 다음 VM만들지 못할수도있어..)

VM Win 1개 Spec
CPU : 1C
RAM : 2G
SSD : 100G
NET : ?
IMS : *.iso

비디오카드 - 사용자 지정설정 지정
총비디오메모리 128mb로 바꿔주기.

ubuntu 설치

처음에 키보드만 no,
SSD? 저장소 맨 위에 있는 것 설정하고,
덮어씌운거였나 바꾼다였나 그거 yes.
세로로 긴 선택지 많이 나오는 거에서
SSH에 대고 스페이스 누른다음 엔터.
나머지 yes ,continue

->환경설정 이어서

minimal
업데이트하고, selinux 해제.
업데이트 :

yum update -y

네트워크 환경 망도

esxi에서, 탐색기- 네트워킹 - 가상스위치 - 표준가상스위치 추가 - vSwitch1 보안정책 동의 동의 동의

포트그룹 이름 바꾸기.

네트워킹 - 포트그룹 - VM Network이름을 external로 바꾸자.
보안 - vSwitch에 상속 (표준)

포트그룹 추가 - 이름 INTERNAL -가상 스위치 드랍다운해서 vSwitch1으로 바꿔주기.

VM(centOS7)복제하기

스토리지- 데이터스토어브라우저 - 디렉토리 생성 - 이름 : web01
-디렉토리 생성버튼 클릭 - centOS7 미니멀 폴더 진입 - vmx(&vmdk) 오른쪽버튼클릭- 복사- web01선택

가상시스템-centOS7minimal 이름변경 - NAT G/W_DHCP_HAproxy_NS

가상시스템 - VM 생성/등록 - 기존가상시스템등록 - 하나 이상의 ~ 선택합니다. - 아까 생성한 web01 폴더 들어가서 vmx파일 선택. - 체크박스 선택 - 다음 - 완료. =>이름변경 통해서 WEB01로 바꿔주기.

복사한 VM실행할 때 이동함 x, 복사함o.

=====> 위 과정을 (파일명 DB_SAMBA_NFS)로 반복

VM서버 이름 설정

NAT GW_DHCP_HAproxy_NS(CentOS7)
WEB02(ubuntu18)
WEB03(win2012)
WEB01(CentOS7)
DB_NFS_SAMBA(CentOS7)

=>이어서 설정계속

가상시스템 - NAT GW_DHCP_HAproxy_NS(CentOS7) 오른쪽버튼 클릭 - 설정편집 - 네트워크어댑터 1 - external로 선택
그리고,
나머지들 맨 위 상단 네트워크 어댑터 추가 - 새 네트워크어댑터 - internal
=>잘 안되면 끊임없이 시도 ..^^
윈도우2012의 경우 169.254.~로 받으면 ip못받은 것.

mobaxterm 진입 -local에서,
nat로 예전에 만들어둔 키 전송하고 수업 마침!!!!

$cd .ssh
$ssh-copy-id -i id_rsa.pub root@192.168.0.13

profile
꾸준히, 차근차근
post-custom-banner

0개의 댓글