Special Address
특수 주소
- Classful Addressing과 Classless Addressing 모두 특수 용도의 주솟값을 미리 정의해놓았다.
Special Address | Net-ID (Prefix) | Host-ID (Suffix) | Source / Destination |
Network Address (Network Identifier) |
Specific | All 0s | None |
Directed Broadcast Address | Specific | All 1s | 목적지 |
Limited Broadcast Address | All 1s | All 1s | 목적지 |
All-Zero Address (This host on this network) |
All 0s | All 0s | 소스 |
Specific host on this network | All 0s | Specific | 목적지 |
Loopback Address | 127 | Any | 목적지 |
- Broadcasting은 해당 네트워크의 Switch의 관제하에 이루어진다.
- Broadcasting 시, 해당 네트워크에 인접한 라우터 또한 메세지를 수신한다.
Network Address = Network Identifier (네트워크 주소 = 네트워크 식별자)
Directed Broadcast Address (직접 브로드캐스트 주소)
- 특정 네트워크로 찾아가서, 해당 네트워크에 연결된 모든 노드에게 전송을 명령하는 주소이다.
- 해당 네트워크의 라우터를 찾아가기 전까진, Unicast 방식으로 전송된다.
- Smurf Attack*에 이용되는 주소이다.
* Smurf Attack (Dos 공격 방법 중 하나)
- IP Spoofing(IP 위변조)기법으로 Victom Node에 과한 부하를 주어 시스템을 다운시키는 공격 방식이다.
- Hack는 위조한 패킷을 네트워크로 전송한다.
- 위조 패킷의 내용
헤더 : Source는 Victim(피해자), Destination은 특정 물리네트워크의 Directed Broadcast 주소
데이터 : Ping Command**, Long File
- 해커의 위조 패킷을 수신한 특정 물리넷의 모든 노드들(해킹에 이용당하는 노드들)은 Victim에게 Ping Command에 대한 Echo 메세지(여기엔 Long File까지 포함되어 있다.)를 일제히 보낸다.
- 한꺼번에 많은 대용량 패킷을 수신한 Victim의 시스템에는 큰 부하가 걸려 다운되게 된다.
-
** Ping : 서로 다른 두 노드끼리 통신 환경을 확인할 때 사용하는 네트워크 프로그램이다.
- Ping Command를 담은 패킷을 수신한 노드에서는 RTT(Round Trip Time)와 함께 발신자에게 Echo한다.
- RTT는 패킷이 전송되는데 걸린 시간으로 네트워크 관리 시 이용하기에 용이하다.
Countermeasure (대응책)
1. 해커와 연결된 ISP의 라우터(A)에서 Filtering 하는 방법
- Router B에서 패킷의 Source 주소를 확인하여 필터링하는 방식인 Ingress Filtering을 통한 방법이다.
- 해당 ISP에서 본인이 할당한 적이 없는 주소를 가진 패킷을 폐기하는 방식이다.
- 만약 해커와 Victom이 같은 물리 네트워크 상에 위치한다면 1번 방법으로는 대응하지 못한다.
2. 공격에 이용되는 네트워크의 라우터에서 Directed Broadcast 주소를 가진 패킷을 사전 차단하는 방법
- Directed Broadcast 타입의 주소를 가진 패킷을 받게되면 즉시 폐기하는 방법이다.
- 모든 라우터들은 Packet Relay 작업과 동시에 패킷 검증 작업또한 수행한다.
Limited Broadcast Address (제한된 브로드캐스트 주소)
255.255.255.255
- 자신이 속해있는 네트워크에 연결된 모든 노드에 전송을 명령하는 주소이다.
All-Zero Address (This host on this network, Me 주소)
0.0.0.0
- 자신의 IP주소를 모르는 노드가 IP주소를 할당받기 위해 사용하는 주소이다.
- 주소를 할당받고자 하는 노드는 DHCP Server에서 주소를 할당받기 위해 필요한 정보*를 받아온다.
* 자기 자신의 IP주소, 인접한 라우터의 IP주소, 네임서버 주소, 네트워크 마스크 (네트워크 인터페이스 정보 참고)
※ DHCP Server Request 패킷의 구조 (L2의 헤더에만 특별히 목적지 주소를 먼저 표기함에 명시하라)
L2 Header | L3 Header | L4 Header | Data | |
DHCP Request | FF, Mc | Me주소, FF | Pc, Ps | Request |
- (C : Client) , (S : DHCP Server) , (FF : Limited 브로드캐스트 주소)
- IP주소를 할당받고자 이 메세지를 보내는 것이므로, 자신의 IP주소를 모르는 상황이기 때문에 Ic 대신, Me주소를 이용한다. (단, 자신의 MAC주소(Mc)는 알고 있다.)
- IP주소를 할당받고자 하는 클라이언트 입장에서는, DHCP 서버의 MAC주소, IP주소를 알 리가 없다.
- 그러나 Ps(DHCP 서버의 포트번호)를 알고 있는 이유는 DHCP가 Well-Known Service이므로 IANA에 의해 포트번호가 지정되어 있기 때문이다.
※ DHCP Server Response 패킷의 구조
L2 Header | L3 Header | L4 Header | Data | |
DHCP Response | Mc, Ms | Is, FF | Ps, Pc | Response (Ic와 관련된 정보) |
- (Is : DHCP Server IP주소) , (Ic : Client의 IP주소)
- Server에선 전송 효율을 위해 Request와 달리, Unicast 타입으로 전송한다.
- 아직 Client가 본인의 IP주소를 모르는 상황이므로 Response 메세지 또한 Broadcast 주소를 사용해야 한다.
(IP주소는 모르지만, 클라이언트의 MAC 주소를 알기 때문에 Broadcast 타입 주소가 쓰였음에도 Unicast 전송이 가능한 것이다.)
-
Specific host on this network
- 자신이 속해있는 네트워크의 특정 호스트와 통신하기 위해 사용하는 주소이다.
Loopback Address (루프백 주소)
127.0.0.1
- 첫 번째 바이트 필드의 주솟값이 127인 주소이다.
- 관례상, 127.0.0.1을 루프백 주소로 통용하여 사용한다.
- 같은 머신내의 서로 다른 프로세스끼리의 TCP/IP 통신시에 사용하는 주소이다.
(즉, 루프백 주소를 사용한 패킷은 해당 머신 외부로 나가지 않는다.)
- 패킷은 L3까지 내려가서 루프백 주소임이 확인되면 목적지 프로세스(L4)로 올라가게 된다.
Private Address (사설 주소)
10.0.0.0/8
- 사설망 내부에서만 쓰이는 주소로, 외부 네트워크에서는 사용될 수 없는 주소이다.
ex) 인터넷 공유기에 연결된 노드들은 인터넷 공유기로 부터 사설 주소를 할당받게 된다.
- 사설 주소들은 분리된 네트워크에 사용되거나 NAT*를 통해 사설망을 인터넷에 연결하는 데 사용된다.
* NAT (Network Address Translation, 주소 변환 기술)
Reference: TCP/IP Protocol Suite 4th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2010)
Reference: Data Communications and Networking 5th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2012)