RadarURL
Skip to content
2012.01.03 18:13

PPPoE ( PPP Over Ethernet )

조회 수 3422 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. 개요

 

많은 데이터 접근 기술 중에, 여러 호스트(PC)를 고객이 사용하는 네트워크 장비와 연결하는 방법 중에 가격대비 효율적인 방법은 이더넷이다. 게다가 별도의 설정이 거의 없거나 필요없고, 가능한 낮은 가격으로 장비를 유지보수할 수 있다.

 

PPPoE는 간단한 브릿징 네트워크 장비(bridging access device)를 통해서 호스트들의 네트워크를 원격 데이터 집선기(Access Contentrator)에 연결할 수 있다. 이 모델을 사용해서 각 호스트는 자신만의 PPP 작업 공간(stack)을 사용할 수가 있고 사용자는 쉽게 사용을 할 수가 있다. 데이터 접근 제어, 과금과 서비스 형태는 기본적으로 서비스별로가 아니라 사용자별로 처리가 가능하다.

 

이더넷을 통한 점대점(point-to-point) 연결을 하려면, 각 PPP 세션은 고유한 세션 ID가 있어야할 뿐만 아니라 원격지 피어(peer)의 이더넷 주소를 알아야 한다. PPPoE는 이러한 것을 가능하도록 하는 검색 프로토콜을 포함한다.


 

2. 프로토콜 개요

 

PPPoE는 두 단계가 있다. 검색(Discovery) 단계와 PPP 세션 단계다. 호스트가 PPPoE 세션을 시작하려할 때는, 우선 피어의 이더넷 맥주소(mac address)를 알아야 하고 PPPoE SESSION_ID가 있어야 한다. PPP가 점대점(peer-to-peer) 관계를 지정한다면, 검색은 본래 클라이언트와 서버간 관계이다.

 

검색 과정에서 호스트(클라이언트)는 데이터 집선기(서버)를 찾는다. 네트워크 토폴로지(topology)를 기초로 해서 호스트가 통신할 수 있는 데이터 집선기는 하나 이상일 수 있다. 검색 단계에서 호스트는 모든 데이터 집선기를 찾아서 그 중에 하나를 선택한다. 검색이 성공적으로 완료되면 호스트와 선택된 데이터 집선기는 이더넷을 통한 점대점 연결을 하는 데 사용할 정보를 상호 교환한다.

 

검색 단계는 PPP세션이 확립되기 전까지는 연결 상태 확인이 안된다. PPP세션이 일단 확립되면, 호스트와 데이터 집선기는 PPP 가상 통신을 위해 필요한 자원을 할당해야 한다.

 


3. 패이로드(Payloads)

 

다음으로 패킷 형식을 정의한다. 패이로드 내용은 검색과 PPP 섹션에서 정의할 것이다.
이더넷 프레임은 다음과 같다.

 

                    0 1  2 3  4 5  6 7  8 9  0 1  2 3  4 5
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |       DESTINATION_ADDR          |
                  |          (6 octets)                       |
                  |                                               |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |         SOURCE_ADDR                |
                  |          (6 octets)                        |
                  |                                               |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |    ETHER_TYPE  (2 octets)        |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  ~                                              ~
                  ~           payload                        ~
                  ~                                              ~
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |           CHECKSUM                   |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

DESTINATION_ADDR 필드에 유니캐스트 이더넷 수신지 주소나 이더넷 브로드캐스트 주소(0xffffffff)가 있다. 검색 패킷과 관련해서, 그 값은 검색 섹션에 정의된 것처럼 유니캐스트나 브로드캐스트 주소가 될 수 있다. PPP 세션 부하와 관련해서 이 필드는 검색 단계에서 결정된 피어의 유니캐스트 주소를 포함해야 한다.

 

SOURCE_ADDR 필드는 송신 장비의 이더넷 맥 주소가 있어야 한다.

ETHER_TYPE은 0x8863(검색 단계)나 0x8864(PPP 세션 단계)로 셋팅된다.

