3 Tier Architecture
1) 3Tier 아키텍처의 관점
Platform |
Infra |
Web server |
Server |
Web application server |
San Switch |
DB server |
Storage |
아키텍처의 관점에 대한 차이가 있다.
예를 들면, Infra 엔지니어 입장에서의 3tier구조는 server -san - storage다
하지만, 개발자들의 3tier 구조는 web - was - DB 구조로 볼 수 있다.
2) 3Tier 아키텍처 장단점 및 트렌드
|
Platform 3tier |
Infra 3tier |
장점 |
고가용성,업무효율,부하감소 |
확장성, 안정성 |
단점 |
비용증가, 장애관리 |
비용증가, 장애관리 |
트렌트 |
1tier -> 3ter |
3tier -> 1tier |
Infra 분야의 3tier구조의 장점은 확장성이 좋다는 것이다 san을 기점으로 서버를 더 늘린다거나 아니면 스토리지를 더 추가할 수 있다. 반면에 각각 server, storage, switch를 구입해야 하기 때문에 비용적인 측면도 늘어난다는 단점이다.
3) Infra Trend
최근 트렌드는 private cloud가 늘어나면서 3tier 구조에서 1tier 또는 2tier로 전환되는데 그것이 HCI이다.
최근에는 대용량 SSD가 늘어나고 CPU, Memory 등 high-performance가 가능한 서버들이 많아 졌으며 Network도 link-aggregation 및 10G, 40G, 100G등 bandwidth가 커져 1tier 또는 2tier로 가는 추세이다.
즉, 3tier의 경우 관리포인트, 장애포인트 증가 및 비용증가, 고성능 서버로 인해 3tier의 장점이 약화 되었다고 볼 수 있다. HCI로 scale-out도 가능하므로 당연히 확장성도 좋다.
하지만, 빅데이터나 대용량 데이터를 처리 하기 위해서는 전용 스토리지를 사용하는 것이 좋다. 업계에서 가장 많이 쓰이기도 하고 이미 검증된 체계가 잡혀 있기 때문이다. 따라서 용도에 맞게 도입하는 것이 필요하다.
4) Infra 3Tier Architecture 구현
#################### storage(3par 기준) 구성 ##############################
### ssd raid5 CPG 생성 ###
createcpg -ssz 4 -ha mag -t r5 -p -devtype SSD SSD_r5
|
#### create host ####
createhost -persona 1 server1 <svr1_wwn1> < svr1_wwn2> createhost -persona 1 server2 < svr2_wwn1> < svr2_wwn2>
|
#### createvv ####
createvv SSD_r5 ora_data1_R5_10g.0 10g createvv SSD_r5 ora_data2_R5_20g.0 20g
|
#### createvlun ####
createvlun ora_data1_R5_10g.0 1 server1 createvlun ora_data2_R5_20g.0 2 server2
|
######################## san switch 구성 ####################################
#### san1 switch ####
알리아스 생성
alicreate “svr1_p1”,”svr1_wwn1” alicreate “svr2_p1”,”svr2_wwn1” alicreate “stg1_p1”,”stg1_wwn1”
|
조닝 설정
zonecreate " svr1p1_ stg1p1", " svr1_p1; stg1_p1" zonecreate " svr2p1_ stg1p1", " svr2_p1;stg1_p1" cfgadd "sw1_cfg"," svr1p1_ stg1p1; svr2p1_ stg1p1" cfgenable "sw1_cfg" cfgsave |
#### san2 switch ####
알리아스 생성
alicreate “svr1_p2”,”svr1_wwn2” alicreate “svr2_p2”,”svr2_wwn2” alicreate “stg1_p2”,”stg1_wwn2”
|
조닝 설정
zonecreate "svr1_p2_ stg1_p2", "svr1_p2; stg1_p2" zonecreate "svr2_p2_ stg1_p2", "svr2_p2; stg1_p2" cfgadd "sw2_cfg","svr1_p2_ stg1_p2; svr2_p2_ stg1_p2" cfgenable "sw2_cfg" cfgsave
|
###################### server1, server2 node(CentOS) 구성 #######################
wwn확인
# ls –la /sys/class/fc_host #cat /sys/class/fc_host/host1/port_name <svr_wwn>
#cat /proc/scsi/scsi 확인 |
Multipath 다운받기
# yum install -y device-mapper-multipath.x86_64 device-mapper-multipath-libs.x86_64 # mpathconf --enable //컨피그 파일 생성
|
데몬 시작
#systemctl start multipathd #systemctl enable multipathd #systemctl status multipathd |
디바이스 스캔
# find / -name scan // 찾기 # echo “- - -“ > /sys/class/scsi_host/stg/scan
#multipath –ll //커널에 드라이브 로드 확인 mpatha (…) dm-2 COMPELNT,Compellent Vol |
장치확인
#fdisk –l #lsblk
#/lib/udev/scsi_id --page 0x80 --whitelisted --device=/dev/sdX //벤더, 모듈, SN 확인 #/lib/udev/scsi_id --whitelisted --device=/dev/sdX //mpath alias 설정 위해 wwn 확인
#systemctl restart multipathd #multipath -ll
|
멀티패스 설정
# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/
# vi /etc/multipath.conf
defaults { polling_interval 10 user_friendly_names no find_multipaths yes } devices { device { vendor "3PARdata" product "VV" path_grouping_policy group_by_prio #path_selector "round-robin 0" path_selector "service-time 0" path_checker tur features "0" hardware_handler "1 alua" prio alua failback immediate rr_weight uniform no_path_retry 18 rr_min_io_rq 1 detect_prio yes fast_io_fail_tmo 3 dev_loss_tmo 5 } } multipaths {
multipath { wwid <wwid1> alias ora_data1 } multipath { wwid <wwid2> alias ora_data2 }
}
|
멀티패스 재시작 및 확인
# systemctl restart multipathd # multipath -ll ora_data2 (wwid) dm-3 …, size=20G … ….. ….
|
5) 3Tier Architecture
3계층 구조 : 프레젠테이션 로직, 비즈니스 로직, 데이터베이스로직으로 구분
1. Presentation layer
프레젠테이션 계층은 응용 프로그램 최상위 위치하며 서로 다른 계층의 로직과 연동
- 사용자 인터페이스 지원(ex: web)
- Gui, front-end
- 정적 데이터를 제공
- 비즈니스 로직과 데이터관리 로직이 포함되지 않음
- 주로 웹서버로 사용 (ex : apach, nginx, HTML, CSS, JSP, image)
2. Application layer
요청된 정보를 규칙에 의해 데이터를 처리하고 가공하는담당, (동적 데이터를 제공)
- 비즈니스 로직 또는 트랜젝션 계층이라고도 함
- 첫 번째 계층 또는 클라이언트계층에서 바라보기에 서버처럼 동작(응답)하고 세 번째 계층에서는 클라이언트 처럼 동작(요청)함
- 동적 데이터를 제공
- middleware, back-end
- java, PHP, tomcat, Jboss, weblogic등 해당
3. Data layer
데이터 베이스에 엑세스하여 읽거나 쓰는 것을 관리
- 데이터베이스를 의미
- Back-end라고 함
- DB서버를 말함
- Mysql, mariadb 등
6) 3tier Architecture 구현
구성도
동작원리 : client는 web을 접속하면 web데이터를 요청하고 L4 switch를 통해 아파치를 로드밸런싱함.그리고 아파치에서 worker 파일에 정의된 대로 tomcat으로 로드밸런싱하면서 일을 시키고 아파치는 db에 쿼리를 보내 결과값을 받은뒤 아파치로 response 보낸다. 그리고 나서 client에게 web으로 뿌려줌.
WEB 서버, Tomcat, L4에서 이중화를 구현해 놓았으므로 어느 것이 죽어도 서비스는 지속될 수 있다. 또한 DB도 slave로 실시간 복제되므로 master DB가 삭제되어도 slave에서 복구가 가능하다.
다만, 네트웍은 이중화 구성에 예외로 했는데 메모리 리소스로 인해 전체 이중화 구성은 할 수 없었다. 원래는 저렇게 구성하지는 않지만 3계층 구조로 만들기 위해 보기 좋게 구성한 것이다.
###################### Apach1 설정 ############################
호스트네임 설정
#hostnamectl #hostnamectl set-hostname apach1.example.com
|
방화벽 끄기 (test 용이라..)
#Systemctl stop firewalld #Setenforce 0
|
네트워크 설정
# vi /etc/sysconfig/network-script/ifcfg-eth0 BOOTPROTO=static ONBOOT=yes IPADDR=10.10.10.3 NETMASK=255.255.255.0 GATEWAY=10.10.10.100 DNS=8.8.8.8
# vi /etc/sysconfig/network-script/ifcfg-eth1 BOOTPROTO=static ONBOOT=yes IPADDR=20.20.20.1 NETMASK=255.255.255.0
#systemctl restart network
|
###################### Apach2 설정 ############################
호스트네임 설정
#hostnamectl #hostnamectl set-hostname apach2.example.com
|
방화벽 끄기 (test 용이라..)
#Systemctl stop firewalld #Setenforce 0
|
네트워크 설정
# vi /etc/sysconfig/network-script/ifcfg-eth0 BOOTPROTO=static ONBOOT=yes IPADDR=10.10.10.4 NETMASK=255.255.255.0 GATEWAY=10.10.10.100 DNS=8.8.8.8
# vi /etc/sysconfig/network-script/ifcfg-eth1 BOOTPROTO=static ONBOOT=yes IPADDR=20.20.20.2 NETMASK=255.255.255.0
#systemctl restart network
|
###################### Tomcat1 설정 ############################
호스트네임 설정
#hostnamectl #hostnamectl set-hostname tomcat1.example.com
|
방화벽 끄기 (test 용이라..)
#Systemctl stop firewalld #Setenforce 0
|
네트워크 설정
# vi /etc/sysconfig/network-script/ifcfg-eth0 BOOTPROTO=static ONBOOT=yes IPADDR=20.20.20.3 NETMASK=255.255.255.0 GATEWAY=20.20.20.1 DNS=8.8.8.8 # vi /etc/sysconfig/network-script/ifcfg-eth1 BOOTPROTO=static ONBOOT=yes IPADDR=30.30.30.1 NETMASK=255.255.255.0
#systemctl restart network
|
###################### Tomcat2 설정 ############################
호스트네임 설정
#hostnamectl #hostnamectl set-hostname tomcat2.example.com
|
방화벽 끄기 (test 용이라..)
#Systemctl stop firewalld #Setenforce 0
|
네트워크 설정
# vi /etc/sysconfig/network-script/ifcfg-eth0 BOOTPROTO=static ONBOOT=yes IPADDR=20.20.20.4 NETMASK=255.255.255.0 GATEWAY=20.20.20.2 DNS=8.8.8.8
# vi /etc/sysconfig/network-script/ifcfg-eth1 BOOTPROTO=static ONBOOT=yes IPADDR=30.30.30.2 NETMASK=255.255.255.0
#systemctl restart network
|
###################### DB1 설정 ############################
호스트네임 설정
#hostnamectl #hostnamectl set-hostname db1.example.com
|
방화벽 끄기 (test 용이라..)
#Systemctl stop firewalld #Setenforce 0
|
네트워크 설정
# vi /etc/sysconfig/network-script/ifcfg-eth0 BOOTPROTO=static ONBOOT=yes IPADDR=30.30.30.3 NETMASK=255.255.255.0 GATEWAY=30.30.30.1 DNS=8.8.8.8
#systemctl restart network
|
###################### DB2 설정 ############################
호스트네임 설정
#hostnamectl #hostnamectl set-hostname db2.example.com
|
방화벽 끄기 (test 용이라..)
#Systemctl stop firewalld #Setenforce 0
|
네트워크 설정
# vi /etc/sysconfig/network-script/ifcfg-eth0 BOOTPROTO=static ONBOOT=yes IPADDR=30.30.30.4 NETMASK=255.255.255.0 GATEWAY=30.30.30.2 DNS=8.8.8.8
#systemctl restart network
|
###################### ISP router 설정 ############################
네트워크 설정
>en #conf t #int gi0/0 Ip addr 192.168.100.253 255.255.255.0 No sh
#int gi0/1 Ip addr 1.1.1.1 255.255.255.0 No sh
|
라우팅 설정
#Ip route 0.0.0.0 0.0.0.0 192.168.100.108 #Ip route 10.10.10.0 255.255.255.0 1.1.1.100 #Ip route 20.20.20.0 255.255.255.0 1.1.1.100 #Ip route 30.30.30.0 255.255.255.0 1.1.1.100
|
###################### L4 switch 1 설정 ############################
어떤 포트인지 mac 확인
System/general
|
Vlan2 할당된 인터페이스 비움
/Cfg/l2/vlan 2 def 엔터 y
|
2번 인터페이스 vlan 1에 할당
/cfg/l2/vlan 1 add 2 y apply/save
|
인터페이스 설정
/cfg/l3/if 1 addr 20.20.20.1/mask 255.255.255.0/ena apply/save
/cfg/l3/if 2 addr 1.1.1.2/mask 255.255.255.0/ena apply/save
|
게이트웨이 설정
/cfg/ip/gw 1 addr 1.1.1.1 enable apply/save
|
slb 설정
/cfg/slb/real 1 Rip 10.10.10.3 Ena /cfg/slb/real 2 Rip 10.10.10.4 Ena Apply/save
|
Real 서버 그룹핑
/cfg/slb/group 1 Add 1 Add 2 Health tcp Metric Roundrobin Apply/save |
가상ip 세팅
/cfg/slb/vir 1 Vip 10.10.10.10 Ena Service 80 Group 1 Apply/save
|
VRRP 설정
c/cfg/l3/vrrp/on c/cfg/l3/vrrp/vr 1 vrid 1 //id 설정 if 1 //인터페이스 지정 prio 101 //priority 값 설정 addr 10.10.10.100 //vrrp vip 설정 shared dis //active/standby로 명시 track //인터페이스로 트래킹 감시 ifs e enable apply/save
c/cfg/l3/vrrp/vr 2 vrid 2 //id 설정 if 2 //인터페이스 지정 prio 101 //priority 값 설정 addr 1.1.1.100 //vrrp vip 설정 shared dis //active/standby로 명시 track //인터페이스로 트래킹 감시 ifs e //인터페이스 트랙 활성화 enable apply/save
|
###################### L4 switch 2 설정 ############################
어떤 포트인지 mac 확인
System/general
|
Vlan2 할당된 인터페이스 비움
/Cfg/l2/vlan 2 def 엔터 y
|
2번 인터페이스 vlan 1에 할당
/cfg/l2/vlan 1 add 2 y
apply/save |
인터페이스 설정
/cfg/l3/if 1 addr 20.20.20.2/mask 255.255.255.0/ena apply/save
/cfg/l3/if 2 addr 1.1.1.3/mask 255.255.255.0/ena apply/save
|
게이트웨이 설정
/cfg/ip/gw 1 addr 1.1.1.1 enable apply/save
|
slb 설정
/cfg/slb/real 1 Rip 10.10.10.3 Ena /cfg/slb/real 2 Rip 10.10.10.4 Ena Apply/save
|
Real 서버 그룹핑
/cfg/slb/group 1 Add 1 Add 2 Health tcp Metric Roundrobin Apply/save
|
가상ip 세팅
/cfg/slb/vir 1 Vip 10.10.10.10 Ena Service 80 Group 1 Apply/save
|
VRRP 설정
c/cfg/l3/vrrp/on c/cfg/l3/vrrp/vr 1 vrid 1 //id 설정 if 1 //인터페이스 지정 prio 101 //priority 값 설정 addr 10.10.10.100 //vrrp vip 설정 shared dis //active/standby로 명시 track //인터페이스로 트래킹 감시 ifs e enable apply/save
c/cfg/l3/vrrp/vr 2 vrid 2 //id 설정 if 2 //인터페이스 지정 prio 101 //priority 값 설정 addr 1.1.1.100 //vrrp vip 설정 shared dis //active/standby로 명시 track //인터페이스로 트래킹 감시 ifs e //인터페이스 트랙 활성화 enable apply/save
|
################### apach1,2 설정 ##################################
Apach 관련 파일 다운 및 설치
#yum install httpd httpd-devel gcc gcc-c++
#wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
#tar zxvf tomcat-connectors-1.2.46-src.tar.gz #cd tomcat-connectors-1.2.46-src/native/ #./configure --with-apxs=/bin/apxs #make #cd apache-2.0/ #cp mod_jk.so /usr/lib64/httpd/modules/mod_jk.so //해당 소켓으로 tomcat과 통신 #chmod 755 /usr/lib64/httpd/modules/mod_jk.so |
httpd.conf 수정
vi /etc/httpd/conf/httpd.conf …. LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so <IfModule jk_module> JkWorkersFile /etc/httpd/conf/workers.properties //worker 파일 read JkLogFile /var/log/httpd/mod_jk.log //로그 파일 JkLogLevel info //레벨은 info JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" //로그 기록포멧 JkMount /*.jsp loadbalance //확장자 jsp인것들 마운팅 </IfModule> |
Worker.perperies 생성
vi /etc/httpd/conf/workers.properties worker.list=tomcat1,tomcat2,loadbalance
worker.tomcat1.type=ajp13 worker.tomcat1.host=10.10.10.3 // 톰캣1의 ip worker.tomcat1.port=8009 worker.tomcat1.lbfactor=1
worker.tomcat2.type=ajp13 //ajp13 프로토콜로 통신 worker.tomcat2.host=10.10.10.4 // 톰캣2의 ip worker.tomcat2.port=8009 //통신 포트 worker.tomcat2.lbfactor=1 //lb 활성화
worker.loadbalance.type=lb worker.loadbalance.balance_workers=tomcat1,tomcat2 |
################### tomcat 1,2 설정 ##################################
Java 파일 다운 및 설치
#yum -y install java-1.8.0-openjdk-devel.x86_64 #vi /etc/profile JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/ export JAVA_HOME PATH=$PATH:$JAVA_HOME/bin export PATH
#source /etc/profile #java -version |
Tomcat 파일 다운 및 설치
#wget http://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz #tar zxvf apach-tomcat-9.0.41.tar.gz
#mv apache* /usr/local/tomcat9
#cd /usr/local/tomcat9/webapps/
#mkdir park
#vi /usr/local/tomcat9/conf/server.xml /<Host name="localhost" appBase="webapps" 위치있는곳 아래 <Context path="" docBase="park" reloadable="true" /> // jsp파일 가져올 폴더 설정 |
Server.xml 파일 각각 수정
vi /usr/local/tomcat9/conf/server.xml
<connector protocol="AJP/1.3" address="0.0.0.0" secretRequired="false" //ssl 사용안함 port="8009" redirectPort="8443" /> <Engine name="catalina" defaultHost="localhost" jvmRoute="tomcat1"> //tomcat 2에서는 tomcat2로 넣기 |
Park 폴더에 테스트 jsp 파일 생성
#cd /usr/local/tomcat9/webapps/park/
1번서버에서 #vi index.jsp tomcat1
2번 서버에서 #vi index.jsp tomcat2
|
Tomcat restart
#cd ../../bin/ ./shutdown.sh ./startup.sh
#netstat -anlp | grep 8080 //확인 #netstat -anlp | grep 8009 //확인 |
#################### apach 1,2 확인 ###########################
Apach1,2에서 확인
아파치 재시작 #systemctl restart httpd
로그 확인 #cd /etc/httpd/logs/ #cat mod_jk.log 에러 없으면 무사통과
통신안되면 방화벽 확인
|
############################ Client Compute ######################
확인 테스트
Client computer에서 web browser로 확인( chrome, IE 등으로 로드밸런스 확인 http://10.10.10.10/index.jsp 또는 http://10.10.10.10 |
########################## DB-1,2 설정 #############################
Mysql 다운 및 설치
#yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm #yum -y install mysql-community-server #systemctl restart mysqld |
Mysql 초기 암호 설정
#cat /var/log/mysqld.log | grep root@localhost //패스워드 확인 #mysql_secure_installation user root : 패스워드 입력 new password: Root!234 re-enter password : Root!234 estimated strength of the password : 100 change the password for root? y 나머지는 전부 y netstat -anlp | grep 3306 //포트 오픈 확인 |
방화벽 끄기
#systemctl stop firewalld #setenforce 0
|
########################## DB-1 설정 #############################
My.conf 수정
#vi /etc/my.cnf 맨 아래쪽에.. server-id = 1 log-bin = mysql.bin |
Mysql master 설정
systemctl restart mysqld mysql -u root -p
>show master status; 슬레이브 설정시 로그 파일 번호와 포지션 번호 참고
Slave 복제 권한 계정 >GRANT REPLICATION SLAVE ON *.* TO 'park'@'30.30.30.4' IDENTIFIED BY 'park';
확인 >select * from mysql.user where user='park'\G Repl_slave_priv:y 확인
데이터동기화 위한 기존 데이터 백업 다른 사용자 수정못하게 먼저 락 걸어놓음 >FLUSH TABLES WITH READ LOCK; quit |
원본파일 DB-2로 copy
#mysqldump -u root -p --all-databases > dump.db
#scp ./dump.db root@30.30.30.4:/root/ |
########################## DB-2 설정 #############################
My.conf 수정
#vi /etc/my.cnf 맨 아래쪽에.. server-id = 2
|
Mysql slave 설정
systemctl restart mysqld
데이터베이스 파일 넣음 mysql -u root -p < dump.db
mysql -u root -p
원본 번호 맞추기 위해 db-1번 번호 DB-1에서 show master status; 000001 //이번호 확인하기 >change master to -> master_host='30.30.30.3', -> master_user='park', -> master_password='Park!234', ->master_log_file='mysql-bin000001', ->master_log_pos=446;
동기화 시작 >start slave;
|
########################## DB-1 설정 #############################
DB Lock 풀기
>UNLOCK TABLES; |
tomcat에서 접근 가능한 계정 생성
DB-1> CREATE USER 'park'@'%' identified by 'Park!234'; DB-1> GRANT ALL PRIVILEGES ON test.* TO 'park'@'%'; |
########################## DB-1,2 master/slave 테스트 #########################
DB-1에서 db만들어서 테스트 DB-1> create database test; DB-1> use test; DB-1> create table company (name VARCHAR(15), age INT); DB-1> INSERT INTO company VALUES ('kim',22); DB-1> INSERT INTO company VALUES ('choi',41); DB-1> INSERT INTO company VALUES ('lee', 37);
DB-2> show databases; //확인 DB-2> use test; DB-2> select * from company; |
########################### tomcat-1,2 설정 ###############################
Jsp파일 생성
cd /usr/local/tomcat9/webapps/park vi db.jsp <%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> 3tier test </title> </head> <body> <% Connection conn = null; ResultSet rs = null;
String url="jdbc:mysql://[DB서버ip]:3306/test?serverTimezone=UTC"; // db이름:test String id = "park"; //DB 접속 ID String pwd = "Park!234"; // DB 접속 비번
try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, id, pwd); //DB연결 Statement stmt = conn.createStatement();
String sql = "SELECT name FROM company"; //DB name 관련 데이터 변수 설정 rs = stmt.executeQuery(sql); // sql 변수를 쿼리에 실행
while(rs.next()) { out.println(rs.getString("name")); //sql 스트링 값중 name 항목의 데이터 출력 } conn.close(); //DB연결 해제 }catch (Exception e){ //예외사항 처리 e.printStackTrace(); } %> </body> </html> |
Mysql 연결파일 다운 및 설치
#wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.19.tar.gz #tar xzvf mysql-connector-java-8.0.19.tar.gz #cp mysql-connector-java-8.0.19.jar /usr/local/tomcat9/lib/
Tomcat 재시작 #cd ../../bin/shutdown.sh #cd ../../bin/startup.sh |
Client compute에서 확인
http://10.10.10.10/db.jsp
active switch
standby switch
'IT-Infra' 카테고리의 다른 글
무료 DNS 등록 (0) | 2021.02.27 |
---|---|
OSI 7 계층 (0) | 2021.02.07 |
eve-ng L4 switch 설치 (0) | 2021.02.03 |
cisco n7k + hsrp + centos linux + lacp 구성 (0) | 2021.01.15 |
eve-ng linux- 설치 (0) | 2021.01.14 |