본문 바로가기
Programming

GRE & over IPSec

by homecafe 2009. 10. 16.

  GRE & over IPSec  
Author: seyon    
Date: 2002-05-14 오후 3:34:24 from '211.38.3.65' of '211.38.3.65'

GRE (Generic Routing Encapsulation)

RFC2784 - standard track encapsulation protocol
RFC1701 - intialliy

overall packet
---------------------------------
| |
| Delivery Header |
| |
---------------------------------
| |
| GRE Header |
| |
---------------------------------
| |
| Payload packet |
| |
---------------------------------

The GRE packet header has the form:

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C|R|K|S|s|Recur| Flags | Ver | Protocol Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum (optional) | Offset (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Routing (optional)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Flags and version (2 octets)

Checksum Present (bit 0)
Routing Present (bit 1)
Key Present (bit 2)
Sequence Number Present (bit 3)
Strict Source Route (bit 4)
Recursion Control (bits 5-7)
Version Number (bits 13-15) -> 1

Protocol Type (2 octets) ->


Offset (2 octets)

Checksum (2 octets)

Key (4 octets)

Sequence Number (4 octets)

Routing (variable)


The Routing field is a list of Source Route Entries (SREs). Each
SRE has the form:

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Address Family | SRE Offset | SRE Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Routing Information ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Address Family (2 octets)

SRE Offset (1 octet)

Routing Information (variable)

Forwarding of GRE packets

forwarding deliverly layer에서는 GRE패킷은 변경하지 않음
if system이 받으면 GRE packet인지 확인하는 delivery-specific한 수단을사용한다.
만약 GRE packet이면 Key, Sequence Number, Checksum field가 valid한지 확인한다.
Routing Present bit가 set되어있으면 Address Family field가 semantics에 맞는지 확인할것과
SRE length, SRE offset, Routing Information field를 사용을 check해야함.
Address Family에 대한 SRE를 처리하는 exact한 semantics는 다른 문서에 정의되어있다.

모든 SRE가 처리되면, source route는 완료되고, GRE header는 삭제되고 TTL값을 내리고
payload packet은 normal packet으로 forward된다. exact forwarding method는 Protocol Type field에 달려있다

RFC2784


0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C| Reserved0 | Ver | Protocol Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum (optional) | Reserved1 (Optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.3. Reserved0 (bits 1-12)
RFC1701을 구현하는 receiver가 아니라면 1-5bit가 0이 아니면 버림.
2.4. Protocol Type (2 octets)
마지막에 있음. RFC1700 ETHER TYPES
2.5. Checksum (2 octets)
GRE header와 payload packet 모두의 checksum
2.6. Reserved1 (2 octets)
Checksum flag가 set되어있을때를 제외하고는 전부 0으로 만들어 보냄.

3. IPv4 as a Payload
0x800

3.1. Forwarding Decapsulated IPv4 Payload Packets
tunnel endpoint가 IPv4를 payload로 가지는 GRE packet을 decasulate할때,
IPv4 payload packet의 목적지 주소가 packet을 forward하는데 사용되야 하면
payload packet의 TTL값을 줄인다. packet을 forward할때는 주의해야하는데
payload packet의 목적지구소가 packet의 encapsulator이면 looping이 발생하기 때문이다.
이경우 packet은 discard된다.

4. IPv4 as a Delivery Protocol
protocol number 47이 GRE protocol임.

5. Interoperation with RFC 1701 Compliant Implementations
1701 은 deprecate된 spec임. 그러나 기존 implementation이 존재할수 있다

5.1. RFC 1701 Compliant Receiver
reserved0 필드를 0으로 보낼것이다. 1701호환 receiver는Routing Present,
Key Present, Sequence Number Present, Strict Source Route bit를 0으로 set하고
1701 key, Sequence Nuber, Routing field를 기대하지 않을것이다.

5.2. RFC 1701 Compliant Transmitter
1701에 있는 field를 설정해서 보낼것이다. 1701을 지원하지 않는 receiver는
1-5bit에 설정된 bit가 있으면 discard될것이다.

6. Security Considerations
GRE를 사용하는 network의 Security는 normal IPv4 network과 매우 유사하다.
GRE가 사용하는 routing은 IPv4가 사용하는 routing을 그대로 따르므로.
Route filtering은 unchanged. packet filtering은 firewall이 GRE packet의 내부를
보거나 GRE tunnel의 endpoint에서 이루워져야한다.

7. IANA Considerations

7.1. GRE Version Numbers
GRE version 0 / version1은 PPTP에서 사용됨.

RFC1700

ETHER TYPES

모든 클래스ㅢ network의 대다수는 Ethernet(10Mb)나 Experimental Ethernet(3Mb)
ARPANET의 link필드에서 사용하는방법과 같음.

Ethernet Exp. Ethernet Description References
------------- ------------- ----------- ----------
decimal Hex decimal octal
000 0000-05DC - - IEEE802.3 Length Field [XEROX]
257 0101-01FF - - Experimental [XEROX]
512 0200 512 1000 XEROX PUP (see 0A00) [8,XEROX]
513 0201 - - PUP Addr Trans (see 0A01)[XEROX]
0400 Nixdorf [XEROX]
1536 0600 1536 3000 XEROX NS IDP [133,XEROX]
0660 DLOG [XEROX]
0661 DLOG [XEROX]
2048 0800 513 1001 Internet IP (IPv4) [105,JBP]
2049 0801 - - X.75 Internet [XEROX]
2050 0802 - - NBS Internet [XEROX]
2051 0803 - - ECMA Internet [XEROX]
2052 0804 - - Chaosnet [XEROX]
2053 0805 - - X.25 Level 3 [XEROX]
2054 0806 - - ARP [88,JBP]
2055 0807 - - XNS Compatability [XEROX]
2076 081C - - Symbolics Private [DCP1]
2184 0888-088A - - Xyplex [XEROX]
2304 0900 - - Ungermann-Bass net debugr[XEROX]
2560 0A00 - - Xerox IEEE802.3 PUP [XEROX]
2561 0A01 - - PUP Addr Trans [XEROX]
2989 0BAD - - Banyan Systems [XEROX]
4096 1000 - - Berkeley Trailer nego [XEROX]
4097 1001-100F - - Berkeley Trailer encap/IP[XEROX]

5632 1600 - - Valid Systems [XEROX]
16962 4242 - - PCS Basic Block Protocol [XEROX]
21000 5208 - - BBN Simnet [XEROX]
24576 6000 - - DEC Unassigned (Exp.) [XEROX]
24577 6001 - - DEC MOP Dump/Load [XEROX]
24578 6002 - - DEC MOP Remote Console [XEROX]
24579 6003 - - DEC DECNET Phase IV Route[XEROX]
24580 6004 - - DEC LAT [XEROX]
24581 6005 - - DEC Diagnostic Protocol [XEROX]
24582 6006 - - DEC Customer Protocol [XEROX]
24583 6007 - - DEC LAVC, SCA [XEROX]
24584 6008-6009 - - DEC Unassigned [XEROX]
24586 6010-6014 - - 3Com Corporation [XEROX]
28672 7000 - - Ungermann-Bass download [XEROX]
28674 7002 - - Ungermann-Bass dia/loop [XEROX]
28704 7020-7029 - - LRT [XEROX]
28720 7030 - - Proteon [XEROX]
28724 7034 - - Cabletron [XEROX]
32771 8003 - - Cronus VLN [131,DT15]
32772 8004 - - Cronus Direct [131,DT15]
32773 8005 - - HP Probe [XEROX]
32774 8006 - - Nestar [XEROX]
32776 8008 - - AT&T [XEROX]
32784 8010 - - Excelan [XEROX]
32787 8013 - - SGI diagnostics [AXC]
32788 8014 - - SGI network games [AXC]
32789 8015 - - SGI reserved [AXC]
32790 8016 - - SGI bounce server [AXC]
32793 8019 - - Apollo Computers [XEROX]
32815 802E - - Tymshare [XEROX]
32816 802F - - Tigan, Inc. [XEROX]
32821 8035 - - Reverse ARP [48,JXM]
32822 8036 - - Aeonic Systems [XEROX]
32824 8038 - - DEC LANBridge [XEROX]
32825 8039-803C - - DEC Unassigned [XEROX]
32829 803D - - DEC Ethernet Encryption [XEROX]
32830 803E - - DEC Unassigned [XEROX]
32831 803F - - DEC LAN Traffic Monitor [XEROX]
32832 8040-8042 - - DEC Unassigned [XEROX]
32836 8044 - - Planning Research Corp. [XEROX]
32838 8046 - - AT&T [XEROX]
32839 8047 - - AT&T [XEROX]
32841 8049 - - ExperData [XEROX]
32859 805B - - Stanford V Kernel exp. [XEROX]
32860 805C - - Stanford V Kernel prod. [XEROX]
32861 805D - - Evans & Sutherland [XEROX]
32864 8060 - - Little Machines [XEROX]
32866 8062 - - Counterpoint Computers [XEROX]


32869 8065 - - Univ. of Mass. @ Amherst [XEROX]
32870 8066 - - Univ. of Mass. @ Amherst [XEROX]
32871 8067 - - Veeco Integrated Auto. [XEROX]
32872 8068 - - General Dynamics [XEROX]
32873 8069 - - AT&T [XEROX]
32874 806A - - Autophon [XEROX]
32876 806C - - ComDesign [XEROX]
32877 806D - - Computgraphic Corp. [XEROX]
32878 806E-8077 - - Landmark Graphics Corp. [XEROX]
32890 807A - - Matra [XEROX]
32891 807B - - Dansk Data Elektronik [XEROX]
32892 807C - - Merit Internodal [HWB]
32893 807D-807F - - Vitalink Communications [XEROX]
32896 8080 - - Vitalink TransLAN III [XEROX]
32897 8081-8083 - - Counterpoint Computers [XEROX]
32923 809B - - Appletalk [XEROX]
32924 809C-809E - - Datability [XEROX]
32927 809F - - Spider Systems Ltd. [XEROX]
32931 80A3 - - Nixdorf Computers [XEROX]
32932 80A4-80B3 - - Siemens Gammasonics Inc. [XEROX]
32960 80C0-80C3 - - DCA Data Exchange Cluster[XEROX]
80C4 Banyan Systems [XEROX]
80C5 Banyan Systems [XEROX]
32966 80C6 - - Pacer Software [XEROX]
32967 80C7 - - Applitek Corporation [XEROX]
32968 80C8-80CC - - Intergraph Corporation [XEROX]
32973 80CD-80CE - - Harris Corporation [XEROX]
32975 80CF-80D2 - - Taylor Instrument [XEROX]
32979 80D3-80D4 - - Rosemount Corporation [XEROX]
32981 80D5 - - IBM SNA Service on Ether [XEROX]
32989 80DD - - Varian Associates [XEROX]
32990 80DE-80DF - - Integrated Solutions TRFS[XEROX]
32992 80E0-80E3 - - Allen-Bradley [XEROX]
32996 80E4-80F0 - - Datability [XEROX]
33010 80F2 - - Retix [XEROX]
33011 80F3 - - AppleTalk AARP (Kinetics)[XEROX]
33012 80F4-80F5 - - Kinetics [XEROX]
33015 80F7 - - Apollo Computer [XEROX]
33023 80FF-8103 - - Wellfleet Communications [XEROX]
33031 8107-8109 - - Symbolics Private [XEROX]
33072 8130 - - Hayes Microcomputers [XEROX]
33073 8131 - - VG Laboratory Systems [XEROX]
8132-8136 Bridge Communications [XEROX]
33079 8137-8138 - - Novell, Inc. [XEROX]
33081 8139-813D - - KTI [XEROX]
8148 Logicraft [XEROX]
8149 Network Computing Devices[XEROX]
814A Alpha Micro [XEROX]


33100 814C - - SNMP [JKR1]
814D BIIN [XEROX]
814E BIIN [XEROX]
814F Technically Elite Concept[XEROX]
8150 Rational Corp [XEROX]
8151-8153 Qualcomm [XEROX]
815C-815E Computer Protocol Pty Ltd[XEROX]
8164-8166 Charles River Data System[XEROX]
817D-818C Protocol Engines [XEROX]
818D Motorola Computer [XEROX]
819A-81A3 Qualcomm [XEROX]
81A4 ARAI Bunkichi [XEROX]
81A5-81AE RAD Network Devices [XEROX]
81B7-81B9 Xyplex [XEROX]
81CC-81D5 Apricot Computers [XEROX]
81D6-81DD Artisoft [XEROX]
81E6-81EF Polygon [XEROX]
81F0-81F2 Comsat Labs [XEROX]
81F3-81F5 SAIC [XEROX]
81F6-81F8 VG Analytical [XEROX]
8203-8205 Quantum Software [XEROX]
8221-8222 Ascom Banking Systems [XEROX]
823E-8240 Advanced Encryption Syste[XEROX]
827F-8282 Athena Programming [XEROX]
8263-826A Charles River Data System[XEROX]
829A-829B Inst Ind Info Tech [XEROX]
829C-82AB Taurus Controls [XEROX]
82AC-8693 Walker Richer & Quinn [XEROX]
8694-869D Idea Courier [XEROX]
869E-86A1 Computer Network Tech [XEROX]
86A3-86AC Gateway Communications [XEROX]
86DB SECTRA [XEROX]
86DE Delta Controls [XEROX]
34543 86DF - - ATOMIC [JBP]
86E0-86EF Landis & Gyr Powers [XEROX]
8700-8710 Motorola [XEROX]
8A96-8A97 Invisible Software [XEROX]
36864 9000 - - Loopback [XEROX]
36865 9001 - - 3Com(Bridge) XNS Sys Mgmt[XEROX]
36866 9002 - - 3Com(Bridge) TCP-IP Sys [XEROX]
36867 9003 - - 3Com(Bridge) loop detect [XEROX]
65280 FF00 - - BBN VITAL-LanBridge cache[XEROX]
FF00-FF0F ISC Bunker Ramo [XEROX]

Use of GRE for routing support in IPSec VPNs

--draft

1.0 Introduction
IPSec이 VPN서비스를 제공하는 일반적인 방법이 되었는데 IPSec tunnel을 사용할때
encrypted tunnel 사이에 routing protocol을 전송하는것이 challenging됨.
multicast/broadcast packet을 지원하는 많은 routing protocol을 IPSec으로 encapsulate할수 없음
게다가 IPsec spec은 IPSec이 virtual interface로 제공될것을 요구하지 않음(
virtual interface가 모죠? ㅡ,.ㅡ) 대부분의 security gateway에서
IPsec peer간에 routing 정보교환을 위한 neighbor 관계를 맺기가 어렵다.
그러므로 IPSec 사이에 routing protocol을 지원하는 encapsulation 기술이
필요하게됨.

다른 challenge는 IPSec은 모든 protected network에 대해서 SPD를 정해야만
하는데 이는 새로운 IP network이 VPN에 추가되면 수많은 security gateway의 SPD
를 update해야만 한다.

2 Requirements for IPSec VPNs
2.1 Routing requirements
IPSec tunnel을 통해 dynamic routing protocol을 지원하는것은 VPN based IPSec을 사용하는
대규모 네트웍을 운영하는데 중요한 요구사항이다.
IPSec네트웍에서 user data는 다양한 site에 연결된 IPSec encrypted tunnel을통해 운반된다.
network routing프로토콜은 IPSec encrypted tunnel을 돌아니는데
이웃 router를 발견하기 위해, peer와 정보를 교환하기위해 broadcast, multicast IP packet을
사용한다. IPSec tunnel은 routing protocol에서 사용하는 broadcst, multicast IP를 사용할수 없다.
neighbour관계를 정하기위해 수동으로 혹은 point-point링크를 다루기위해 dynamic routing
transport를 허용하는것은 가능하지만 부가적인 challenge가 필요하다.

ipsec standard는 IPSec이 virtual interface가 구현되어야 한다는 요구사항이 없다.
IGP Protocol은 link state나 distance vector routing을 사용할때 neighbor관계혹은
라우팅 정보를 주고받을수 있는 adjacency를 요구한다. 이들 adjacencies는 같은 subnet에 있는
장비 사이에서만 딜수 있고, 그러므로 routing protocol 패킷이
unicast packet이라 할지라도 virtual inerface로 구현되지 않으면 IPSec peer사이에 adjacency가
형성될수 없다.

IPSec encrypted tunnel사이의 dynamic routing protocol을 전송하는것의 지원의 부족은
그러므로 IPSec 활용이 단지 작은 point-point VPN으로 제한된다. 이를 극복하기 위해
virtual interface를 구현하거나 IP broadcast/multicast를 encapsulate할수 있어야 한다.

2.2 Ease of adding a new IP network
VPN을 위한 IPSec SA를 build하기 위해, SPD는 protected IP network을 지정해야하는데
이들은 두가지 nasty effect가 있다.

1) SPD는 local IP, remote IP pair를 양쪽에 security gateway에 설정해야만 한다.
그러므로 security gateway뒷단에 IP network을 추가하려면 SPD는 양쪽 security
gateway에 update해야만 한다. 큰 VPN의 경우 이는 거의 mesh구조가 될것이고
많은 configuration을 필요로 할것이다.
2) Local IP network, remote IP network 쌍에 대해서 IPSec SA번들이 nego되야하고
SA DB에 install되어야 하는데, 이는 security gateway의 scalability와 performance에
상당한 영향을 준다. (특히 hardware acceleration chip을 사용하는 security gateway는
session key의 수가 제한된다.)