PPPoE 이더넷 패이로드는 다음과 같다.

 

                                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  VER   | TYPE |      CODE        |          SESSION_ID                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            LENGTH                      |           payload                        ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

VER 필드는 4비트고 PPPoE 사양 본 버전에서는 0x1로 셋팅해야 한다.

TYPE 필드는 4비트고 PPPoE 사양 본 버전에서는 0x1로 셋팅해야 한다.

CODE 필드는 8비트고 검색과 PPP 세션 단계에 따라 아래와 같이 정의한다.

 

SESSION_ID 필드가 16비트이다. 네트워크 바이트 순(network byte order)으로 부호 없는 값이다.
그 값은 아래 검색 패킷을 위한 용도로 정의된다. 그 값은 주어진 PPP세션에 고정되어 있고 실질적으로 이더넷의 SOURCE_ADDR과 DESTINATION_ADDR와 더불어 PPP세션을 정의한다. 0xffff값은 나중에 사용하기 위해 예약되어 있고 사용되면 안된다.

 

LENGTH 필드는 16비트이다. 그 값은 네트워크 바이트 순으로 PPPoE 페이로드 길이를 나타낸다. 이더넷의이나 PPPoE 헤더 길이는 포함하지 않는다.

 


4. 검색 단계

 

검색하기 위해서는 네 단계가 있다. 완료되었을 때, 양 피어(peer)들은 PPPoE SESSION_ID와 피어의 이더넷 주소를 알게 된다. 그리고 이 두 값은 PPPoE 세션을 고유한 값으로 지정한다.


단계는 호스트가 초기 패킷을 브로드캐스팅하는 것과 하나 혹은 그 이상의 데이터 집선기에서 제안(Offer) 패킷을 보내고, 호스트가 유니캐스트 세션 요청 패킷(Session Request packet)을 보내고 데이터 집선기가 확정(Confirmation) 패킷을 보내는 것으로 구성된다.


호스트가 확정 패킷을 받았을 때, PPP세션 단계를 계속 진행할 것이다. 데이터 집선기는 확정 패킷을 보냈을 때, PPP 세션 단계를 계속 진행할 것이다.

 

모든 검색 이더넷 프레임은 ETHER_TYPE 필드를 0x8863으로 셋팅한다.
PPPoE 패이로드는 0 혹은 그 이상의 TAG를 포함한다. TAG는 TLV(type-length-value) 구성요소이고 다음과 같이 정의한다.

 

                                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          TAG_TYPE                     |        TAG_LENGTH                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          TAG_VALUE ...                                                               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 


TAG_TYPE은 네트워크 바이트 순으로 16비트 필드다. Appendix A 에 모든 TAG_TYPE과 TAG_VALUE 목록이 있다.

 

TAG_LENGTH 는 16비트 필드다. 네트워크 바이트 순으로 부호 없는 숫자이며 TAG_VALUE의 길이를 바이트로 나타낸다.

 

검색 패킷에 알 수 없는 TAG_TYPE의 TAG가 있다면, TAG는 본 문서에 언급하지 않는 것은 무시해야 한다. 이것은 새로운 TAG가 추가가 되었다면(때) 이전과의 호환성을 제공한다.


새로운 필수 TAG가 추가 되었다면, 버전 값이 증가할 것이다.
약간의 검색 패킷의 예가 Appendix B에 있다.

 

 

4.1 PPPoE 활성 검색 시작(Active Discovery Initiation, PADI) 패킷

 

호스트는 PADI 패킷을 브로드캐스트 주소에 DESTINATION_ADDR을 셋팅해서 전송한다. CODE 필드는 0x09로 셋팅하고 SESSION_ID는 0x0000으로 세팅해야 한다.

 

PADI 패킷은 정확히 하나의 TAG_TYPE 서비스 이름의 TAG가 있어야 하고 이것은 호스트가 요청하는 서비스를 나타낸다. 그리고 임의의 다른 TAG 타입을 포함해야 한다.

 

