SlideShare a Scribd company logo
NAT
Traversal
and P2P
Jung-In.Jung
(call518@gmail.com)
1st 2016-02-20
2nd 2020-01-03
1
Background
• UDP 기반의 P2P 애플리케이션과 NAT는 상극
• P2P=피해자 / NAT=가해자
• “NAT 내부의 단말은 외부의 연결요청 수신이 불가능 하다.”
• ex) 대표적 이슈
• 서로 다른 NAT에 속한 2대의 단말이 상호간 직접 통신 불가
• NAT는 내부 네트워크를 추상화
• A→B 커넥션 시도는 B의 NAT-B가 차단
• B→A 커넥션 시도는 A의 NAT-A가 차단
2
NAT-A NAT-B
A B
X
X
?
?
What is NAT
• NAT = Network Address Translation
• Private Network에 위치하는 단말이 Public Network(인터넷)와 통
신이 가능하도록 상호 간에 연결 시켜 주는 기능.
• “Binding Table” & “Filtering Table”
• NAT 종류
• Basic NAT
• IP 변환 (Layer3)
• 1:1 translation (1 = Public IP, 1 = Private IP)
• NAPT (Network Address Port Translation)
• IP/Port 변환 (Layer4)
• 1:N translation (1 = Public IP, N = Private IP)
• 현재 사용되는 대부분의 NAT장비/공유기
3
Mapping
Behavior
NAT Behavior Requirement
4
Mapping Behavior
• Address and Port Mapping
• IP Address Pooling
• Arbitrary (pre Session)
• Paired (pre Host)
• Port Assignment
• Port Preservation
• Port Overloading
• No Port Overloading
• No Port Preservation
• Port Assignment Rule (Port Range)
• Mapping Timer (Binding Refresh Timer)
• Mapping Refresh Behavior
• NAT Outbound refresh behavior of "True“
• NAT Inbound refresh behavior of "True"
5
Address and Port Mapping
EIM (Endpoint-Independent Mapping)
• S-IP, S-Port 정보로 External Port 결정
• 출발지 정보만 동일하면 동일한 Port 할당
6
http://www.netmanias.com/ko/?m=view&id=blog&no=5833
Address and Port Mapping
ADM (Address-Dependent Mapping)
• S-IP, S-Port, D-IP 정보로 External Port 결정
7
http://www.netmanias.com/ko/?m=view&id=blog&no=5833
Address and Port Mapping
APDM (Address and Port-Dependent Mapping)
• S-IP, S-Port, D-IP, D-Port 정보로 External Port 결정
8
http://www.netmanias.com/ko/?m=view&id=blog&no=5833
Filtering
Behavior
NAT Behavior Requirement
9
Filtering Behavior
EIF (Endpoint-Independent Filtering)
• D-IP, D-Port 만 검사하여 ACCEPT 판단
• Inbound패킷과 Binding Entry의 D-IP, D-Port만 일치하면 허용
10
http://www.netmanias.com/ko/?m=view&id=blog&no=5839
Filtering Behavior
ADF (Address-Dependent Filtering)
• D-IP, D-Port, S-IP 만 검사하여 ACCEPT 판단
11
http://www.netmanias.com/ko/?m=view&id=blog&no=5839
Filtering Behavior
APDF (Address and Port-Dependent Filtering)
• D-IP, D-Port, S-IP, S-Port 전체 검사 후 ACCEPT 판단
12
http://www.netmanias.com/ko/?m=view&id=blog&no=5839
9-Tyeps
(4-Types)
NAT Types
13
NAT Types
• by Behavior
14
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
NAT Types
• RFC 3489 (2003년) → RFC 5389 (2008년) → RFC 5780 (2010년)
• Mapping/Filtering Behavior 조합을 통해, 총 9가지 NAT 타입 가능
15
http://www.netmanias.com/ko/?m=view&id=blog&no=5847
Technique
NAT Traversal
16
ITEF Standard for NAT Traversal
ITEF Standard
• STUN (Session Traversal Utilities for NAT)
• 단말 스스로가 NAT의 존재 유무, NAT 타입식별, External IP/Port 정보를
찾아내도록 도와주는 프로토콜이다.
• STUN 서버, STUN 클라이언트(단말)로 구성
• NAT 이슈를 단말이 능동적으로 해결 (NAT Type에 제한적)
• TURN (Traversal Using Relay NAT)
• 단말들은 공중망에 위치한 TURN 서버와 세션을 설정
• TRUN 서버가 단말간 통신을 중계
• Symmetric NAT(APDM+APDF) 환경에서 통신 가능한 유일한 방법
• ICE (Interactive Connectivity Establishment)
• STUN/TURN을 사용할 때 P2P 방식을 통해 최적의 라우팅 제공 기법
• 세션 설정 과정에서 가능한 모든 S-IP를 동원하여 시그널링 시도
• 주소들의 우선순위는 직접 통신 가능한 주소가 우선
• Local Address(Device) > NAT Address(STUN) > Relay Address(TURN)
17
NAT Traversal Technique
Techniques
• Relaying (TURN)
• Connection Reversal
• UDP Hole Punching
18
Relaying (TURN)
• 개념
• 사설 IP 주소를 가지는 두 단말 간에 직접 통신이 불가능하여, 공인 IP
주소를 가지는 외부 서버를 통해 P2P 데이터 패킷을 Relay하는 개념
• 최종 목적지(상대 단말) 정보는 Replay로 보내는 패킷의 Payload로 전
달
• 장점
• NAT Behavior(Mapping/Filtering)와 관계 없이 모두(9-Types) 지원
• 단점
• 모든 P2P 데이터 패킷이 Relay 서버를 경유
• Relay 서버의 부하 증가
• Relay 서버의 네트워크 대역폭 이슈 발생
• Relay 서버가 분산 배치되지 않은 환경에서는 P2P 통신의 지연 발생
19
Relaying (TURN)
20
http://www.netmanias.com/ko/?m=view&id=blog&no=6264
Connection Reversal
• 개념
• P2P통신을 하려는 두 단말 중 하나는 공인 IP를 가지는 경우 적용 가
능
• Private단말→Public단말로의 연결은 문제 없음 (like
Client→WebServer)
• Public단말 →Private단말로의 연결은 NAT에 의해 차단됨
• 외부 Messaging 서버를 통해 Public단말이 Private단말로 하여금 자
신에게 연결을 하도록 유도(Reverse Connection Request in Payload)
하여 NAT에 “Binding/Filtering Table” 테이블 생성
• 장점
• P2P 데이터 패킷이 Messaging 서버를 통하지 않는다
• NAT Behavior(Mapping/Filtering)와 관계 없이 모두(9-Types) 지원
• 단점
• P2P 단말 중 하나는 반드시 공인 IP 주소 필요
21
Connection Reversal
22
http://www.netmanias.com/ko/?m=view&id=blog&no=6264
Connection Reversal
23
http://www.netmanias.com/ko/?m=view&id=blog&no=6264
UDP Hole Punching
• 개념
• 공중망의 Messaging서버를 통해 P2P 단말간 연결 지원
• 특징
• EIM-NAT타입만 지원
• Filtering Behavior은 모두 지원
• EIF과 EDF에 따라 미세한 차이
• 가장 효율적인 NAT Traversal 기법
24
EIF EDF (ADF/APDF)
1. 모든 단말은 Payload를 이용해 자신의 Private/Public 정보를 Messaging 서버에 전송/등록
2. Messaging 서버는 모든 단말의 Private/Public 정보를 보관
3. 각 단말들은 P2P통신을 위해 Messaging 에서 상대방 단말 정보 조회
4. Messaging서버는 Payload를 통해 각 단말에게 통신하고자 하는 상대방의 정보를 리턴
(조회 요청 단말과 조회 당한 단말 모두에게 동시 응답)
5. 각 단말은 리턴 된 Payload의 정보를 이용해 상대 단말로 상호 P2P 연결 시도
6. 연결 성공
6. 먼저 연결 시도된 단말은 1회 실패
7. 늦게 시도된 단말은 정상 연결
8. 1회 실패한 단말은 2회부터 정상 연결
UDP Hole Punching – EIM & EIF
25
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
UDP Hole Punching – EIM & EIF
26
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
UDP Hole Punching – EIM & EIF
27
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
UDP Hole Punching - EIM & EDF
28
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
UDP Hole Punching - EIM & EDF
29
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
UDP Hole Punching - EIM & EDF
30http://www.netmanias.com/ko/?m=view&id=blog&no=6263
UDP Hole Punching - EIM & EDF
31
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
UDP Hole Punching - Summary
32
http://www.netmanias.com/ko/?m=view&id=blog&no=6263
Appendix
33
Hairpinning
Behavior
NAT Behavior Requirement
34
Hairpinning Behavior
External Source IP Address and Port
• 변조된 패킷의 Source IP/Source Port가 External Address/Port
35
http://www.netmanias.com/ko/?m=view&id=blog&no=5839
Hairpinning Behavior
Internal Source IP Address and Port
• 변조된 패킷의 Source IP/Source Port가 Internal Address/Port
36
http://www.netmanias.com/ko/?m=view&id=blog&no=5839
Closing
References
• NAT (Network Address Translation) 소개 (RFC 3022/2663)
• NAT 장비는 이렇게 만들어야 하는데... (RFC 4787) - 1편: Mapping Behavior
• NAT 장비는 이렇게 만들어야 하는데... (RFC 4787) - 2편: Filtering Behavior
• NAT 장비는 이렇게 만들어야 하는데... (RFC 4787) - 3편: Deterministic Properties
• P2P와 NAT: NAT 통과 기법 소개 (RFC 5128) - 1편: Relaying & Connection Reversal
• P2P와 NAT: NAT 통과 기법 소개 (RFC 5128) - 2편: UDP Hole Punching
• STUN(RFC 3489)과 STUN(RFC 5389/5780)의 차이
• STUN(RFC 3489)을 이용한 NAT Behavior Discovery
NETMANIAS 후원
http://www.netmanias.com/ko/?m=view&id=sitenews&no=8335
37