3.0 Routing Support via GRE

GRE encapsulation을 통해서 dynamic routing protocol을 사용하는 multicast/broadcast IP packet
은 GRE tunnel을 통해서 전달될수 있다.

GRE packet은 또한 IP datagram이고, SPD entry를 가진 security gateway는 GRE packet에 IPSec
protection을 정할수 있다. IPSec SA양단의 IPSec security gateway는
initial SA establishment, key refreshment, SA termination을 포함한 IPSec SA maintain해야한다.
아울러 양 device는 user VPN policy에 정의된 tunnel사이에 traffic flow에 대한 active access control
을 유지하는것이 예상된다.

3.1 GRE Encapsulation with IPSec

GRE encapsulated packet:
+---------------------+------------+---------------------------------------+
| delivery IP header | GRE header | original IP header | original payload |
+---------------------+------------+--------------------+------------------+

IPSec security gateway에서 보내면 두가지가 가능하다

GRE with IPSec in tunnel mode
+----------+---------+---------------+-------+-----------+------------+--------+
|New IP hdr|IPSec hdr|IP delivery hdr|GRE hdr|orig IP hdr|orig payload|IPSec tr|
+----------+---------+---------------+-------+-----------+------------+--------+
<- ------------Encrypted---------------------------------->

GRE with IPSec in transport mode
+----------------+-----------+---------+-------------+--------------+----------+
|IP delivery hdr | IPSec hdr | GRE hdr | orig IP hdr | orig payload | IPSec tr |
+----------------+-----------+---------+-------------+--------------+----------+
<------------Encrypted---------------------------->

