2008.11.24

인터넷 동작 방식에 관한 12가지 미신

Carolyn Duffy Marsan | Network World

인터넷 프로토콜이 초기 실험을 바탕으로 일련의 기술 문서로 작성된지도 30년이 지났다. 그 때 이후 수많은 엔지니어가 IP를 사람과 컴퓨터 간의 통신 링크로 사용하는 시스템과 애플리케이션을 만들어냈다.

 

그러나 여기에 문제점 한 가지가 있다. IP는 계속 진화해 왔지만, 그 모든 변화를 면밀하게 문서화한 이는 없다는 사실이다.  

 

인터넷 아키텍처 위원회(Internet Architecture Board, IAB) 위원이면서 마이크로소프트 소프트웨어 아키텍트인 데이브 탈러는 “IP 모델이 정적인 것이 아니다”라며, “시간이 가면서 변하고 또 계속 변하는 어떤 것이다”라고 설명했다.

 

탈러는 인터넷 표준 단체인 IETF(Internet Engineering Task Force) 회의에서 수요일 공식 강연을 가졌는데, 이번 강연은 IAB가 “IP 모델의 진화”라는 제목으로 초안을 작성한 내용을 기반으로 한 것이다.

 

탈러는 “1978년 이후 많은 애플리케이션과 상위계층 프로토콜이 수많은 가설을 기반으로 발전하고 진화해 왔다. 하지만 이들 가설 중 많은 수가 제대로 정리되지 않았고, 필요한 만큼 알려지지도 않았고, 향후 변화에 대한 고려도 없고, 심지어 점점 더 사실이 아닌 경우가 증가 하고 있다”고 지적하며, “IAB 작업의 목표는 이런 가설, 혹은 미신이라 할 수 있는 것을 하나로 모아 신뢰성 있게 문서화하고 관련 커뮤니티에 지침을 제공하는 것이다”라고 강조했다.

 

탈러가 지적한 인터넷 프로토콜에 대한 미신 수준의 가설들을 살펴본다.

 

1. 내가 상대방에게 도달할 수 있다면, 상대방도 나에게 도달할 수 있다.

”도달성은 대칭적이다”라는 가설에 따라, 많은 인터넷 애플리케이션이 만약 호스트 A가 호스트B에 접촉할 수 있다면, 그 역의 명제도 사실이라고 가정한다. 애플리케이션은 요청-응답 기능이나 콜백 기능을 구현할 때 이 가설을 사용한다. 하지만 이 가설이 항상 참은 아니다. 왜냐하면 NAT(Network Address Translator)와 방화벽 같은 중개 장비가 IP 통신을 방해하고, 또 802.11 무선 LAN이나 위성 링크와 항상 연동되지는 않기 때문이다.

 

2. 내가 상대방에 도달할 수 있고 상대방이 제 3자에게 도달할 수 있다면, 나도 제 3자에게 도달할 수 있다.

“도달성은 과도기적이다”라는 이 명제는 애플리케이션이 레퍼럴을 수행할 때만 적용된다. 첫 번째 미신처럼 이 가설 또한 항상 맞는 것은 아니데, NAT와 방화벽 그리고 802.11무선과 위성 전송과 같은 미들박스 때문이다.

 

3.멀티캐스트는 항상 동작한다

멀티캐스트는 해당 수신기가 통신을 허용할 수 있음을 표시하는 한, 통신을 다수의 시스템으로 동시에 전송할 수 있다. 많은 애플리케이션이 멀티캐스트가 모든 종류의 링크에서 동작한다고 가정하지만, 802.11 무선 LAN이나 Teredo 또는 6to4 같은 터널링 메커니즘을 거치는 경우에는 사실이 아니다.  

 

4. 통신을 개시하는데 걸린 시간은 통신 전반의 상태를 그대로 반영한다

많은 애플리케이션이 목적지로 전송된 첫 번째 패킷의 종단 간 지연이 이후의 통신에도 계속 적용된다고 가정한다. 예를 들어 많은 애플리케이션이 핑을 실행해 가장 응답이 빠른 서버를 선택한다. 하지만 첫 번째 패킷은 패킷을 검사하는 과정에서 추가적인 지연이 발생하기 때문에 실제 통신 속도와 다를 수 있다. 이 때문에 애플리케이션들이 서버를 선택하면서 더 긴 경로와 더 느린 응답시간을 가진 서버를 선택하는 경우가 적지 않다. 모바일 IPv6 나 프로토콜에 독립적인 멀티캐스팅을 이용하는 애플리케이션은 한 경로를 이용하다가 중간에 더 짧고 더 빠른 경로로 변경하는 경우가 증가하고 있다.

 