전체 PADI 패킷은(PPPoE 헤더를 포함해서) 1484 바이트를 넘지 말아야 하고 릴레이 에이전트(relay agent)에서 릴레이-세션-아이디(Relay-Session-Id) TAG를 추가할 수 있도록 충분한 여유 공간이 있어야 한다.

 

 

4.2 PPPoE 활성 검색 제공(Active Discovery Offer, PADO) 패킷

 

데이터 집선기에서 서비스가 가능한 PADI를 받았을 때, PADO를 보내서 응답한다.

 

DESTINATION_ADDR은 PADI를 보낸 호스트의 유니캐스트 주소이다. CODE 필드는 0x07이고 SESSION_ID는 0x0000으로 셋팅해야 한다.

PADO 패킷은 데이터 집선기 이름이 포함된 하나의 AC 이름 TAG, PADI에 있는 서비스-이름 TAG와 동일한 TAG, 그리고 데이터 집선기가 제공하는 다른 서비스를 나타내는 임의 수의 서비스-이름 TAG를 포함해야 한다. 데이터 집선기는 PADI에 서비스할 수 없다면 PADO로 응답하지 말아야 한다.

 

 

4.3 PPPoE 활성 검색 요청(Active Discovery Request, PADR) 패킷

 

PADI를 브로드캐스팅한 후에, 호스트는 하나 혹은 그 이상의 PADO를 받을 것이다.

 

호스트는 받은 PADO 패킷을 살펴본 다음 하나를 선택한다.

선택은 AC-이름에 기초할 수도 있고 제공된 서비스에 기초할 수도 있다.

호스트는 다음에 선택한 데이터 집선기에 하나의 PADR을 전송한다.

DESTINATION_ADDR 필드는 PADO를 보낸 데이터 집선기의 유니캐스트 이더넷 주소로 셋팅한다.

CODE 필드는 0x19로 셋팅하고 SESSION_ID는 0x0000이어야 한다.

 

PADR 패킷은 정확히 하나의 TAG_TYPE 서비스-이름(호스트가 요청한 서비스를 나타내는)의 태그를 포함하고 임의 수의 다른 TAG를 포함한다.

 

 

4.4 PPPoE 활성 검색 세션-확정(Active Discovery Session-confirmation, PADS) 패킷

 

데이터 집선기가 PADR을 수신하면, PPP세션을 시작할 준비한다.

 PPPoE 세션을 위해 유일한 SESSION_ID를 생성하고 PADS 패킷으로 호스트에 응답한다.

DESTINATION_ADDR 필드는 PADR을 보낸 호스트의 유니캐스트 이더넷 주소이다.

CODE 필드는 0x65로 셋팅하고 SESSION_ID는 PPPoE 세션을 위해 생성된 유일한 값으로 셋팅해야 한다.

 

PADS 패킷은 정확히 하나의 TAG_TYPE 서비스-이름의 TAG(데이터 집선기가 받이들인 서비스를 나타내는)와 임의 수의 다른 TAG 타입을 포함한다.

 

데이터 집선기가 PADR의 서비스-이름을 선호하지 않는다면, PADS에는 TAG_TYPE 서비스-이름-에러의 태그와 임의의 다른 TAG를 포함해서 응답해야 한다. 이 경우에 SESSION_ID는 0x0000으로 셋팅해야 한다.

 

 

4.5 PPPoE 활성 검색 종료(Active Discovery Terminate, PADT) 패킷

 

이 패킷은 PPPoE 세션 종료를 나타내기 위해 세션이 확립된 이후에 임의의 시간에 보내질 수 있다.

호스트나 데이터 집선기 어느 쪽에서든 보낼수 있다.

 

DESTINATION_ADDR 필드는 유니캐스트 이더넷 주소이고 CODE 필드는 0xa7으로 셋팅되고 SESSION_ID는 종료할 세션을 나타내기 위해 셋팅된다. 어떠한 TAG도 필요하지 않다.