어짜피 GRE가 새 IP헤더를 붙이므로 GRE와 IPSec을 결합하는데는 IPSec transport mode
가 가장 효율적인 방법이다.

The use of IPSec transport mode however requires that the GRE
encapsulation use an IP address that is routable across the Service
Provider's IP network.

IPSec transport mode를 사용하는것은 GRE encapsulation이 서비스 provider의 IP networkㄹ사이에
routing이 가능한 IP address를 사용해야만 한다. (사설ip등을 사용할수 없다는 얘기 같음)

3.2 GRE Implementation - Tunnel Termination Point

GRE가 enable되면 두 end point사이에 tunnel이 생기는데 IPSec과 결합ㄴ되면
GRE tunnel은 IPSec SA안에 riding해서 tunnel in tunnel이 생성된다. GRE tunnel과 IPSec Tunnel은
일치하지 않을수도 있는데 다음 3개의 시나리오가 가능하다.

Case 1. GRE tunnel and IPSec SA terminate on the same gateway at both ends.

===========IPSec SA=================
| |
| |
|-----------GRE tunnel ------------|
| |
| |
H1 ------ Gw1 ----------(IP Network )------- GW2 ------ H2


Case 2. GRE tunnel terminates on a different device than IPSec at one end.

===========IPSec SA================
| |
| |
H1 ------ GW1 ----------(IP Network) -------- GW2----GWb---H2
| |
|------------- GRE Tunnel ----------------|


