Computer Science/Computer Network

[Computer Network] Special Address | 특수 주소

lww7438 2020. 4. 6. 17:36

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)