PADT를 받으면, 더 이상 PPP 트래픽은 이 세션을 통해서 전송되지 않는다. 심지어 일반적인 종료 패킷도 PADT를 전송하고 수신한 이후에 전송되어서는 안된다.

 

PPP 피어는 PPPoE 세션을 끊기 위해서 PPP 프로토콜을 사용해야 하지만, PADT는 PPP가 사용될 수 없을 때 사용될 것이다.

 

 

5. PPP 세션 단계

 

일단 PPPoE 세션이 시작되면, PPP 데이터는 다른 PPP 캡슐화되어서 전송된다. 모든 이더넷 패킷은 유니캐스트다.

 

ETHER_TYPE 필드는 0x8864로 셋팅된다.

PPPoE CODE는 0x00으로 셋팅되어야 한다.

SESSION_ID는 PPPoE 세션을 바꾸지 않아야 하고 이 값은 검색 단계에서 지정되어야 한다. PPPoE 패이로드에는 PPP 프레임이 있다.

프레임은 PPP 프로토콜-아이디로 시작한다.

예제 샘플 패킷은 Appendix B에 있다.

 

 

6. LCP 고려 사항

 

매직수 LCP 옵션을 추천한다. 그리고 프로토콜 필드 압축(Protocol Field Compression, PFC) 옵션은 추천하지 않는다.

 

구현하려면 다음 옵션중 어느 것도 요청하면 안되고 아래 같은 옵션을 요청하면 거절해야 한다.

 

     Field Check Sequence (FCS) Alternatives,
     Address-and-Control-Field-Compression (ACFC),
     Asynchronous-COntrol-Character-Map (ACCM)

 

최대 수신 단위(Maximum-Receive-Unit, MRU)옵션은 1492보다 크지 않도록 조절되어야 한다.

이더넷은 최대 패이로드 크기가 1500 바이트, PPPoE 헤더가 6바이트, 그리고 PPP 프로토콜 ID가 2 바이트이므로 PPP MTU는 1492보다 커서는 안된다.

 

데이터 접신지가 세션 상태를 알아내기 위해 호스트에게 보내는 에코-요청(Echo-Request) 패킷은 가끔 전송할 것을 추천한다. 그렇지 않으면 호스트가 종료-요청(Terminate-Request) 패킷을 전송하지 않고 세션을 종료하면 데이터 집선기는 세션이 끊겼는지 알 수가 없을 것이다.

 

LCP가 종료될 때, 호스트와 데이터 집선기는 PPPoE 세션을 사용하기를 멈춰야 한다.

호스트가 또다른 PPP세션을 시작하려면 PPPoE 검색 단계로 다시 돌아가야 한다.

 

 

7. 그밖에 고려할 사항

 

호스트가 PADO 패킷을 지정된 시간내에 받지 못하면, PADI패킷을 재전송해야 하고 대기 주기를 두배로 늘린다. 이것은 원하는 만큼 반복된다. 호스트가 PADS 패킷을 받기위해 대기하고 있다면 비슷한 타임아웃 메카니즘이 사용되어야 하고, 호스트는 PADR을 재전송해야 한다. 지정된 수만큼 재시도한 다음에 호스트는 PADI 패킷을 전송해야 한다.

 

이 문서에서 사용된 ETHER_TYPE(0x8863, 0x8864)는 PPP Over Ethernet(PPPoE) 사용에 돤한 IEEE에서 지정해 왔다. 이 값들의 사용과 PPPoE VER(버전) 필드는 고유하게 이 프로토콜을 특징짓는다.

 

 

8. 보안

 