Case 3. GRE tunnel and IPSec SA terminate at different end points at both ends.

===========IPSec SA=================
| |
| |
H1 ----GWa-- GW1 -------(IP Network )---------- GW2----GWb---H2
| |
| |
|----------------GRE tunnel ---------------------|

일반적으로는 ipsec과 gre가 통합된 router에서 구현이 되므로 같은 endpoint를 갖지만
두개가 다른 device일때는 다른 endpoint가 될수 있는데 이것은 보통 routing이 지원되지않는
ipsec 지원 firewall이나 vpn appliance가 될것이다.

4.0 Considerations for the use of GRE

4.1 Performance Impact

tunnel mode는 original header에 24byte overhead를 더함. transport mode는 4byte만 더함.
GRE 처리에 따르는 overhead로 throughput이 감소됨.

4.2 Fragmentation and Reassembly

IPSec packet overhead + GRE packet overhead

PMTU discovery가 enable되면 fragmentaion이 avoid됨. PMTUD가 돌기위해서는
ICMP 3, 4 메세지가 allow되어야 함. 지원되지 않으면 fragmentation을 avoid하기위해
lower MTU만 set할수 있다. PMTU discovery를 지원하기 위해서 GRE와 IPSec spec은
내부 IP의 Df비트를 외부로 설정을 허용한다. 보통 device config 옵션임.