More Related Content

PDF
Introduction to eBPF
PPTX
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
PDF
Segment Routing for Dummies
PDF
Azure Custom Backup Solution for SAP NetWeaver
PDF
Kubernetes Networking with Cilium - Deep Dive
PPTX
Using Rook to Manage Kubernetes Storage with Ceph
PDF
BPF / XDP 8월 세미나 KossLab
PDF
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
Introduction to eBPF
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Segment Routing for Dummies
Azure Custom Backup Solution for SAP NetWeaver
Kubernetes Networking with Cilium - Deep Dive
Using Rook to Manage Kubernetes Storage with Ceph
BPF / XDP 8월 세미나 KossLab
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항

What's hot (20)

PDF
Next Generation IP Transport
PDF
Cilium - BPF & XDP for containers
PDF
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
PDF
eBPF - Observability In Deep
PDF
464XLAT Tutorial
PDF
Janus SFU cascading @ IIT-RTC 2022
PDF
Neighbor Discovery Deep Dive – IPv6-Networking-Referat
PDF
Locking in Linux Traffic Control subsystem
PDF
Design and Deployment of Enterprise Wirlesss Networks
PDF
Faster packet processing in Linux: XDP
PPTX
NAT64 and DNS64 in 30 minutes
PDF
Using eBPF for High-Performance Networking in Cilium
PDF
with NATS with Kubernetesの世界へ
PDF
Linux BPF Superpowers
PDF
LinuxCon 2015 Linux Kernel Networking Walkthrough
PDF
Building Network Functions with eBPF & BCC
PPTX
Getting Started with ThousandEyes Proof of Concepts
PDF
Packet Tracer Simulation Lab Layer 2 Switching
PDF
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
PDF
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Next Generation IP Transport
Cilium - BPF & XDP for containers
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
eBPF - Observability In Deep
464XLAT Tutorial
Janus SFU cascading @ IIT-RTC 2022
Neighbor Discovery Deep Dive – IPv6-Networking-Referat
Locking in Linux Traffic Control subsystem
Design and Deployment of Enterprise Wirlesss Networks
Faster packet processing in Linux: XDP
NAT64 and DNS64 in 30 minutes
Using eBPF for High-Performance Networking in Cilium
with NATS with Kubernetesの世界へ
Linux BPF Superpowers
LinuxCon 2015 Linux Kernel Networking Walkthrough
Building Network Functions with eBPF & BCC
Getting Started with ThousandEyes Proof of Concepts
Packet Tracer Simulation Lab Layer 2 Switching
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Ad

