OSI 7 계층(OSI 7 Layer)이란?
OSI 7 계층이란, 물리 인프라부터 서비스 애플리케이션까지의 각 계층을 7단계로 표준화한 것이다.
[ OSI 7 Layer ]
L1 - 물리 계층
L2 - 데이터 링크 계층
L3 - 네트워크 계층
L4 - 전송 계층
L5 - 세션 계층
L6 - 표현 계층
L7 - 응용 계층
1. 물리 계층
IT 서비스를 위해서는 먼저 물리 서버, 물리 스위치 간에 케이블이 연결되어 있어야 한다. 이 물리 장비와 케이블이 데이터가 송수신되기 위한 가장 근본이 되는 장비다.
물리 장비 간에 케이블을 연결했으면 케이블이 정상적으로 연결되었는지 확인한다. 보통 이상이 없으면 서버와 스위치에 포트를 꼽은 자리에 불빛이 들어온다.
2. 데이터 링크 계층
서버 간 통신을 위해 각 서버에 고유 IP 주소를 할당한다. IP 구성이 완료되면 가장 먼저 게이트웨이(Gateway) 또는 같은 네트워크 대역의 IP를 하나 정해서 ping 테스트를 한다.
만약 통신이 안되면, L2 스위치에 Gateway IP, VLAN ID 등의 설정이 올바르게 되었는지 확인한다.
현장에서 같은 네트워크 대역을 L2(엘투) 구간이라고 하는데, 여기서 가져온 용어다.
3. 네트워크 계층
L2 구간에서 통신되는 것을 확인했으면 L3 구간에도 ping 테스트를 한다. L3 구간이란, 같은 대역을 벗어나 다른 대역에 해당하는 구간이다.
L3 구간 통신이 안되면, L3 스위치나 라우터 단에서 라우팅 설정이 올바르게 되었는지 확인한다.
4. 전송 계층
전송 계층에서는 포트라는 개념이 사용된다.
각 서비스는 데이터를 송수신할 때 지정된 통로가 있다. 이 통로가 바로 포트 번호다. 포트 번호는 0 ~ 65535 중 하나의 숫자로 구성된다.
22번에 해당하는 ssh 서비스는 22번 포트를 통해서만 데이터가 송수신되고, 53번에 해당하는 dns 서비스는 53번 포트를 통해서 데이터가 송수신된다.
이처럼 4계층에는 서비스와 포트 번호를 구분하고, 해당 데이터를 각 포트(통로)로 포워딩해주는 장비가 필요하다. 현장에서는 L4 로드밸런서(LB) 또는 방화벽이 이에 해당한다.
일반적으로 L2 간에는 방화벽이 없다. 그래서 운영체제 내에서 자체 방화벽(Windows 방화벽, Linux firewalld 등)을 설정하지 않는 이상 웬만한 서비스는 막힘 없이 잘 돌아간다.
그런데 똑같은 구성인데 같은 대역에서는 잘 되고, 다른 대역에서는 안 된다면 L4 장비를 의심해야 한다. 대부분의 경우에는 A 대역과 B 대역 간에 방화벽이 있어서, 모든 서비스 포트를 Deny(거부)해서 발생한다. 이런 경우에는 해당 서비스 포트에 대해 방화벽에서 Allow(허용) 설정을 해야 데이터 송수신이 정상적으로 이뤄진다.
L4 로드밸런서도 이와 비슷하다. 만약 VIP(가상 IP)를 사용하는 서비스인데, Real IP에서는 잘 되고, Virtual IP에서는 안 된다면 마찬가지로 L4 장비인 로드밸런서를 의심해야 한다.
보통 L4 로드밸런서에서 설정이 잘못되었거나, 방화벽에서 Real IP에 대한 흐름은 Allow를 했지만, Virtual IP에 대한 Allow 설정은 누락한 경우가 많다.
(만약 같은 대역에서도 서비스가 안 된다면 그건 L7 응용 계층을 봐야 된다. 그건 애플리케이션 단에서 서비스가 아예 닫혀있거나 제대로 구성이 안 된 것이다.)
5. 세션 계층
4계층까지는 서버 간에 데이터가 송수신되기까지의 절차였다. 5계층부터는 서버가 받은 데이터를 어떤 방식으로 처리하는가에 대한 절차다.
세션 계층은 서버와 서버 간의 연결이다. 이 연결은 주로 인증을 통해 이뤄진다. 서버로 로그인, 서버와 솔루션 간 연계/연동 작업은 모두 서버에 대한 인증이 필요한 작업이며, 세션 계층에서 동작하는 작업니다.
그리고 인증이 완료되면 서버 간에 데이터를 교환하면서 상호 동기화가 시작된다. 즉, 세션 계층은 서버 간 인증, 연결 및 동기화 작업을 관리한다.
6. 표현 계층
표현 계층은 5계층과 7계층 사이에서 데이터를 번역해주는 역할을 한다.
5계층까지는 시스템 언어로 데이터가 전송되는 절차였고, 7계층에서는 실제 사용자들이 그 데이터를 보게 된다. 하지만 사용자들은 시스템 언어를 사용자 언어로 간단히 번역하지 못 한다.
그래서 표현 계층이 암호화/복호화 기능, 인코딩/디코딩 기능 등을 이용하여 번역을 해준다.
반대로 사용자 언어를 시스템 언어로 변환해서 시스템이 읽을 수 있도록 번역해주기도 한다.
7. 응용 계층
응용 계층은 사용자들이 실제로 사용하는 계층이다. 서버나 운영체제 안에서 발생하는 모든 작업, 서비스들이 다 응용 계층에 해당한다.
OSI 7 계층 요약
OSI 7 계층은 그냥 이론이 아니다. 이걸 잘 이해하면 IT 운영 중 장애 발생 시, 원인을 보다 쉽게 파악할 수 있다.
서비스 장애가 발생했으면,
1. 먼저 육안으로 물리 장비 상태를 점검한다. 서버가 다운되어 있으면 서버를 다시 켜고, 케이블 불빛이 안 들어오면 케이블을 교체한다.
2. 같은 대역에서 장애 발생한 서버로 ping 테스트를 한다. ping이 안 나가면 L2 스위치를 점검하거나 IP 충돌이 발생한 건 아닌지 확인한다.
3. 다른 대역에서 장애 발생한 서버로 ping 테스트를 한다. ping이 안 나가면 L3 스위치나 라우터를 점검하여 라우팅 설정 및 테이블 상태를 확인한다.
4. telnet이나 netcat(nc) 명령어로 TCP/UDP 포트가 열렸는지 확인한다. 연결이 안 되면 방화벽이나 L4 로드밸런서를 점검한다.
5. 서비스에 접근 시도 시 연결이 안 되면 ID나 패스워드/토큰 등의 인증 관련 정보가 변경, 잠금, 만료되었는지 확인한다.
6. 보안 감사나 패치 등의 이유로 TLS 버전이 변경되었는지, SSL 인증서가 만료되었는지 확인한다.
7. 마지막으로 운영체제나 애플리케이션단에서 설정 부분에 이상이 없는지 점검한다.
IT 시스템의 장애 상황은 대부분 위의 절차를 벗어나지 않는다. 대부분 원인은 이 안에 있다.
'IT 정보 > 네트워크' 카테고리의 다른 글
네트워크 - 포트 미러링(Port Mirroring) 용어 설명 (0) | 2023.09.23 |
---|---|
네트워크 - 로드 밸런서, L4/L7 로드 밸런서 용어 설명 (0) | 2023.06.25 |
네트워크 - 멀티캐스트, 유니캐스트, 브로드캐스트 용어 설명 (0) | 2023.06.16 |
네트워크 - 라우팅 테이블 / 정적 라우팅 / 동적 라우팅 차이 및 용어 설명 (0) | 2023.06.13 |
네트워크 - DMZ 용어 설명 (0) | 2023.06.04 |
댓글