PMTUD를 지원하지 않는 end host와 DF를 설정하지 않는 endhost라면 packet을 fragment하고
gre encrypted tunneling통해 보낼것이다.

4.3 IPSec VPN enhancements

4.3.1 Resilient VPN Design

IPSec은 stateless protocol이므로 tunnel failuere를 detect하는것이나
IPSec SA의 상태를 통신하는것둘다 하지 못한다. transport routing rptocol accross IPSec
은 이런 failure 를 detect하는 machanism을 제공한다.
Hello/Keepalive packet은 GRE tunnel intervace가 GRE tunnel failure를 감지하도록 보낸다.
GRE on virtual interface를 구현해서 routing protocol은 IPSec 내부의
GRE tunnel의 availablitiy와 next hop의 reachablity를 track할수 있다.

4.3.2 Multi-protocol transport

많은 application에서 VPN은 multi-protocol traffic을 수행할지도모른다.
IPSec은 layer 2 PDU나 IP가 아닌 layer 3 PDU를 직접 tunnel할수 없는데
GRE는 다른 network패킷을 사용하므로 IPSec 내부의 터널로 될수 있다.

IS-IS routing protocol의 전송은 IP based 가 아니므로 IPSec에의해 tunnel될수 없다.

4.3.3 Multicast

Multicast IP packet은 GRE packet에 의해 encapsulate되므로 IPSec protected GRE tunnel
에 의해 multicast traffic전송이 가능하다. 게다가 mlticast routing protocol
(PIM, ...)등은 GRE virtual interface에 의해 운영이 가능하다.