5. IP 주소는 좀처럼 변하지 않는다

애플리케이션은 IP 주소가 장시간에 걸쳐 바뀌지 않는다고 가정한다. 이들 애플리케이션은 이름을 주소로 변경한 후 그 명칭과 주소가 얼마나 오래 연결될 수 있는지를 생각하지 않고 이 주소들을 캐싱한다. 하지만 로밍 메커니즘과 무선 통신, 그리고 동적 호스트 구성 프로토콜이 인기를 얻으면서 이런 가설은 오늘날의 네트워크 환경을 제대로 소화해내지 못하고 있다.

 

6. 한 대의 컴퓨터는 네트워크에 대해 오직 1개의 IP 주소와 1개의 인터페이스만을 갖는다.

한 번도 사실이었던 적이 없는 터무니없는 가설 중 하나다. 인터넷 초창기부터 호스트는 네트워크에 대한 여러 개의 물리적 인터페이스를 가질 수 있었고, 이들 각각은 여러 개의 논리적인 인터넷 주소를 가질 수 있다. 오늘날 컴퓨터는 유무선 접속, 듀얼 IPv4/IPv6 노드와 해당 인터페이스에 존재하는 다수의 IPv6 주소를 다룬다.

 

7. 상대방과 내가 같은 서브넷에 주소를 두고 있다면, 서로 가까이 있는 것이다.

일부 애플리케이션은 IP 주소가 라우팅에 사용되는 주소와 유사하다고 가정한다. 이는 애플리케이션이 동일한 서브넷에 있는 두 개의 시스템이 인접하며, 멀리 떨어진 시스템보다는 서로 통신하는 것이 낫다고 가정할 수 있음을 의미한다. 하지만 이 가설은 터널링과 이동성 때문에 전혀 사실성이 없다. 점차 새로운 애플리케이션은 시스템을 찾는데 사용되는 IP 주소와 시스템을 식별하기 위해 개별 IP 주소를 사용하는 식별자/위치 식별자로 알려진 도식을 채택하는 추세다.

 

8. 새로운 전송계층 프로토콜은 인터넷 전반에 걸쳐 작동할 것이다.

IP는 새로운 전송 프로토콜을 지원하기 위해 설계됐지만, 점점 현실성이 없어지고 있다. 대부분의 NAT와 방화벽은 전송 프로토콜로 TCP와 UDP 만을 허용한다. 따라서 새로 등장하는 웹 기반 애플리케이션은 주로 HTTP를 이용한다.

 

9. 상대방과 나 사이에 하나의 데이터 전송이 이뤄진다면, 다른 데이터 전송도 이뤄질 것이다.

일부 애플리케이션은 통신용으로 두 개 시스템 사이에 있는 다수의 연결지점을 연다. 주로 하나는 데이터용, 또 다른 하나는 제어용으로 이용한다. 이 때의 문제는 NAT와 방화벽이 특정 포트를 차단해 1개 이상의 연결을 허용하지 않을 수 있다는데 것. 때문에 FTP와 RTP(Real-time Transfer Protocol) 같은 애플리케이션은 때로 동작하지 않을 수 있다.

 

10. 인터넷 통신은 이동 중에 변경되지 않는다

인터넷 보안에 대한 더 이상 사실이 아닌 가설 중 하나이다. 패킷이 이동 중 변경되지 않는다는 것은 인터넷 초창기에는 사실일 수 있었지만, 이제 더 이상은 아니다. NAT, 방화벽, IDS(intrusion-detection systems) 등의 수많은 중간 매개 장비 때문이다. IPsec은 IP 패킷을 암호화함으로써 이 문제를 해결하고 있지만, 인터넷 전반에 걸쳐 범용적으로 사용되고 있지는 않다.

 

11. 인터넷 통신은 비밀이 지켜진다

인터넷 개발자와 사용자가 심심치 않게 제시하는 보안 관련 가설로, 패킷이 은밀하다는 것이다. 이 가설 역시 한 번도 사실인 적이 없다. 인터넷 사용자가 자신의 통신을 확실히 비밀로 지킬 수 있는 유일한 방법은 IPSec처럼 패킷을 인증하고 암호화하는 것뿐이다.

 

12. 원시주소는 위조되지 않는다

많은 인터넷 애플리케이션이 패킷은 그것이 사용하는 IP 원시주소로부터 온다고 가정한다. 그러나 IP 주소 스푸핑은 DoS(Denial of Service)나 기타 공격에서 발신자의 신원을 숨기는 흔한 방법이었다. 이런 가정을 토대로 구축된 애플리케이션은 공격에 취약할 수밖에 없다.