Similar to NAT Traversal and P2P (20)

PDF
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation
PDF
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
PDF
웹기반원격감시제어 2010 CPD
PDF
Private cloud network architecture (2018)
PDF
소켓프로그래밍 기초요약
PDF
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
PDF
Netmanias L2,L3 Training (1) L2 Ethernet
PDF
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
PPTX
Network virtualization for the better understanding of Data Center Network
PDF
Solaris11 기초 자료
PDF
Opendaylight beryllium
PDF
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
PPTX
TCP/IP Protocol - JAVA
PDF
오픈스택 멀티노드 설치 후기
PDF
Solaris 11 network virtualization & Server Virtualization for cloud
PDF
ONF Atrium 분석
PPTX
Before OTD EDU Assignments
PDF
2nd SDN Interest Group Seminar-Session3 (121218)
PDF
[2018] 오픈스택 5년 운영의 경험
PDF
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
웹기반원격감시제어 2010 CPD
Private cloud network architecture (2018)
소켓프로그래밍 기초요약
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
Netmanias L2,L3 Training (1) L2 Ethernet
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
Network virtualization for the better understanding of Data Center Network
Solaris11 기초 자료
Opendaylight beryllium
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
TCP/IP Protocol - JAVA
오픈스택 멀티노드 설치 후기
Solaris 11 network virtualization & Server Virtualization for cloud
ONF Atrium 분석
Before OTD EDU Assignments
2nd SDN Interest Group Seminar-Session3 (121218)
[2018] 오픈스택 5년 운영의 경험
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
Ad