4.3.4. SPD and SAD scalability

두 IPSec peer간에 SPD는 이제 하나의 entry이다.
<local ip, remote IP, GRE protocol, *, *>
IP address가 IPsec peer의 phsical IP address인.
예를들어 IP address는 SP network에 연결되있다.

IP network는 security gateway뒤에서 추가/삭제/주소변경 되므로 SPD entry
는 바뀔 필요가 없다.

두 IPSec peer사이의 single SPD entry를 가지는것은 IPSec peer사이에
한쌍만 사용됨을 의미하는것이므로 security gateway당 SA수는 급격히 줄어든다.

5.0 Security Issues

GRE를 사용해서 traffic을 encapsulate하면, IPSec traffic filtering이
packet내부를 볼수 없어서 security gateway에 의해 discard되기를 원하는 원친한는
traffic이 GRE encapsulation의 아래서 tunnel될수 있다.

그러므로 GRE tunnel이 의도된 security policy가 bypass하지 않도록 traffic filter의 종류를 강화하는것이
중요하다. 이것은 extra net IPSec VPN tunnel이 포함될때 매우 중요한 요구사항이다.
이것은 multiple SPD가 설정됨을 의미하는데 하나는 GRE packet의 IPSec 처리에 대한
phiscal interface이고 또하나는 GRE tunnel당 virtual interface를 두어 특정 IP packet에
대해서 discard할건지 forward할건지를 필요로한다.

VPN device는 또한 clear text GRE packet이 처리되지 않도록 확인해야한다.

또한, VPN device는 IPSec protected GRE tunnel을 통해 받는 모든 ip packet
의 reverse path check를 적용해야 한다. 이 reverse path check는
는 routing protocol에 의해얻어진 forwarding infomation에 기반해야 한다.
routing protocl이 여러가지 방법으로 돕지만 그것은 static SPD의 구성원이된다.
그러므로 routing protocol은 인증되어야 하고, routing protocol instance는 받아들이면
안되고 IPSec protected GRE packet을 보내고 받는 phisical interface routing 정보를 보내면 안된다.

6.0 Summary for Sub-IP Area

6.1 Summary

PPVPN WG는 현재 3가지 type의 VPN을 지원한다.
Provider Provisioned Network Based Layer 3 VPNs, Provider Provisioned Layer 2
VPNs and Provider Provisioned CE-based VPNs

6.2 Where does it fit in the Picture of the Sub-IP Work?

This work fits squarely in the PPVPN box.

6.3 Why is it targeted at this WG?

현재 IPSec standard가 IP multicast와 broadcast packet을 tunneling하는데
제약이 있고 non-IP layer 3packet도 마찬가지 이기때문에. 이들을 지원하지 못하면
dynamic routing protocol을 지원할수 없다.