인프라스트럭처와 클라우드 연결연습.(어제)
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
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으로 바꿔주기.
스토리지- 데이터스토어브라우저 - 디렉토리 생성 - 이름 : web01
-디렉토리 생성버튼 클릭 - centOS7 미니멀 폴더 진입 - vmx(&vmdk) 오른쪽버튼클릭- 복사- web01선택
가상시스템-centOS7minimal 이름변경 - NAT G/W_DHCP_HAproxy_NS
가상시스템 - VM 생성/등록 - 기존가상시스템등록 - 하나 이상의 ~ 선택합니다. - 아까 생성한 web01 폴더 들어가서 vmx파일 선택. - 체크박스 선택 - 다음 - 완료. =>이름변경 통해서 WEB01로 바꿔주기.
복사한 VM실행할 때 이동함 x, 복사함o.
=====> 위 과정을 (파일명 DB_SAMBA_NFS)로 반복
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