MAC(Media Access Contral)
- MAC은 2계층에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자이다. → 결국 2계층의 '주소'(고유한 성질을 가지고 있음)
- 모든 하드웨어 장비는 MAC 주소를 가지고 있으며, 이를 이용하여 서로 통신한다. → 변경할 수 없도록 하드웨어에 고정되어 출하된다.
- MAC 주소는 48bit의 16진수로 표기되며 총 12자리이다. 48비트를 반으로 나눠 구분하는데, 앞 24비트는 '제조사 코드', 뒤 24비트는 제조사에서 자체적으로 할당하여 장비를 구분할 수 있게 한다. 이를 각각 'OUI', 'UAA'라고 한다.
* MAC 주소는 네트워크 카드나 장비를 생산할 때 하드웨어적으로 정해져서 나오기 때문에 BIA(Burned-In Address)라고도 부른다.
- NIC에 고정된 MAC 주소를 변경하기는 어렵다. 하지만 Windows의 경우 Driver 상세 정보에서 MAC 주소를 변경할 수 있고, Linux는 GNU MacChanger나 각 리눅스 배포판의 네트워크 설정 파일에 직접 MAC 주소를 입력하여 주소를 변경할 수 있다.
- NIC에 전기 신호가 들어오면 2계층에서 패킷으로 변환하여 패킷 내용을 구분한 뒤 도착지 MAC 주소를 확인한다. 도착지 MAC 주소가 자신이 갖고 있는 주소와 다르면 패킷을 폐기해버린다. 같을 경우에는 해당 정보를 상위 계층으로 넘겨준다.
- 위에서 이야기했듯 MAC 주소는 NIC에 종속된다. 단말은 여러 NIC를 가질 수 있으므로 MAC 주소가 여러 개일 수도 있다. (예: 멀티레이어 스위치, 라우터 등)
IP(Internet Protocol)
- 3계층에서는 IP 주소를 사용한다.
- MAC은 물리 주소, IP는 논리 주소이다. → 논리적인 주소이기 때문에 사용자가 변경 쉽게 변경할 수 있다.
- 현재 흔히 사용하는 IP 주소는 32Bit IPv4이다. * IPv6의 경우 128Bit이다.
- IPv4 주소를 표기할 때는 4개의 8Bit 단위인 옥텟(Octet)으로 나뉘며, 10진수로 표기되고 "."으로 구분한다.
- IP의 주소는 [네트워크 주소/호스트 주소]로 나뉜다.
네트워크 주소 | 호스트를 모은 네트워크를 지칭하는 주소로, 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 한다. |
호스트 주소 | 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소 |
- MAC 주소와 달리 IP 주소는 경계가 정확히 나뉘어있지 않다. 그래서 클래스 개념(A, B, C, D, E)을 도입하여 네트워크 주소와 호스트 주소를 구분했다. → 클래스풀이라고 부른다.
- A 클래스는 가장 큰 주소를 가지며, 약 1,600만 개의 IP 주소를 가질 수 있으며, B 클래스는 약 6만 5천 개, C 클래스는 약 250개의 IP 주소를 가질 수 있다.
Class | 주소 범위 |
A Class | 1~126.255.255 ※ 127.0.0.0은 자신을 뜻하는 로컬 호스트이며, 루프백 주소로 사용된다. |
B Class | 128~191.0.0.0 |
C Class | 192~223.0.0.0 |
D Class | 224~239.0.0.0 |
- 과거에 클래스가 막 생겨났을 때는 기업의 규모를 기준으로 클래스 별로 IP 주소를 나눠가지도록 했다. 하지만 현재 아주 부족한 상태... A 클래스 IP 주소를 사용하는 경우 낭비되는 IP 주소가 너무 많다. → 그래서 현재는 과거에 사용했던 개념으로 네트워크를 분할하지 않고, 필요한 네트워크 크기에 맞춰 1비트 단위로 네트워크를 분할하는 방법을 사용하고 있다.
- IP가 부족해지는 문제를 해결하기 위해 3가지 대책을 마련했다.
1. CIDR(Classless Inter-Domain Routing) 기반 주소 체계(클래스리스)
2. NAT 및 사설 IP 주소
3. IPv6
- 현재는 클래스리스 주소 체계(CIDR)를 사용하고 있다. CIDR은 네트워크 주소와 호스트 주소를 나누는 구분자를 이용하여 IP 주소를 분할하는데, 이를 서브넷 마스크라고 한다.
- 보통 2진수의 1은 네트워크 주소, 0은 호스트 주소로 표시한다. (예: 255.0.0.0, 255.255.255.0 등)
- 서브넷 마스크를 더 쉽게 표기하기 위해 1의 개수(네트워크 주소)를 세어 표시하기도 한다. (예: /8, /24 등) 이를 Prefix라고 한다.
- 네트워크 주소를 알아내기 위해서는 호스트 주소와 서브넷 마스크와 AND(&) 연산을 한다. → 둘 다 1일 때 1, 나머지는 0
(예시)
103.9.32.146 255.255.255.0(= 103.9.32.146/24)
네트워크 | 서브넷 | 호스트 | |
01100111 11111111 |
00001001 11111111 |
00100000 11111111 |
10010010 00000000 |
01100111 | 00001001 | 00100000 | 00000000 |
네트워크 주소: 103.9.32.0 |
- 결국 따지고 보면 /8은 A 클래스, /16은 B 클래스, /24는 C 클래스가 되는데, 이를 무시하고 1비트 단위로 네트워크를 분할하는 방법을 서브네팅이라고 한다.
IP 주소 | 103.9.32.146 | 01100111 | 00001001 | 00100000 | 10010010 |
서브넷 | 255.255.255.192 | 11111111 | 11111111 | 11111111 | 11000000 |
네트워크 주소 | 103.9.32.128 | 01100111 | 00001001 | 00100000 | 10000000 |
네트워크 주소 호스트 주소
- 네트워크를 효율적으로 분할하거나, 자신의 네트워크와 원격지 네트워크를 구분해야 하는 경우에 서브네팅에 대해 고민해야 한다.
네트워크 사용자 입장: 네트워크에서 사용할 수 있는 IP 범위를 파악해야 함. 기본 게이트웨이와 서브넷 마스크 설정이 제대로 되어 있는가?
네트워크 설계자 입장: 네트워크 설계 시 네트워크 내에 필요한 단말을 고려한 네트워크 범위를 설계해야 함. 하나의 네트워크에 IP를 몇 개 할당해야 하는지? 또는 PC가 몇 대 있는지? 서브넷된 네트워크가 몇 개 필요한지?
자신이 속한 네트워크 유효 범위를 파악하기 위해서는
1. 네트워크 주소 알아내기
2. 호스트 주소 부분을 2진수 1로 변경해 브로드캐스트 주소를 알아내기
3. 가장 작은 IP(네트워크 주소 1)와 가장 큰 IP(브로드캐스트 주소-1) 확인하기
4. 10진수 변환하기
※ 네트워크 주소와 브로드캐스트 주소는 사용할 수 없다. 왜? 네트워크 주소는 전체를 대표하는 주소, 브로드캐스트 주소는 이름 답게 모두에게 한 번에 데이터를 전송하는 데 사용하는 IP 주소이다.
103 | 9 | 32 | 146 | ||
IP 주소 | 103.9.32.146 | 01100111 | 00001001 | 00100000 | 10010010 |
서브넷 | 255.255.255.192 | 11111111 | 11111111 | 11111111 | 11000000 |
네트워크 주소 | 103.9.32.128 | 01100111 | 00001001 | 00100000 | 10000000 |
브로드캐스트 주소 | 103.9.32.191 | 01100111 | 00001001 | 00100000 | 10111111 |
첫 번째 주소 (가장 작은 IP) |
103.9.32.129 | 01100111 | 00001001 | 00100000 | 10000001 |
마지막 주소 (가장 큰 IP) |
103.9.32.190 | 01100111 | 00001001 | 00100000 | 10111110 |
네트워크 주소 호스트 주소 브로드캐스트 주소 구하기 10진수 변환하기
공인 IP와 사설 IP
- 인터넷 접속을 위해서는 IP 주소가 있어야 한다. → 전 세계에서 유일해야 하는 식별자: 공인 IP(Public IP)
- 인터넷 접속을 안 하고 싶으면? 사설 IP(Private IP)를 이용하여 네트워크를 구축할 수 있다.
- 어떻게 사설 IP를 구축할 수 있을까? → NAT(Network Address Translation) 기술(공유기 또는 회사 방화벽)을 사용하면 된다.
- NAT는 인터넷에 직접 접속하는 것이 아니라, NAT 장비에서 공인 IP로 변경하여 인터넷을 접속할 수 있도록 하는 기술이다.
- 사설 IP를 사용할 때 주의해야 할 부분은 다른 사용자에게 할당된 IP를 사용하면 안 된다는 것이다. → 당연히 접근 불가능하므로 꼭 RFC에 명시된 사설 IP 대역을 사용하는 것이 좋다.
'네트워크' 카테고리의 다른 글
네트워크 통신하기 - 4 (ARP, GARP, RARP) (0) | 2024.11.13 |
---|---|
네트워크 통신하기 - 3 (TCP, UDP) (0) | 2024.11.10 |
네트워크 통신하기 - 1 (유니캐스트, 멀티캐스트, 브로드캐스트, 애니캐스트) (0) | 2024.11.08 |
네트워크 연결과 구성 요소 - 2 (NIC, 케이블/커넥터, 허브, 스위치, 라우터, 로드 밸런서, 보안 장비, 모뎀/공유기) (0) | 2024.11.07 |
네트워크 연결과 구성 요소 - 1 (LAN/MAN/WAN, 네트워크 회선 종류) (0) | 2024.11.07 |