2021. 8. 10. 20:11ㆍ잡다한 IT/개발자도 궁금한 IT인프라
L1,L2 등 L 은 layer(계층)의 약자를 의미한다.
L1 LV장비 = repeater, 케이블, dummy hub 등이 대표적이다.
==> PC뒤에 혹은 공유기 뒤에 연결되어있는 케이블
L2 = 스위치switch(엑세스 스위치or 스위칭 hub)
서버워 직접 연결되는 장비, 데이터 링크 계층까지 참조해 송신자의 헤더에 포함된 목적지 mac주소를 확인, 이후 자신의 MAC주소 테이블을 참조해 데이터를 전달한다. hub와의 차이점은 포트별로 다른 속도 제공하며 각각의 포트는 고유의 MAC주소 보유한다.
loop방지란??
네트워크 안에 1개 이상의 스위치가 존재하는 경우 브로드캐스트 스톰(broadcast storm)을 일으키게 되는것을 의미한다.
보통 서버 구성 시 스위치 장비의 장애를 대비하기 위해 스위치를 이중으로 구성하게 됨. 이때 MAC주소를 확인하기 위해 ICMP(internet control message protocol)브로드캐스트가 발생한다. L2헤더에는 IP헤더와 달리 TTL(time to live)가 없기 때문에 다른장비로 전파된 패킷이 계속해서 반복, 재생산이 된다.
hroadcast storm(브로드캐스트 스톰) : 브로드캐스트 패킷이 종료되지 않고 계속 재전파되며 대역폭을 소진하게 되는 현상이다.
==> 이것을 해결하기 위한 방법의 예시로는 STP(spanning tree protocol)가 있다.
스위치중 1개를 termination point(==end point)로 지정해 브로드캐스트가 도착시 강제로 제거==>ACive-standby구조가 되어 대역폭중 절반만 활용되었는데 이를 해결하기 위한 방안으로 MLAG(MC-LAG Multi-chassis Link Aggregation)가 탄생하게 되었다.
MLAG(MC-LAG Multi-chassis Link Aggregation)
물리적으로 분리된 장비를 논리적으로 하나의 장비처럼 인식할 수 있는 Active-Active 구조가 됨. 스위치 발생시 서비스 중단도 없으며 정상적인 상황에서는 두 대의 모든 성능을 활용할 수 있다.
네트워크 카드에서 teaming기능을 지원할 경우 서버가 상단에 연결된 스위치를 동시에 로드벨런싱해 대역폭을 증가 시킬 수 있다.
VLAN(Vitual local Area network)
물리적으로 구분된 여러 개의 LAN구성을 사용 환경에 맞게 논리적으로 확장시키는 기술이다.
subnet 세그먼트를 분리해 별도의 그룹을 만들며 이는 네트워크를 쪼개서 논리적인 브로드캐스트 도메인을 만들기 위한 설계인데 이 설계에 따라 실제 물리 스위치 혹은 포트를 subnet 에 매핑되도록 구성한것이 VLAN이다.
==> 즉 VLAN =브로드캐스트 도매인= 논리적 네트워크=Subnet
물리적으로 구성된 스위치 = 연결된 장비들은 브로드캐스트 도메인을 형성하는데 이때 도메인 내부의 사용자끼리 통신할때 MAC주소를 사용한다. ICMP를 활용해 MAC 주소를 수집 및 전달 ==> 이 스위치는 같은 도메인의 사용자(조직)만 연결해 사용이 가능하다.
만약 1개의 장치를 2개의 조직이 활용해야 할 경우가 발생하면 VLAN을 활용해 논리적으로 구분을 지으며 VLAN지정 시 포트를 각각 지정한다. 이 포트에 연결된 모든 사용자는 같은 VLAN에 소속되어 물리적인 경계가 아닌 논리적인 경계를 가진 네트워크를 구성, 이후 L3스위치를 통해 라우팅 ==> 하드웨어의 파티션 개념과 유사하다.
해당 도메인에만 패킷을 전달하기 위해 스위치 간 Trunk를 통해 패킷에 VLAN Tag를 붙여 송수신한다.
L3 == 스위치, 라우터
L3는 IP를 가지고 서로를 식별한다. 이때 자신에게 패킷이 들어오면 해당 패킷의 네트워크 계층에 포함된 송신자 IP 헤더를 확인한다. 그 안에 있는 목적지 IP 주소를 확인한 뒤 자기가 가지고 있는 routing table을 참고해 해당 패킷을 다음의 위치의 장비로 전달하는 역할을 수행한다.
일반적인 데이터 센터에서는 비용문제로 인해 L3스위치는 서버와 직접적인 연결을 하지 않고 L2혹은 다른 L3스위치와 연결해서 사용한다 ==> backboon switch 대량의 포트를 제공하는 장비를 두고 데이터 센터에 내부 장비 간 라우팅을 처리 한다.
ATM. SONET/SDH, TDM ,Ethernet 등이 존재
ATM ==> Asynchronous transfer mode 회선 교환을 실시간으로 가능하게 하고 패킷 교환을 유연하게 할 수 있는 패킷 교환기술
SONET/SDH ==> synchoronous optical networking and synchoronous digital hierarchy 기가바이트급 이상의 전송속도를 가지는 장거리 유선망의 광케이블 구간에 적용되는 물리 계층 표준 , SONET는 미국, SDH는 유럽
TDM ==> time division multiplexing 전통적인 시분할 통신 방식
Fabric - 이더넷 모듈(라인카드) 슈퍼바이져 등 장비 내부 간의 데이터를 처리 하는 용도
슈퍼바이저 - 장비의 제어를 담당하는 파트
L3 스위치 routing과 router의 차이는 무엇일까?
IP를 routing한다는 측면에서는 같은 역할을 수행을 하지만
일반적으로 router는 비싸고 다양한 통신 모듈을 제공한다. L3는 저렴하며 ethernet만 지원
즉 얼마나 비싸고 많은 모듈이 있는가에 대한 차이다
L4 스위치 (SLB)
L4가 탄생하게 된 배경
여러 대 의서버를 설치해 트래픽을 분산시키자 ==> DNS에 사용하는 서버 전체의 IP를 등록해 round robin방식으로 사용자 요청을 전달하는 방법을하자. ==> DNS는 서버별 성능이나 상태를 확인할 수 없다는 단점이 있네? ==> 시스템 서비스 상태를 모니터링하고 지능적으로 로드밸런싱을 할 수 있는 장비를 만들자!! ==> 짠! L4스위치 탄생
L4스위치의 의 로드밸런싱 방식
1. round robin 시분할 시스템을 위해 설계된 선점형 스케쥴링. 프로세스들 사이에 우선순위를 두지 않고 시간단위로 CPU를 할당하는 방식의 CPU스케쥴링 알고리즘이다.
ex) 4대의 서버가 있을 시 4-3-2-1-1-2-3-4순서로 세션 연결
2. least connection and response time
세션이 적은 서버에 신규로 세션을 연결해 주는 방식과 응답 시간이 빠른 서버에 세션을 연결해 주는 방식이다.
3. hash방식
보편적이며 가장 많이 사용하는 방식이다. client의 IP, 포트 정보를 가지고 고유의 hash key를 생성해 연결하는 방법. 고유의 key를 가지고 있기 때문에 동일 사용자는 동일 서버로 연결 해 줄 수 있다. 단 최초 접속시 서버로 접근되기 때문에 전체서버에 분산되지는 않지만 사용자가 많으면 많을수록 평균적으로 유사한 수의 세션이 분배되어 큰 문제는없다.
L4 즉 TCP의 영역이며 handshaking을 통한 TCP세션 연결과 종료한다.
서버 운영자 Sesion = 개발자 Socket
Sesion - 일정시간 같은 사용자(에플리케이션)로부터 들어오는 일련의 요청을 동일 상태로 보고 그 상태를 유지해주는 '논리적 경로'
Socket - 이 논리적 경로인 세션을 이용하는 물리적 경로
프로그렘 통신 시 스레드(thread)를 통해 소켓을 생성하고 통신이 종료되면 해당 소켓을 닫는다.
Backlog Queue
누가 연결이 되고 있는지 중단을 요청하는지와 같은 관리를 한다.
server(혹은 송신자)가 보낸 SYN기록을 남기고 client(혹은 수신자)의 ACK가 도착했을 때 이것을 본인이 보낸 SYN에 대한 ACK인지 벡로그 큐 에 있는 정보로 확인 하는데 이곳이 가득 차 버리면 정상적인 통신이 불가능 ==> 이것을 이용한 보안공격하는것이 SYN플러팅이다.
여러대의 웹서버를 L4스위치로 묶어서 인터넷 서비스를 구성하는 케이스
1. DNS에 서비스의 URL과 IP를 등록,
2. L4스위치에 웹 서버들의 실제 IP와 서비스 데몬 포트를 등록
3. L4스위치에 서버들 간의 로드밸런싱 정책 결정-RR, LC, RT,Hash 등
'잡다한 IT > 개발자도 궁금한 IT인프라' 카테고리의 다른 글
Storage의 구성요소 part.2(RAID란?) (0) | 2021.09.21 |
---|---|
Storage의 구성요소 part.1(스토리지의 개념과 구성요소) (0) | 2021.09.21 |
X86, 그리고 CPU (0) | 2021.08.11 |
유닉스! (0) | 2021.08.11 |
서버와 메인프레임 (0) | 2021.08.09 |