More from JungIn Jung (9)

PDF
Ceph Durability and Replica Data Lost - PG Numbers / Replica Failure
PDF
Eywa - Cloud Network Architecture 20180625(20150907)(compact)
PDF
EYEA HA Workflow
PDF
EYWA Presentation v0.1.27
PDF
Virtualized Datacenter as a Service (vDCaaS)
PDF
SDN TEST Suite
PPTX
Limitation of Cloud Networking & Eywa virtual network model for full HA and LB
PDF
About VXLAN (2013)
PDF
Qemu & KVM Guide #1 (intro & basic)
Ceph Durability and Replica Data Lost - PG Numbers / Replica Failure
Eywa - Cloud Network Architecture 20180625(20150907)(compact)
EYEA HA Workflow
EYWA Presentation v0.1.27
Virtualized Datacenter as a Service (vDCaaS)
SDN TEST Suite
Limitation of Cloud Networking & Eywa virtual network model for full HA and LB
About VXLAN (2013)
Qemu & KVM Guide #1 (intro & basic)

NAT Traversal and P2P

  • 2. Background • UDP 기반의 P2P 애플리케이션과 NAT는 상극 • P2P=피해자 / NAT=가해자 • “NAT 내부의 단말은 외부의 연결요청 수신이 불가능 하다.” • ex) 대표적 이슈 • 서로 다른 NAT에 속한 2대의 단말이 상호간 직접 통신 불가 • NAT는 내부 네트워크를 추상화 • A→B 커넥션 시도는 B의 NAT-B가 차단 • B→A 커넥션 시도는 A의 NAT-A가 차단 2 NAT-A NAT-B A B X X ? ?
  • 3. What is NAT • NAT = Network Address Translation • Private Network에 위치하는 단말이 Public Network(인터넷)와 통 신이 가능하도록 상호 간에 연결 시켜 주는 기능. • “Binding Table” & “Filtering Table” • NAT 종류 • Basic NAT • IP 변환 (Layer3) • 1:1 translation (1 = Public IP, 1 = Private IP) • NAPT (Network Address Port Translation) • IP/Port 변환 (Layer4) • 1:N translation (1 = Public IP, N = Private IP) • 현재 사용되는 대부분의 NAT장비/공유기 3
  • 5. Mapping Behavior • Address and Port Mapping • IP Address Pooling • Arbitrary (pre Session) • Paired (pre Host) • Port Assignment • Port Preservation • Port Overloading • No Port Overloading • No Port Preservation • Port Assignment Rule (Port Range) • Mapping Timer (Binding Refresh Timer) • Mapping Refresh Behavior • NAT Outbound refresh behavior of "True“ • NAT Inbound refresh behavior of "True" 5
  • 6. Address and Port Mapping EIM (Endpoint-Independent Mapping) • S-IP, S-Port 정보로 External Port 결정 • 출발지 정보만 동일하면 동일한 Port 할당 6 http://www.netmanias.com/ko/?m=view&id=blog&no=5833
  • 7. Address and Port Mapping ADM (Address-Dependent Mapping) • S-IP, S-Port, D-IP 정보로 External Port 결정 7 http://www.netmanias.com/ko/?m=view&id=blog&no=5833
  • 8. Address and Port Mapping APDM (Address and Port-Dependent Mapping) • S-IP, S-Port, D-IP, D-Port 정보로 External Port 결정 8 http://www.netmanias.com/ko/?m=view&id=blog&no=5833
  • 10. Filtering Behavior EIF (Endpoint-Independent Filtering) • D-IP, D-Port 만 검사하여 ACCEPT 판단 • Inbound패킷과 Binding Entry의 D-IP, D-Port만 일치하면 허용 10 http://www.netmanias.com/ko/?m=view&id=blog&no=5839
  • 11. Filtering Behavior ADF (Address-Dependent Filtering) • D-IP, D-Port, S-IP 만 검사하여 ACCEPT 판단 11 http://www.netmanias.com/ko/?m=view&id=blog&no=5839
  • 12. Filtering Behavior APDF (Address and Port-Dependent Filtering) • D-IP, D-Port, S-IP, S-Port 전체 검사 후 ACCEPT 판단 12 http://www.netmanias.com/ko/?m=view&id=blog&no=5839
  • 14. NAT Types • by Behavior 14 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 15. NAT Types • RFC 3489 (2003년) → RFC 5389 (2008년) → RFC 5780 (2010년) • Mapping/Filtering Behavior 조합을 통해, 총 9가지 NAT 타입 가능 15 http://www.netmanias.com/ko/?m=view&id=blog&no=5847
  • 17. ITEF Standard for NAT Traversal ITEF Standard • STUN (Session Traversal Utilities for NAT) • 단말 스스로가 NAT의 존재 유무, NAT 타입식별, External IP/Port 정보를 찾아내도록 도와주는 프로토콜이다. • STUN 서버, STUN 클라이언트(단말)로 구성 • NAT 이슈를 단말이 능동적으로 해결 (NAT Type에 제한적) • TURN (Traversal Using Relay NAT) • 단말들은 공중망에 위치한 TURN 서버와 세션을 설정 • TRUN 서버가 단말간 통신을 중계 • Symmetric NAT(APDM+APDF) 환경에서 통신 가능한 유일한 방법 • ICE (Interactive Connectivity Establishment) • STUN/TURN을 사용할 때 P2P 방식을 통해 최적의 라우팅 제공 기법 • 세션 설정 과정에서 가능한 모든 S-IP를 동원하여 시그널링 시도 • 주소들의 우선순위는 직접 통신 가능한 주소가 우선 • Local Address(Device) > NAT Address(STUN) > Relay Address(TURN) 17
  • 18. NAT Traversal Technique Techniques • Relaying (TURN) • Connection Reversal • UDP Hole Punching 18
  • 19. Relaying (TURN) • 개념 • 사설 IP 주소를 가지는 두 단말 간에 직접 통신이 불가능하여, 공인 IP 주소를 가지는 외부 서버를 통해 P2P 데이터 패킷을 Relay하는 개념 • 최종 목적지(상대 단말) 정보는 Replay로 보내는 패킷의 Payload로 전 달 • 장점 • NAT Behavior(Mapping/Filtering)와 관계 없이 모두(9-Types) 지원 • 단점 • 모든 P2P 데이터 패킷이 Relay 서버를 경유 • Relay 서버의 부하 증가 • Relay 서버의 네트워크 대역폭 이슈 발생 • Relay 서버가 분산 배치되지 않은 환경에서는 P2P 통신의 지연 발생 19
  • 21. Connection Reversal • 개념 • P2P통신을 하려는 두 단말 중 하나는 공인 IP를 가지는 경우 적용 가 능 • Private단말→Public단말로의 연결은 문제 없음 (like Client→WebServer) • Public단말 →Private단말로의 연결은 NAT에 의해 차단됨 • 외부 Messaging 서버를 통해 Public단말이 Private단말로 하여금 자 신에게 연결을 하도록 유도(Reverse Connection Request in Payload) 하여 NAT에 “Binding/Filtering Table” 테이블 생성 • 장점 • P2P 데이터 패킷이 Messaging 서버를 통하지 않는다 • NAT Behavior(Mapping/Filtering)와 관계 없이 모두(9-Types) 지원 • 단점 • P2P 단말 중 하나는 반드시 공인 IP 주소 필요 21
  • 24. UDP Hole Punching • 개념 • 공중망의 Messaging서버를 통해 P2P 단말간 연결 지원 • 특징 • EIM-NAT타입만 지원 • Filtering Behavior은 모두 지원 • EIF과 EDF에 따라 미세한 차이 • 가장 효율적인 NAT Traversal 기법 24 EIF EDF (ADF/APDF) 1. 모든 단말은 Payload를 이용해 자신의 Private/Public 정보를 Messaging 서버에 전송/등록 2. Messaging 서버는 모든 단말의 Private/Public 정보를 보관 3. 각 단말들은 P2P통신을 위해 Messaging 에서 상대방 단말 정보 조회 4. Messaging서버는 Payload를 통해 각 단말에게 통신하고자 하는 상대방의 정보를 리턴 (조회 요청 단말과 조회 당한 단말 모두에게 동시 응답) 5. 각 단말은 리턴 된 Payload의 정보를 이용해 상대 단말로 상호 P2P 연결 시도 6. 연결 성공 6. 먼저 연결 시도된 단말은 1회 실패 7. 늦게 시도된 단말은 정상 연결 8. 1회 실패한 단말은 2회부터 정상 연결
  • 25. UDP Hole Punching – EIM & EIF 25 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 26. UDP Hole Punching – EIM & EIF 26 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 27. UDP Hole Punching – EIM & EIF 27 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 28. UDP Hole Punching - EIM & EDF 28 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 29. UDP Hole Punching - EIM & EDF 29 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 30. UDP Hole Punching - EIM & EDF 30http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 31. UDP Hole Punching - EIM & EDF 31 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 32. UDP Hole Punching - Summary 32 http://www.netmanias.com/ko/?m=view&id=blog&no=6263
  • 35. Hairpinning Behavior External Source IP Address and Port • 변조된 패킷의 Source IP/Source Port가 External Address/Port 35 http://www.netmanias.com/ko/?m=view&id=blog&no=5839
  • 36. Hairpinning Behavior Internal Source IP Address and Port • 변조된 패킷의 Source IP/Source Port가 Internal Address/Port 36 http://www.netmanias.com/ko/?m=view&id=blog&no=5839
  • 37. Closing References • NAT (Network Address Translation) 소개 (RFC 3022/2663) • NAT 장비는 이렇게 만들어야 하는데... (RFC 4787) - 1편: Mapping Behavior • NAT 장비는 이렇게 만들어야 하는데... (RFC 4787) - 2편: Filtering Behavior • NAT 장비는 이렇게 만들어야 하는데... (RFC 4787) - 3편: Deterministic Properties • P2P와 NAT: NAT 통과 기법 소개 (RFC 5128) - 1편: Relaying & Connection Reversal • P2P와 NAT: NAT 통과 기법 소개 (RFC 5128) - 2편: UDP Hole Punching • STUN(RFC 3489)과 STUN(RFC 5389/5780)의 차이 • STUN(RFC 3489)을 이용한 NAT Behavior Discovery NETMANIAS 후원 http://www.netmanias.com/ko/?m=view&id=sitenews&no=8335 37