DOS(Denial of Service) 공격을 대응하는데 도움이 되도록 데이터 집선기는 AC-Cookie TAG를 채용할 수 있다. 데이터 집선기는 PADR SOURCE_ADDR에 기초해서 고유한 TAG_VALUE를 재생성할 수 있어야 한다. 이것을 사용해서 데이터 집선기는 PADI의 SOURCE_ADDR에 확실히 도달할 수 있고, 해당 주소에 대한 동시처리를 제한할 수 있도록 할 수 있다. 어떤 알고리즘을 사용할 것인가는 정의하지 않고 세부 구현의 문제로 남겨둔다. 한 예로 데이터 집선기만 아는 키를 사용하는 HMAC(HMAC over the Host Mac address)[3]가 있다.


AC-Cookie가 일부 DOS공격에 대비해서 유용하지만, 모든 DOS공격을 방어할 수는 없고 데이터 집선기는 자원을 보호하기 위해서는 다른 수단을 채용해야할 것이다.

 

많은 데이터 집선기는 인증되지 않은 개체에게 제공중인 서비스와 관련한 정보를 주고 싶지 않을 것이다.

그 경우에 데이터 집선기는 두 가지 정책 중 하나를 채용해야 한다.

서비스-이름 TAG에 기반한 요청을 거부하지 말아야 하고 항상 수신했던 TAG_VALUE를 반환해야 한다.

혹은 크기가 0인 TAG_LENGTH 서비스-이름 TAG를 지닌 요청만 받아 들여야 한다. 전자를 추천한다.


