일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- L2 통신
- 메가바이트스쿨
- MegabyteSchool
- MariaDB
- RDB
- ARP
- systemd-resolved
- CoreDNS
- linux dns
- 내일배움카드
- 127.0.0.53
- Spring boot
- PVC
- PV
- 패스트캠퍼스
- reclaim
- linux domain
- ssh tunneling
- 국비지원교육
- dns forward
- Layer 2
- k8s
- DNS
- L2 통작
- 개발자취업부트캠프
- Today
- Total
hoonii2
[Network] 02. L2 통신의 기초 본문
1. L2 통신
- L2 에서 가장 많이 사용되는 프로토콜은 Ethernet 이다.
- Ethernet 을 이해하면 일반적인 L2 통신을 이해할 수 있다.
2. Ethernet 의 헤더 구조
- 아래는 실제 L2 프레임 (L2 통신 단위로, L3 통신 단위는 패킷) 에 삽입되는 헤더이다.
- 위 구조에서 중요한건 아래와 같다.
- DA (Destination Address) : 목적지 Mac 주소로 6byte 이다.
- SA (Source Address) : 출발지 Mac 주소로 6byte 이다.
- Data : L2 이후 L3 ~ L7 까지의 데이터가 위치한다.
3. L2 통신의 의미
1) L2 통신은 출발지 / 목적지 IP 가 동일한 네트워크 대역에 속한다.
- 이더넷 헤더엔 IP 가 포함도 안되는데 왠 IP 라고 생각할 수 있지만 뒤에 나오는 핵심인 ARP 를 위해 간단한 이해가 필요하다.
- 동일 네트워크 대역이란?
: 이는 PC 의 커맨드 라인에서 'ipconfig' 나 'ifconfig' 를 입력하면 윈도우의 경우 아래처럼 나오는걸 확인할 수 있다.
여기서 우리는 IPv4 주소 (192.168.0.6) 와 서브넷 마스크 주소 (255.255.255.0) 를 확인할 수 있다.
해당 주소들을 bit 단위로 변환하면 아래와 같다.
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | . | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | . | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | . | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | . | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | . | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | . | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
위는 IPv4 이고 아래는 서브넷 주소로, 서브넷 주소가 '1' 인 범위까지가 네트워크 주소, 그 뒤는 호스트 주소로 부른다.
네트워크 주소가 같다면 동일 네트워크 대역으로 동작한다.
즉, 192.168.0.6/255.255.255.0 과 192.168.0.254/255.255.255.0 는 동일 네트워크 대역이며, 이 들간의 통신은 L2 통신으로 동작한다.
2) ARP 의 동작 유무
- ARP 란?
: 우리는 상대방의 IP 주소를 알고 통신을 한다.
예를 들면 웹사이트에서 'naver.com' 으로 접속을 시도하면 DNS 서버에 DNS 쿼리를 통해 해당 도메인 주소에 매핑된 IP 주소를 알아내고 이를 목적지 주소로 지정하고 HTTP 통신을 시도한다.
우리가 TCP/IP 주소를 이용하는 서비스의 대부분이 은연중에 목적지 IP 주소가 지정되는 것이다. (사용자는 몰라도)
중요한건 우리가 상대방의 IP 주소는 알고 있지만 Ethernet 헤더를 만들기 위해 사용되는 MAC 주소는 알 수 있는 방법이 없다는 것이다.
그래서 사용되는 것이 ARP (Address Resolution Protocol) 이다. ARP 의 헤더 구조는 아래와 같다.
- Source hardware : 출발지 MAC 주소 / Source Protocol : 출발지 IP 주소
- Target hardware : 목적지 MAC 주소 / Target Protocol : 목적지 IP 주소
4. L2 통신 동작
- PC_A (192.168.0.1) -> PC_B (192.168.0.254) 간에 통신을 하는 경우 PC_A 는 PC_B 의 IP 주소는 알지만 MAC 주소는 모르기에 L2 헤더를 채울 수 없어 ARP Request 를 진행한다.
- 이 때 Target protocol 필드에 상대 IP 주소를, Target hardware 필드에 FF:FF:FF:FF:FF:FF 로 보내게 되는데 이는 같은 네트워크 대역에 전체로 전달한다는 Broadcast 를 의미한다. ( 브로드캐스트 동작은 스위치/허브에서 Flooding 을 통해 전달된다. )
- 이를 수신한 PC_B 를 포함한 동일 네트워크에 속한 장비들은 Target protocol IP 주소가 자신과 일치하는지 확인 후 일치하면 ARP Reply 를 아니면 무시하고 Request 패킷을 Drop 한다.
- ARP Reply 를 수신한 PC_A 는 PC_B 의 MAC 주소와 IP 주소 (192.168.0.254) 를 매핑시켜 ARP Table 에 저장한다.
- 윈도우에 경우 아래와 같이 커맨드 라인에서 ARP Table 을 확인할 수 있다. (arp -a)
- 이를 바탕으로 L2 헤더를 작성하고 통신할 수 있게된다.
'개념 공부 > (인프라) 01. 네트워크' 카테고리의 다른 글
[Network] 01. OSI 7계층 (0) | 2022.09.16 |
---|