2008.11.24

인터넷 동작 방식에 관한 12가지 미신

Carolyn Duffy Marsan | Network World

인터넷 프로토콜이 초기 실험을 바탕으로 일련의 기술 문서로 작성된지도 30년이 지났다. 그 때 이후 수많은 엔지니어가 IP를 사람과 컴퓨터 간의 통신 링크로 사용하는 시스템과 애플리케이션을 만들어냈다.

 

그러나 여기에 문제점 한 가지가 있다. IP는 계속 진화해 왔지만, 그 모든 변화를 면밀하게 문서화한 이는 없다는 사실이다.  

 

인터넷 아키텍처 위원회(Internet Architecture Board, IAB) 위원이면서 마이크로소프트 소프트웨어 아키텍트인 데이브 탈러는 “IP 모델이 정적인 것이 아니다”라며, “시간이 가면서 변하고 또 계속 변하는 어떤 것이다”라고 설명했다.

 

탈러는 인터넷 표준 단체인 IETF(Internet Engineering Task Force) 회의에서 수요일 공식 강연을 가졌는데, 이번 강연은 IAB가 “IP 모델의 진화”라는 제목으로 초안을 작성한 내용을 기반으로 한 것이다.

 

탈러는 “1978년 이후 많은 애플리케이션과 상위계층 프로토콜이 수많은 가설을 기반으로 발전하고 진화해 왔다. 하지만 이들 가설 중 많은 수가 제대로 정리되지 않았고, 필요한 만큼 알려지지도 않았고, 향후 변화에 대한 고려도 없고, 심지어 점점 더 사실이 아닌 경우가 증가 하고 있다”고 지적하며, “IAB 작업의 목표는 이런 가설, 혹은 미신이라 할 수 있는 것을 하나로 모아 신뢰성 있게 문서화하고 관련 커뮤니티에 지침을 제공하는 것이다”라고 강조했다.

 

탈러가 지적한 인터넷 프로토콜에 대한 미신 수준의 가설들을 살펴본다.

 

1. 내가 상대방에게 도달할 수 있다면, 상대방도 나에게 도달할 수 있다.

”도달성은 대칭적이다”라는 가설에 따라, 많은 인터넷 애플리케이션이 만약 호스트 A가 호스트B에 접촉할 수 있다면, 그 역의 명제도 사실이라고 가정한다. 애플리케이션은 요청-응답 기능이나 콜백 기능을 구현할 때 이 가설을 사용한다. 하지만 이 가설이 항상 참은 아니다. 왜냐하면 NAT(Network Address Translator)와 방화벽 같은 중개 장비가 IP 통신을 방해하고, 또 802.11 무선 LAN이나 위성 링크와 항상 연동되지는 않기 때문이다.

 

2. 내가 상대방에 도달할 수 있고 상대방이 제 3자에게 도달할 수 있다면, 나도 제 3자에게 도달할 수 있다.

“도달성은 과도기적이다”라는 이 명제는 애플리케이션이 레퍼럴을 수행할 때만 적용된다. 첫 번째 미신처럼 이 가설 또한 항상 맞는 것은 아니데, NAT와 방화벽 그리고 802.11무선과 위성 전송과 같은 미들박스 때문이다.

 

3.멀티캐스트는 항상 동작한다

멀티캐스트는 해당 수신기가 통신을 허용할 수 있음을 표시하는 한, 통신을 다수의 시스템으로 동시에 전송할 수 있다. 많은 애플리케이션이 멀티캐스트가 모든 종류의 링크에서 동작한다고 가정하지만, 802.11 무선 LAN이나 Teredo 또는 6to4 같은 터널링 메커니즘을 거치는 경우에는 사실이 아니다.  

 

4. 통신을 개시하는데 걸린 시간은 통신 전반의 상태를 그대로 반영한다

많은 애플리케이션이 목적지로 전송된 첫 번째 패킷의 종단 간 지연이 이후의 통신에도 계속 적용된다고 가정한다. 예를 들어 많은 애플리케이션이 핑을 실행해 가장 응답이 빠른 서버를 선택한다. 하지만 첫 번째 패킷은 패킷을 검사하는 과정에서 추가적인 지연이 발생하기 때문에 실제 통신 속도와 다를 수 있다. 이 때문에 애플리케이션들이 서버를 선택하면서 더 긴 경로와 더 느린 응답시간을 가진 서버를 선택하는 경우가 적지 않다. 모바일 IPv6 나 프로토콜에 독립적인 멀티캐스팅을 이용하는 애플리케이션은 한 경로를 이용하다가 중간에 더 짧고 더 빠른 경로로 변경하는 경우가 증가하고 있다.

 