Appendix A

   TAG_TYPES 와 TAG_VALUES

  

   0x0000 End-Of-List

      이 TAG는 목록에 더 이상의 TAG가 없음을 나타낸다.
      TAG_LENGTH는 항상 0이어야 한다. 

      이 TAG 는 사용할 필요가 없지만 이전과의 호환성 때문에 남아 있다.

  

   0x0101 Service-Name

      이 TAG는 다음에 서비스 이름이 따른다는 것을 나타낸다. 

      TAG_VALUE 는 UTF-8 문자고 NULL로 종료되지 않는다.

      TAG_LENGTH 는 어떤 서비스도 사용불가일 경우에는 0이다.
      서비스-이름 TAG 사용 예들은 ISP 이름이나 서비스 클래스나 질을 나타낸다.

  

   0x0102 AC-Name

      특정 데이터 집선기를 다른 것들과 구분짓는 유일한 문자를 나타내는 TAG.
      트레이드 마크ㅡ, 모델, 시리얼 ID 정보의 조합일 수도 있고,

      단순히 맥값의 UTF-8 형태 변환일 수도 있다. 

      NULL 로 끝나지 않는다.

  

   0x0103 Host-Uniq

      이 TAG 는 데이터 집선기의 응답(PADO or PADS)와 특정 호스트의 요청(PADI or PADR)을

      유일하게 이어 주는데 사용된다. TAG_VALUE 는 임의의 이진 데이터고 호스트가 선택한 길이이다. 

      데이터 집선기에서는 해석되지 않는다. 호스트는 PADI나 PADR에 Host-Uniq TAG를 포함할 수

      있다. 데이터 집선기가 이 TAG를 수신하면 관련된 PADO나 PADS에서 변경하지 말고 포함시켜야

      한다.

  

   0x0104 AC-Cookie

      이 TAG는 데이터 집선기에서 DOS공격을 막기 위해서 사용된다. 

      데이터 집선기는 PADO 패킷에 포함할 수 있다.

      호스트가 이 TAG를 수신하면 PADR에 변경하지 말고 반환해야 한다.

      TAG_VALUE 는 임의의 이진 데이터와 길이이고 호스트에서는 해석되지 않는다.

 

   0x0105 Vendor-Specific

      이 TAG 는 벤더 고유 정보를 넘기는데 사용된다.

      TAG_VALUE의 처음 4 바이트는 벤더 ID가 있고 나머지는 정의되지 않았다.

      벤더 아이디의 바이트 높은 자릿 한 바이트는 0이고 나머지 3바이트는 네트워크 바이트 순으로

      벤더의 SMI 네트워크 관리 비밀 기업 코드(Network Management Private Enterprise Code)이다.

      이 TAG 사용은 권장하지 않는다. 실제 구현은 특정 벤더 TAG는 어느 정도 무시할 것이다.

  

   0x0110 Relay-Session-Id

      이 TAG 는 트래픽을 중계하는 중간 장비에서 임의의 검색 패킷에 추가될 것이다.

      TAG_VALUE은 호스트, 데이터 집선기 모두에 건드리지 않아야 하는 값이다.

      호스트나 데이터 집선기에서 이 TAG를 수신하면 응답으로 보낼 검색 패킷에 변경하지 않고

      포함시켜야 한다. 

      모든 PADI 패킷은 12 바이트 길이의 TAG_VALUE와 중계기 세션 아이디(Relay-Session-Id)

      TAG를 추가하기에 충분한 공간을 확보해야 한다.

      중계기 세션 아이디 TAG는 검색 패킷에 이미 하나가 있다면 추가하지 말아야 한다.

      그 경우에 중계기는 기존 중계기 세션 아이디 TAG를 사용해야 한다.

      기존 TAG를 사용할 수 없거나 TAG를 추가할 충분한 공간이 없으면 송신자에게

      Generic-Error TAG를 전송해야 한다.

  

   0x0201 Service-Name-Error

      이 TAG (특히 길이가 0인 데이터 섹션과 함께) 는 이런 저런 이유로 인해서 요청한 서비스-이름

      요청이 받아들여질 수 없다는 것을 나타낸다.

      만일 데이터가 있고 데이터의 첫 바이트가 0이 아니라면,

      요청이 거절된 이유를 설명하는 프린트할 수 있는 UTF-8 문자여야 한다.
      이 문자열은 NULL 로 끝나지 않을 수도 있다.

  

   0x0202 AC-System-Error

      이 TAG는 데이터 집선기가 호스트 요청을 처리하는 중에 어떤 에러가 발생했음을 나타낸다.

      (예를 들면 가상 회로를 생성하기에 자원이 부족한 경우)

      이것은 PADS 패킷에 포함될 수 있다.
      만일 데이터가 있고 데이터의 첫 바이트가 0이 아니면 에러의 원인을 설명하는 프린트 가능한

      UTF-8 문자이어야 한다. 

      이 문자열은 NULL로 끝나지 않을 수도 있다.

  

   0x0203 Generic-Error

      이 TAG는 에러를 나타낸다.

      복구 불가한 에러가 발생했거나 적절한 에러 태그가 없을 경우에,

      PADO, PADR 혹은 PADS 패킷에 포함될 수 있다.

      데이터가 있다면 그것은 에러의 원인을 나타내는 UTF-8 문자열이어야 한다.
      그 문자열은 NULL로 끝나지 않을 수도 있다.


Appendix B

   다음은 일부 패킷 예:

   

   PADI 패킷:

                                      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         0xffffffff                                                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           0xffff                             |        Host_mac_addr                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Host_mac_addr (cont)                                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    ETHER_TYPE = 0x8863          | v = 1   | t = 1    |  CODE = 0x09   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     SESSION_ID = 0x0000           |      LENGTH = 0x0004                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      TAG_TYPE = 0x0101            |    TAG_LENGTH = 0x0000          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


PADO 패킷:

                                      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Host_mac_addr                                                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Host_mac_addr (cont)         | Access_Concentrator_mac_addr |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Access_Concentrator_mac_addr (cont)                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    ETHER_TYPE = 0x8863          | v = 1   | t = 1    |  CODE = 0x07   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     SESSION_ID = 0x0000           |      LENGTH = 0x0020                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      TAG_TYPE = 0x0101            |    TAG_LENGTH = 0x0000          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      TAG_TYPE = 0x0102            |    TAG_LENGTH = 0x0018          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x47           |     0x6f            |     0x20            |     0x52           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x65           |     0x64           |     0x42            |     0x61           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x63           |     0x6b           |     0x20            |     0x2d           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x20           |     0x65            |     0x73           |     0x68           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x73           |     0x68            |     0x65           |     0x73           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x68           |     0x6f             |     0x6f            |     0x74           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

   PPP LCP 패킷:  PPP 프로토콜 값은 0xc021 이지만 PPP 패이로드는 독자에게 맡긴다.

   이 패킷은 호스트에서 데이터 집선기에 전송된다.

 

                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                  Access_Concentrator_mac_addr                                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Access_Concentrator_mac_addr(c)|        Host_mac_addr                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Host_mac_addr (cont)                                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    ETHER_TYPE = 0x8864           | v = 1   | t = 1   |  CODE = 0x00  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     SESSION_ID = 0x1234            |      LENGTH = 0x????               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    PPP PROTOCOL = 0xc021      |        PPP payload                    ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 

9. 참고 문헌


   [1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51,
       RFC 1661, July 1994
   [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
       Levels", BCP 14, RFC 2119, March 1997.
   [3] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing
       for Message Authentication", RFC 2104, February 1998.
   [4] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700,
       October 1994.  See also: http://www.iana.org/numbers.html
   [5] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC
       2279, January 1998.

출처:

http://tools.ietf.org/html/rfc2516

 

 

출처 : http://blog.daum.net/ypass/11918178

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
» PPPoE ( PPP Over Ethernet ) JaeSoo 2012.01.03 3422
42 [VPN]을 이용한 원격지 게이트웨이 사용하기 JaeSoo 2012.01.01 3005
41 클라우드 스토리지 서비스 - DropBox, KT UCloud, Naver N Drive JaeSoo 2011.12.24 3366
40 OpenVPN 을 통한 VPN 구현 (클라이언트 접속시 암호 인증, 각 VPN클라이언트 끼리 통신) JaeSoo 2011.12.10 4066
39 윈도우 공유(cifs/smbfs/netbios) 사무실을 벗어나자 JaeSoo 2011.11.24 5245
38 외부에서 원격지 Samba 서버로 네트워크 드라이브 연결하기 JaeSoo 2011.11.22 5955
37 원격 FTP 저장소를 네트워크 드라이브로 연결하기 JaeSoo 2011.11.21 4348
36 국내 클라우드(Cloud) 서비스 3총사 비교 - N드라이브/유클라우드/다음클라우드 JaeSoo 2011.09.15 7896
35 조립 PC, 컴퓨터 공유 폴더 설정 방법 JaeSoo 2011.09.10 6931
34 Delay Variation과 Jitter의 차이 JaeSoo 2011.06.10 8408
33 인터넷 티밍(teaming) JaeSoo 2011.03.28 7915
32 Serv-U Certified Add-Ons JaeSoo 2010.12.29 5204
31 Serv-U Log 분석 JaeSoo 2010.12.29 5078
30 VPN으로 집에 있는 PC 네트워크 드라이브로 연결하기 JaeSoo 2010.11.15 8830
29 OpenVPN 설정 for Windows JaeSoo 2010.11.15 5440
28 OpenVPN으로 제약없는 네트워크 사용을... JaeSoo 2010.11.15 4993
27 VoIP 와 Mobile VoIP JaeSoo 2010.03.23 5552
26 윈도우는 티밍, 리눅스는 본딩, AIX에서는 이더채널 또는 채널링 JaeSoo 2010.02.05 8263
25 윈도우에서 default gateway 값 변경 JaeSoo 2010.01.31 7452
24 윈도우에서 2개의 NIC에 서로 다른 route를 설정하는 방법 JaeSoo 2010.01.30 6297
Board Pagination Prev 1 2 3 4 5 Next
/ 5

PageViews   Today : 136   Yesterday : 1,140   Total : 19,808,620  /  Counter Status   Today : 44   Yesterday : 296   Total : 1,421,014
Site Info   Member : 237  /  Total documents : 1,227   New documents : 0  /  Total comments : 24

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소