5. IP 주소는 좀처럼 변하지 않는다

애플리케이션은 IP 주소가 장시간에 걸쳐 바뀌지 않는다고 가정한다. 이들 애플리케이션은 이름을 주소로 변경한 후 그 명칭과 주소가 얼마나 오래 연결될 수 있는지를 생각하지 않고 이 주소들을 캐싱한다. 하지만 로밍 메커니즘과 무선 통신, 그리고 동적 호스트 구성 프로토콜이 인기를 얻으면서 이런 가설은 오늘날의 네트워크 환경을 제대로 소화해내지 못하고 있다.

 

6. 한 대의 컴퓨터는 네트워크에 대해 오직 1개의 IP 주소와 1개의 인터페이스만을 갖는다.

한 번도 사실이었던 적이 없는 터무니없는 가설 중 하나다. 인터넷 초창기부터 호스트는 네트워크에 대한 여러 개의 물리적 인터페이스를 가질 수 있었고, 이들 각각은 여러 개의 논리적인 인터넷 주소를 가질 수 있다. 오늘날 컴퓨터는 유무선 접속, 듀얼 IPv4/IPv6 노드와 해당 인터페이스에 존재하는 다수의 IPv6 주소를 다룬다.

 

7. 상대방과 내가 같은 서브넷에 주소를 두고 있다면, 서로 가까이 있는 것이다.

일부 애플리케이션은 IP 주소가 라우팅에 사용되는 주소와 유사하다고 가정한다. 이는 애플리케이션이 동일한 서브넷에 있는 두 개의 시스템이 인접하며, 멀리 떨어진 시스템보다는 서로 통신하는 것이 낫다고 가정할 수 있음을 의미한다. 하지만 이 가설은 터널링과 이동성 때문에 전혀 사실성이 없다. 점차 새로운 애플리케이션은 시스템을 찾는데 사용되는 IP 주소와 시스템을 식별하기 위해 개별 IP 주소를 사용하는 식별자/위치 식별자로 알려진 도식을 채택하는 추세다.

 

8. 새로운 전송계층 프로토콜은 인터넷 전반에 걸쳐 작동할 것이다.

IP는 새로운 전송 프로토콜을 지원하기 위해 설계됐지만, 점점 현실성이 없어지고 있다. 대부분의 NAT와 방화벽은 전송 프로토콜로 TCP와 UDP 만을 허용한다. 따라서 새로 등장하는 웹 기반 애플리케이션은 주로 HTTP를 이용한다.

 

9. 상대방과 나 사이에 하나의 데이터 전송이 이뤄진다면, 다른 데이터 전송도 이뤄질 것이다.

일부 애플리케이션은 통신용으로 두 개 시스템 사이에 있는 다수의 연결지점을 연다. 주로 하나는 데이터용, 또 다른 하나는 제어용으로 이용한다. 이 때의 문제는 NAT와 방화벽이 특정 포트를 차단해 1개 이상의 연결을 허용하지 않을 수 있다는데 것. 때문에 FTP와 RTP(Real-time Transfer Protocol) 같은 애플리케이션은 때로 동작하지 않을 수 있다.

 

10. 인터넷 통신은 이동 중에 변경되지 않는다

인터넷 보안에 대한 더 이상 사실이 아닌 가설 중 하나이다. 패킷이 이동 중 변경되지 않는다는 것은 인터넷 초창기에는 사실일 수 있었지만, 이제 더 이상은 아니다. NAT, 방화벽, IDS(intrusion-detection systems) 등의 수많은 중간 매개 장비 때문이다. IPsec은 IP 패킷을 암호화함으로써 이 문제를 해결하고 있지만, 인터넷 전반에 걸쳐 범용적으로 사용되고 있지는 않다.

 

11. 인터넷 통신은 비밀이 지켜진다

인터넷 개발자와 사용자가 심심치 않게 제시하는 보안 관련 가설로, 패킷이 은밀하다는 것이다. 이 가설 역시 한 번도 사실인 적이 없다. 인터넷 사용자가 자신의 통신을 확실히 비밀로 지킬 수 있는 유일한 방법은 IPSec처럼 패킷을 인증하고 암호화하는 것뿐이다.

 

12. 원시주소는 위조되지 않는다

많은 인터넷 애플리케이션이 패킷은 그것이 사용하는 IP 원시주소로부터 온다고 가정한다. 그러나 IP 주소 스푸핑은 DoS(Denial of Service)나 기타 공격에서 발신자의 신원을 숨기는 흔한 방법이었다. 이런 가정을 토대로 구축된 애플리케이션은 공격에 취약할 수밖에 없다.



X