BAS를 알기 위해선 "PPP"라는 개념에 대해 알아야 할 필요가 있다.
BAS는 PPPoE(Point-to-Point Protocol over Ethernet)이라는 구조를 사용하는데 이 구조가 보통의 전화 회선을 이용하여 다이얼업(dial-up) 접속으로 이용하는 PPP 구조를 발전시킨 것이기 때문이다.
"다이얼업"이라는 개념부터 알아보자.
우리는 공중 교환 전화망(전화 회선)을 통하여 상대방과의 통신을 수행하기 위해 전화기 다이얼을 돌리거나 버튼을 눌러 상대와 통화 연결을 수행한다.
이때 사용하는 회선을 "다이얼 업 회선(Dial-up Line)"이라고 하며 다이얼 업 회선을 통해 접속하는 것을 다이얼업 접속(Dial-up Connection)이라고 한다.
조금 쉽게 설명하자면 다이얼 업 방식이란 상대와 연결을 수행하기 전 어떠한 과정(전화에선 번호를 누르는 과정)을 수행하여 연락 상대(클라이언트 입장에선 웹 서버가 될 것이다)와 연결하는 과정인 것이다.
그리고 다이얼업 접속을 통해 인터넷에 연결하기 위하여 이용하는 구조가 바로 PPP인 것이다.
전화 회선이나 ISDN을 통해 다이얼 방식으로 인터넷에 접속할 때 PPP 동작은 위 이미지와 같다.
먼저 클라이언트는 프로바이더의 액세스 포인트(모뎀 또는 TA)에 접속을 위한 명령을 내린다.
이는 전화를 할 때 통화 상대의 전화번호를 누르거나 다이얼을 돌리는 과정과 동일하다.
접속 명령을 받은 모뎀이나 TA는 원격 액세스 서버와 회선을 접속한다.
회선을 접속한다는 말이 모호할 수 있지만 TCP/IP에서 통신 상대와 커넥션을 설정하는 것과 유사한 과정이라고 생각하면 된다. TCP/IP에선 클라이언트가 웹 서버와 접속한 뒤 패킷을 송/수신하는데 PPP에선 클라이언트가 모뎀으로, 웹 서버가 RAS(원격 액세스 서버)로 바뀌었을 뿐이라고 이해하면 편하다.
이는 전화를 할 때 번호를 눌러 신호가 간 뒤 실제로 전화 상대와 전화가 연결되는 과정이라고 생각하면 된다.
이후 바로 PPP의 핵심 과정을 수행하기 전 1가지 중간 과정을 거치게 되는데 바로 구성 정보를 교환하는 것이다.
최대 패킷 길이, 인증 프로토콜을 서로 조정하며 PPP를 통한 본인 인증이나 TCP/IP 설정 정보를 교환하는 과정에서 구성 정보의 차이에 의한 문제가 발생하지 않도록 조정하는 것이다.
만약 인증 서버는 100의 데이터를 보내야 하는데 클라이언트가 한 번에 80의 데이터만 받을 수 있는 상황에서 인증 서버가 한 번에 100의 데이터를 보내면 일부 정보가 소실될 수 있는데 이런 문제를 피하기 위한 사전 준비 과정이다.
구성 정보까지 교환했다면 이젠 클라이언트와 RAS는 PPP를 통해 데이터를 주고받을 수 있는 상태가 되었다.
이제부터 설명할 2개의 과정이 PPP의 핵심 내용이라고 말할 수 있다.
먼저 사용자는 사용자명과 패스워드를 입력하려 로그인을 수행한다.
이때 사용하는 사용자명과 패스워드에 대해선 나중에 설명하겠지만 간단히 짚고 넘어가자면 우리는 인터넷을 사용하기 위해 SKT, KT, LG 등의 프로바이더와 계약을 했을 것이다.
이때 계약을 수행하지 않은 사람이 프로바이더의 네트워크를 사용하지 못하도록 프로바이더는 계약자에게 고유한 사용자명과 패스워드를 전달하는데, 이 값을 통해 인터넷을 사용하기 위해 계약한 사람인지를 판단할 수 있는 것이다.
이는 위 이미지의 4번 과정에 해당하며 사용자명과 패스워드를 RAS에 전달함으로써 프로바이더를 활용해 인터넷에 접속할 수 있는 유저인지를 인증받는 것이다.
RAS는 유저로부터 사용자명과 패스워드를 받았다면 RADIUS 프로토콜을 사용하여 인증 정보를 본인 확인용 서버(인증 서버)에 전송하고 인증 서버는 이 인증 정보가 유효한 정보인지를 검사한다.
그리고 인증 서버가 인증 정보가 유효하다고 판단했다면 인증 서버에서 글로벌 IP 주소 등의 설정 정보를 RAS 측에 전달한다.
그리고 RAS는 IPCP에 의해 전달받은 TCP/IP의 설정 정보를 통지하는 것이다.
사용자는 TCP/IP 설정 정보를 통지받으면 이를 활용해 PC를 설정하는데, 이 과정이 PPP의 핵심 과정이다.
이전에 말했듯 인터넷에 접속할 때는 PC에 글로벌 주소가 설정되어 있어야 하는데 네트워크 기기에 따라 고정된 값인 MAC 주소와는 다르게 IP 주소는 사전에 고정된 값으로 결정할 수 없다.
다이얼업 접속은 사용하는 인터넷이 달라진다면 액세스 포인트가 전환될 수 있으며 액세스 포인트가 전환되면 주소 또한 달라지므로 사전에 PC 주소를 고정할 수 없다.
노트북을 집에서 활용할 때는 가정 네트워크를 사용하겠지만 스타벅스 같은 카페에 가면 카페의 네트워크를 사용하는 상황을 생각해 보면 된다.
따라서 인터넷에 접속할 때마다 인터넷 측에서 PC에 통지한 TCP/IP 설정 정보를 통해 글로벌 주소를 PC에 설정할 필요성이 있는 것이다.
사용자 PC가 받은 TCP/IP 설정 정보를 통해 글로벌 IP 주소 등의 설정을 마쳤다면 이제 사용자 PC는 TCP/IP를 통해 패킷을 송/수신할 준비가 완료된 것이며 이후 패킷을 서버와 송/수신할 수 있게 되는 것이다.
ADSL이나 FTTH는 PPP 구조, 특히 본인 인증 과정이 무조건적으로 필요하지는 않다.
ADSL이나 FTTH에선 사용자와 BAS를 케이블을 통해 물리적으로 접속시켜 놓았으므로 굳이 본인인지 확인할 필요가 없기 때문이다.
하지만 사용자명과 패스워드를 통해 인증하는 과정을 남겨두면 사용자명에 따라 프로바이더를 전환할 수 있다.
또한 네트워크 관리 사업자 입장에서도 사용자명을 통해 누가 인터넷에 액세스 하고 있는지 파악할 수 있으므로 관리면에서도 편리하다.
이러한 이유로 액세스 회선의 사업자들이 ADSL이나 FTTH에 PPP 구조를 사용하기로 했다.
여기에서 중요한 점은 ADSL이나 FTTH에서도 PPP 메시지를 신호로 변환하여 송신할 수 있어야 한다는 것이다.
우리는 이전에 이더넷을 통해 IP 패킷을 다음 라우터로 송신하기 위해서 IP 패킷에 MAC 헤더를 붙임으로써 이더넷의 패킷에 IP 패킷을 넣어 운반하는 개념을 배웠다. PPP 메시지를 운반할 때도 이와 같은 개념이 필요하다.
PPP 프로토콜에는 이더넷의 프리앰블, FCS 같은 규정이나 신호에 대한 규정이 딱히 존재하지 않으므로 PPP 메시지를 그대로 신호로 변환하여 송신할 수 없다.
그래서 PPP 메시지를 저장하기 위한 그릇으로 "HDLC"라는 프로토콜을 채용했다.
HDLC는 프리앰블, FCS 같은 규정이나 신호에 대한 규정을 가지고 있고 PPP 메시지를 저장할 수도 있는 프로토콜이다.
따라서 HDLC이라는 그릇에 PPP 메시지를 담는다면 이를 신호로 변환하여 통신 상대측에 전달할 수 있게 되는 것이다.
단지 HDLC라는 프로토콜은 원래 전용선이라는 통신 회선을 사용하여 패킷을 운반하기 위해 만들어진 프로토콜로써 다이얼업 접속에서는 이 과정을 일부 수정하여 사용하는데 그 과정은 위 이미지와 같다.
ADSL이나 FTTH도 HDLC를 그릇으로 사용할 수 있다면 문제없겠지만 그렇지 않으므로 ADSL이나 FTTH는 HDLC를 대신하는 그릇을 준비해야 한다. 그래서 ADSL이나 FTTH는 이더넷 패킷을 HDLC 대신 사용하기로 결정했다.
단지 이더넷과 PPP는 개념이 다른 부분이 있기 때문에 이런 격차를 메울 사양을 새롭게 만들었는데 이를 PPPoE라고 한다.
이렇게 해서 PPPoE를 통해 ADSL이나 FTTH에서도 PPP 메시지를 운반할 수 있고 그 과정은 아래와 같다.
위 이미지는 "ADSL"에 적용된 PPPoE이며 FTTH에선 위 이미지에서 아래와 같이 요소가 변경될 것이다.
BAS라고 하니 새로운 네트워크 기기인 것 같고, 새로운 개념을 공부해야 할 것 같아 두렵지만 사실 크게 보면 라우터의 일종일 뿐이다.
단지 액세스 회선은 지금까지 공부했던 트위스트 페어 케이블을 사용하는 이더넷과는 동작 방식이 다르기 때문에 액세스 회선을 사용해 데이터를 주고받기 위하여 라우터는 그에 맞춰 진화해야 했으며 이렇게 액세스 회선에 맞춰 발전된 라우터를 특별히 명칭 하기 위하여 BAS라는 이름을 붙였다.
참고로 네트워크 기기 중에는 비슷한 역할을 하지만 이름을 다르게 하여 더 고급지게 보이게 하는 경우가 종종 있다.
예를 들어 스위칭 허브 같은 경우 여러 개의 케이블이 스위칭 허브와 연결되어 있으며 1개의 목적지에 패킷을 송신한다는 점에서 라우터와 동작 방식이 유사하다고 볼 수 있다.
하지만 라우터는 고기능의 네트워크 기기이며 스위칭 허브는 저기능의 네트워크 기기라는 의미를 살리기 위하여 "스위칭 허브"라는 이름을 붙인 것이다.
이런 면이 더 강조되는 네트워크 기기는 "레이어 2 스위치"와 "스위칭 허브"이다.
사실 라우터와 스위칭 허브는 이더넷과 IP 규약을 사용해 패킷을 송/수신한다는 점에서 차이가 존재하므로 위 설명이 와닿지 않을 수 있지만 레이어 2 스위치와 스위칭 허브는 완전히 같은 역할을 수행하는 기기이다.
단지 소형이면서 값이 싼 보급형 제품을 스위칭 허브라고 하며 대형의 고성능 허브를 레이어 2 스위치라고 하는 것이다.
이 2개를 같은 이름으로 설정하면 레이어 2 스위치가 고급이라는 것을 강조할 수 없으므로 스위칭 허브와는 다르게 고급 기종이라는 의미로 이름을 다르게 한 것이다.
BAS는 사용자 측 전화국에 설치되어 있는 라우터인데 사용자 측(인터넷 접속용 라우터)과 프로바이더 측 라우터를 연결함으로써 사용자가 인터넷에 접속할 수 있게 도와준다.
전화국 내에는 BAS를 설치하는 장소가 따로 마련되어 있어 액세스 회선 사업자는 전화국에 BAS를 가지고 들어가 설치함으로써 BAS 사용이 가능해진다.
위에서 말했듯 BAS는 액세스 회선과 접속한 라우터로써 일반 라우터에 비해 조금 더 발전된 기능이 존재하는데, 크게 "본인 확인과 설정값 통지" 기능과 "터널링" 개념을 사용한 패킷 운반하는 기능이 존재한다.
위에서 PPP에 대해 배웠으니 이 부분은 쉽게 이해할 수 있을 것이다.
위에서 PPPoE 동작 과정에 대한 이미지를 등록해놨는데 자세히 보면 PPP 메시지를 받아 인증 서버에 전달하는 것이 RAS가 아닌 "BAS"임을 볼 수 있다.
이 과정은 인터넷 로직에서 큰 필요성이 없으나 프로바이더에게 수익과 직관된 매우 중요한 문제이다.
그리고 BAS는 이러한 역할을 수행하기 위해 위에서 설명한 PPPoE라는 구조를 사용하는 것이다.
BAS는 ADSL이나 FTTH의 액세스 회선을 통해 사용자명과 패스워드를 전달받고 RADIUS 프로토콜을 통해 이를 인증 서버로 보낸다.
이후 인증 서버에서 전달 받은 인증 정보가 유효하다고 판단한다면 PPP의 동작과 동일하게 TCP/IP 설정 정보를 전달할 텐데, 이 설정 정보를 BAS에 보내게 된다.
그럼 BAS는 전달받은 TCP/IP 설정 정보를 클라이언트 측에 보냄으로써 클라이언트는 인터넷을 통해 패킷을 송/수신할 수 있게 되는 것이다.
이를 정리하면 아래와 같다.
BAS는 PPP라는 다이얼업 접속 구조를 발전시킨 PPPoE라는 구조를 사용하여 사용자명과 패스워드를 인증 서버에 전달하는 "본인 확인" 기능과 인증 서버에서 전달받은 TCP/IP 설정 정보를 클라이언트에게 전달하는 "설정값 통지"기능을 수행한다.
BAS는 설명한 본인 확인 역할 뿐 아니라 "터널링"이라는 개념을 사용하여 프로바이더 측으로 패킷을 운반하기도 한다.
터널링은 TCP/IP에서 설명했던 소켓 사이를 연결하는 커넥션 개념과 유사하다.
TCP 커넥션에선 한쪽 입구(소켓)에 데이터(패킷)를 넣으면 그 형태 그대로 다른 쪽 출구(소켓)에 도착하는데 터널링 또한 한쪽 터널링 입구에 패킷을 넣으면 그 모습 그대로 다른 쪽 터널링 출구에 도착하는 것이다.
BAS는 프로바이더의 라우터와 ADSL/FTTH 접속 서비스 사업자의 네트워크 사이에 터널을 만든다.
사용자는 액세스 회선을 통해 BAS와 연결되어 있는 상태이며 BAS는 터널링에 의해 사용자 측에서 받은 패킷을 프로바이더 측에 그대로 전달할 수 있으므로 사실상 사용자로부터 프로바이더 측 라우터까지 1개의 회선으로 연결된 것과 동일한 형태를 가진다.
이런 방식을 통해 패킷은 프로바이더 측에 도착할 수 있고 이는 인터넷의 내부로 패킷이 들어갈 수 있다는 말과 동일하다.
터널링 실현 방식엔 2가지가 존재하는데 TCP 커넥션을 사용하는 것과 캡슐화를 사용하는 터널링이다.
TCP 커넥션을 사용하여 터널링을 실현하는 방법은 위 이미지와 같다.
먼저 네트워크에 설치한 터널링용 라우터 사이에 TCP 커넥션을 만들어 놓는다.
이후 2개 라우터 사이에서 패킷을 송/수신할 때 사용하는 포트를 소켓으로 간주하고 그 소켓 사이를 연결하는 TCP 커넥션을 만든다. 커넥션이 만들어졌다면 연결된 TCP 커넥션을 통해 터널링용 라우터끼리 패킷을 송/수신할 수 있는 상태가 된다.
위에서 말했듯 TCP의 커넥션과 터널링은 용어만 다를 뿐 동일한 역할을 수행하므로 TCP 커넥션을 통해 한쪽 라우터에서 다른 쪽 라우터로 패킷을 보낼 수 있다면 이 과정은 터널링을 수행할 수 있는 것과 동일한 의미를 가지는 것이다.
캡슐화 방법을 사용하여 터널링을 실현하는 방법은 위 이미지와 같다.
TCP 커넥션에서는 (헤더 + 데이터)를 연결된 라우터에 송신했지만 캡슐화를 사용할 경우 유저 측에서 전달받은 (헤더 + 데이터)를 1개의 데이터로 간주하고 그 데이터를 위한 헤더를 추가로 만들어 연결된 라우터로 송신하는 것을 볼 수 있다.
유저에게 전달 받은 (헤더 + 데이터)를 캡슐화를 통해 묶은 뒤 라우터에서 캡슐화된 데이터를 위한 헤더를 만들어 터널링을 통해 보내는 개념이다.
이 또한 TCP 커넥션을 이용한 터널링 방법에서 1개의 헤더가 덧붙여질 뿐 형태 그대로 라우터 사이에 패킷을 송/수신한다는 점에선 동일하다.
인터넷을 접속하는 것은 사용자 측에 인터넷 접속용 라우터를 설치하는 것부터 시작한다.
SKT 같은 통신사와 계약하여 업체가 와서 기기를 설치해 주는 과정이라고 생각하면 된다.
인터넷 접속용 라우터에는 프로바이더가 할당한 사용자명과 패스워드가 등록되어 있을 것이다.
인터넷 접속용 라우터는 PPPoE의 Discovery라는 구조에 따라 BAS의 MAC 주소를 조사한다.
Discovery라는 새로운 용어가 나와 새롭게 배워야 하는 건가라고 생각할 수 있지만 일반 라우터에서 수행하는 ARP와 동일한 과정이라고 생각하면 된다.
결국 BAS든 인터넷 접속용 라우터든 라우터의 고급화 버전일 뿐이라는 것을 잊지 말자.
Discovery 구조 또한 인터넷의 브로드캐스트를 이용하여 BAS의 위치를 조사하고 만약 BAS가 Discovery를 위한 패킷을 받았다면 인터넷 접속용 라우터에 BAS의 MAC 주소를 응답 패킷으로 보낼 것이다.
응답 패킷을 받은 인터넷 접속용 라우터는 BAS의 MAC 주소를 등록해 놓을 것이고 이를 통해 BAS와 인터넷 접속용 라우터 간 패킷을 주고받을 수 있게 되는 것이다.
BAS와 인터넷 접속용 라우터 간 패킷 송/수신이 가능해졌다면 BAS에서 PPP를 통해 본인 확인과 설정값 통지 동작을 실행할 것이다.
인터넷 접속용 라우터에 저장되어 있는 사용자명과 패스워드를 BAS에 보내는 방법은 패스워드를 암호화하는 "CHAP" 방식과 패스워드를 암호화하지 않는 "PAP" 방식, 총 2가지 방식이 존재한다.
인터넷 접속용 라우터의 설정에 따라 어떤 방법을 사용하여 인증 정보를 BAS에 보낼지 정해진다.
HTTP보다는 보안적으로 뛰어난 HTTPS 사용이 권장되는 것처럼 암호화하지 않는 PAP보다는 암호화시키는 CHAP 방식이 안정성이 높기 때문에 CHAP 방식을 권장하지만 PAP를 사용했다 하더라도 패스워드가 즉시 도청되지는 않는다.
인증 정보가 BAS까지 흐르는 과정은 "인터넷 접속용 라우터 → ADSL 모뎀 → 액세스 회선 → BAS"로 요약할 수 있다.
일단 인터넷 접속용 라우터나 BAS를 도청할 수 있다면 인터넷 접속용 라우터에서는 내부에 저장되어 있는 인증 정보를, BAS에서는 복호화된 패스워드를 그대로 확인할 수 있기 때문에 CHAP 방식을 사용하더라도 문제가 발생한다.
라우터와 ADSL 모뎀 사이에 전달되는 패킷을 도청할 수 있다면 PAP 방식에선 위험할 수 있겠으나 최근엔 라우터와 ADSL 모뎀을 일체화시킨 기기가 많이 나오는 것도 있고 라우터와 ADSL 모뎀 사이를 도청할 수 있다면 라우터 또한 도청할 수 있을 것이므로 이 상황은 거의 발생하지 않을 것이다.
그렇다면 PAP를 사용할 경우 데이터가 도청될 수 있는 구간은 사실상 액세스 회선에 인증 정보가 흐르는 상황 밖에 없다.
ADSL을 사용할 경우 전주에 가설한 케이블에서 누설되는 전자파에서 데이터를 읽는 장치를 붙여 도청할 수는 있지만 FTTH에선 빛 신호를 사용하기 때문에 전자파조차 누설되지 않으므로 이 방법 또한 불가능하다.
전주에 가설한 케이블에 장치를 붙여 놓는 것도 다른 사람 눈에 띄는 방법이기 때문에 PAP도 암호화를 하지 않는 것 대비 안정성이 높은 송신 방식이라고 할 수 있다.
참고로 BAS에서 인증 서버로 인증 정보를 보낼 때도 도청될 수는 있으나 이 때 사용하는 RADIUS 프로토콜에선 CHAP, PAP 상관없이 암호화하므로 큰 신경을 쓰지 않아도 된다.
BAS에서 받은 인증 정보를 인증 서버 측으로 보낸 뒤 올바른 인증 정보라고 판단되어 인증 서버로부터 TCP/IP 설정 정보를 받은 상황이라고 가정하자. 이제 BAS는 받은 설정 정보를 유저 측에 전달해야 한다.
이때 통지하는 정보는 인터넷에 접속하는 유저에 할당된 글로벌 IP 주소, DNS 서버의 IP 주소, 기본 게이트웨이 IP 주소이다.
인터넷 접속용 라우터를 사용할 경우 인터넷 접속용 라우터는 이러한 TCP/IP 설정 정보를 받아 자체적으로 설정한다.
이렇게 인터넷 접속용 라우터가 자체적으로 설정 정보를 적용했다면 인터넷 접속용 라우터의 BAS 측 포트(BAS와 패킷을 주고받을 포트)에 글로벌 IP 주소가 할당될 것이며 경로표에 기본 게이트웨이 또한 설정될 것이다.
또한 인터넷 접속용 라우터에서 사용자 기기 측 포트는 사용자 기기의 프라이비트 주소가 할당될 것이므로 라우터의 주소 변환 기능을 통해 사용자가 송신한 패킷을 인터넷에 중계할 수 있는 상태가 되는 것이다.
위 과정을 모두 수행하면 BAS와 인터넷 접속용 라우터가 연결된 상태가 되며 BAS는 프로바이더 측 라우터와 터널링을 통해 패킷을 주고받을 수 있는 상태이므로 유저가 인터넷을 통해 패킷을 송/수신할 수 있는 상태가 된다.
유저가 브라우저에서 인터넷에 액세스를 시도하면 인터넷 접속용 라우터로 패킷이 송신될 것이다.
이 패킷의 수신처는 내부 네트워크가 아닌 인터넷의 어느 한 부분이므로 아마 인터넷 접속용 라우터의 경로표에는 등록되어 있지 않을 것이다.
이전에 말했듯 경로표에 일치하는 정보가 없으면 라우터는 기본 경로를 채택하므로 BAS에서 통지받은 기본 게이트웨이에 패킷을 중계할 것이다.
이 과정은 라우터의 패킷 중계 동작과 동일하므로 설명은 생략하겠다.
인터넷 접속용 라우터가 중계 대상을 판단했다면 패킷을 송신할 텐데, 이 때는 PPPoE의 규칙에 따라 송신할 것이다.
일단 일반 라우터와 동일하게 맨 앞에 MAC 헤더를 붙일 것이다.
수신처 MAC 주소에는 PPPoE의 Discovery 과정에서 조사한 BAS의 MAC 주소를, 송신처 MAC 주소에는 인터넷 접속용 라우터의 BAS 측 포트의 MAC 주소를, 이더 타입에는 PPPoE를 나타내는 8864(16진수)라는 값을 입력한다.
이후 송신하는 패킷에 PPPoE의 헤더 및 PPP 헤더를 붙이고 여기에 해당하는 설정값을 기록할 것이다.
PPPoE 헤더 필드 및 PPP 헤더는 아래와 같다.
여기에서 재미있는 부분이 있는데 BAS 측에 보낼 패킷의 내용이 무엇이든 사실상 MAC 헤더, PPP 헤더, PPPoE 헤더의 값은 거의 모두 정해져 있다는 것이다.
대부분의 설정 값이 맨 처음 인터넷 접속용 라우터가 BAS와 연결될 때 수행하는 Discovery 과정에서 정해지는 값이며 페이로드 길이 정도만 패킷의 길이에 따라 달라지는 값일 것이다.
결국 패킷 중계 동작을 할 때 패킷에 기록된 값을 조사하거나 판단하는 과정이 거의 없으며 단순히 사전에 값이 정해져 있는 헤더만 부가한다고 생각해도 큰 문제가 없다.
이렇게 헤더를 붙인 패킷을 신호로 변환한 뒤 BAS 측 포트로 송신하면 되는 것이다.
패킷이 BAS측에 도착하면 일단 BAS는 MAC 헤더와 PPPoE 헤더를 제거한다.
PPPoE 헤더와 MAC 헤더는 인터넷 접속용 라우터와 연결된 라우터에 패킷을 전달하기 위한 설정 값일 뿐이므로 이미 다음 목적지 라우터인 BAS에 도착한 이상 PPPoE 헤더와 MAC 헤더는 제 역할을 다 한 것이다.
BAS가 PPP 헤더 이후의 부분을 추출했다면 터널링의 원리를 통해 터널을 빠져나오는 부분에 있는 프로바이더의 라우터 측으로 패킷을 받은 상태 그대로(엄밀히 말하자면 받은 패킷 중 PPPoE 헤더와 MAC 헤더를 제거한 패킷) 전달한다.
PPP는 프로바이더 액세스 포인터(프로바이더 측 라우터)에 전화를 거는 것(패킷을 전달하는 것)이 목적이므로 패킷이 정상적으로 프로바이더 측에 도착했다면 PPP 헤더는 그 역할을 모두 수행한 것이므로 프로바이더 측 라우터는 PPP 헤더를 없앤다.
이젠 프로바이더 측 라우터는 사용자가 송신한 패킷 그대로의 형태를 확인할 수 있을 것이며 이로써 PPPoE를 통한 패킷 송신 동작이 종료된다.
인터넷 접속을 위해 수행하는 PPPoE 동작에는 재미있는 요소가 존재하는데 바로 헤더의 값이 거의 다 결정되어 있다는 점이다.
이는 인터넷 접속용 라우터는 BAS에만 연결되어 있고 이미 둘 사이에는 설정 과정을 마쳤으므로 송/수신지가 결정되어 있는 것과 마찬가지이기 때문에 발생하는 상황이다.
이 때문에 경로표의 기본 게이트웨이 항목에는 사실 어떠한 값이 들어와 관계가 없는데 어차피 인터넷 접속용 라우터와 BAS는 1:1로 연결되어 있기 때문에 한쪽에서 송신한 패킷은 네트워크 상 문제가 없다면 예외 없이 반대편에 도착하므로 기본 게이트웨이 항목으로 중계 대상의 MAC 주소를 조사하는 동작이 필요 없기 때문이다.
게이트웨이 항목에 주소를 기록할 필요가 없다는 것은 중계 대상 라우터 포트에 IP 주소를 할당할 필요도 없다는 의미이며 이는 1:1로 연결되어 있는 부분 모두에 해당하는 성질이다.
이전에는 이런 상황에도 모든 포트에 IP 주소를 할당해야 하는 규칙이 존재했다.
하지만 네트워크 기기가 증가하며 글로벌 IP 주소가 부족해지자 1:1 형태로 접속되어 있는 포트에는 IP 주소를 할당하지 않아도 괜찮다는 특례가 만들어졌다.
현재는 이런 상황에서 포트에 IP 주소를 할당하지 않는 것이 통례가 되었으며 이를 "언넘버드(unnumbered)"라고 한다.
IP 주소를 할당하지 않는 대신 BAS에서 설정 정보를 통지할 때 모든 값이 설정되므로 큰 문제없이 통신이 가능하다.
원래라면 BAS 측에서 전달한 TCP/IP 설정 정보는 사용자 개인 PC에 할당된 글로벌 IP 주소이므로 사용자 기기에 설정되어 있어야 한다.
하지만 앞서 공부했듯이 인터넷 접속용 라우터를 사용할 경우 BAS가 통지한 설정 정보를 라우터가 받아 라우터 자체에서 설정하기 때문에 BAS 측에서 전달받은 글로벌 IP 주소가 인터넷 접속용 라우터에 설정된다.
즉, PC에 글로벌 IP 주소가 할당되지 않는 것이다.
이 경우 사용자 개인 PC에는 프라이비트 주소가 할당되어 있을 것이며 PC가 보낸 패킷은 인터넷 접속용 라우터에서 주소 변환을 수행한 뒤 인터넷에 패킷을 중계할 것이다.
여기에서 주의해야 할 점이 애플리케이션 중에는 자신의 IP 주소를 통신 상대나 제어용 서버에 통지하는 것이 있는데 주소 변환의 구조가 통지 동작을 지원할 수 없는 경우가 있어 주소 변환의 영향으로 정상 동작하지 않는 애플리케이션이 존재한다는 것이다.
대표적으로 인터넷 전화, 채팅, 전투 게임처럼 클라이언트끼리 패킷을 주고받는 유형의 애플리케이션이 자신의 IP 주소를 상대에게 통지하는 동작을 수행하는 애플리케이션이다.
물론 주소 변환의 영향을 받는 애플리케이션이라도 여러 가지 회피 대책을 통해 정상적으로 활용할 수도 있지만 그럼에도 불구하고 주소 변환의 영향으로 애플리케이션이 정상 동작하지 않는 경우가 있다.
이 경우에는 인터넷 접속용 라우터를 사용하지 않고 BAS가 통지하는 PPPoE 메시지를 PC가 받은 뒤 PC를 해당 설정 정보대로 세팅하여 인터넷과 PC를 직접 연결하는 방법을 선택하면 된다.
이럼 개인 PC에 글로벌 주소가 할당되기 때문에 주소 변환의 원리를 활용하지 않고서도 인터넷에 액세스가 가능하며 따라서 주소 변환의 영향을 받지 않을 것이다.
단지 이 방법을 활용하려면 법인용의 IP8, IP16 같은 서비스를 이용해야 하는데 이 서비스는 월 사용 요금이 수십 만 원으로 고가의 서비스이다.
Point-to-Point over ATM의 약자로써 용어에서 볼 수 있듯 PPPoE와는 ATM 셀을 다르게 활용하여 PPP 메시지를 전달하는 방식이다.
PPPoE를 활용할 경우 PPP 메시지를 이더넷의 패킷에 저장한 후 ATM 셀로 분할하여 신호로 변환했다.
하지만 PPPoA의 경우 PPP 메시지를 그 상태 그대로 ATM 셀로 분할한다.
맨 앞에 MAC 헤더와 PPPoE 헤더를 붙이는 과정이 생략되었을 뿐 PPP 메시지를 주고받는다는 개념은 동일하다.
따라서 본인 확인, TCP/IP 설정 정보 통지 및 패킷 송/수신 동작은 PPPoE와 거의 동일하다.
하지만 맨 앞에 MAC 헤더와 PPPoE 헤더를 붙이는 사소한 동작의 차이가 사용자의 유연성 면에서는 매우 큰 영향을 끼친다.
앞서 말했듯 PPPoE에서 MAC 헤더와 PPPoE 헤더의 목적은 다음 라우터에게 패킷을 전달하기 위함인데, 더 자세하게 들어가면 "이더넷 규칙을 통해" 패킷을 다음 라우터에 전달하기 위한 설정 값이다.
그런데 MAC 헤더와 PPPoE 헤더가 없는 PPPoA의 경우 PPP 메시지를 이더넷 규칙을 통해 신호로 변환할 수 없게 된다.
PPP 메시지를 신호 데이터로 변환을 못하니 당연하게도 이더넷 규칙을 통해 패킷을 송신할 수도 없으며, BAS 측에 PPP 메시지가 전달될 수도 없을 것이다.
따라서 (BAS와 PPP 메시지를 주고받는 기기인) 인터넷 접속용 라우터를 ADSL 모뎀과 일체화시켜 PPP 구조가 동작하도록 만들어줘야 한다.
ADSL 모뎀과 라우터(혹은 개인 PC)를 일체화시키는 방법은 두 가지가 존재한다.
하나는 PC의 USB 인터페이스에 ADSL 모뎀을 연결하여 ADLS 모뎀과 PC를 일체화하는 방법인데, 이 방법은 보급되지 않고 끝났다.
또 하나는 ADSL 모뎀과 라우터를 일체화시킨 라우터 일체형 ADSL 모뎀을 사용하는 방법이다.
이 방법은 PPPoE에서 라우터를 사용하는 방법과 큰 차이가 없으며 단지 라우터에서 패킷을 신호로 변환해 주는 역할까지 수행한다고 생각하면 편하다.
(엄밀히 따지자면 라우터와 ADSL 모뎀이 일체화되어 있으므로 라우터가 같이 존재하는 ADSL 모뎀에 다이렉트로 신호 변환 요청을 보내는 것이다)
단지 이 방법은 인터넷 접속용 라우터를 사용하지 않고 PC를 바로 BAS에 연결하는 상황에 대한 대책이 되지는 않기 때문에 주소 변환에서 문제가 발생할 경우 곤란해지는 해결 방법이다.
하지만 이런 단점에도 PPPoA를 사용하는 이유가 있는데, 바로 PPPoA를 사용할 경우 한 번에 더 많은 데이터를 송신할 수 있다는 점이다.
PPPoE를 사용할 경우 PPPoE 헤더가 부가되어야 하므로 그만큼 MTU가 짧아진다. 게다가 PPPoE는 터널링과 함께 사용되는 것이 일반적인데 이 경우 패킷에 터널링용 헤더까지 붙어 MTU는 더더욱 짧아질 것이다.
하지만 PPPoA는 이더넷의 패킷을 사용하지 않기 때문에 MTU가 짧아지지 않으며 따라서 PPPoE처럼 효율성이 떨어지지 않는다는 장점을 가진다.
PPPoE는 효율성이 떨어지고 PPPoA는 ADSL 모뎀과 라우터를 분리할 수 없다는 제약이 있다. 그리고 이러한 제약이나 한계가 발생하는 것은 본질적으로 PPP를 사용하기 때문이다.
그렇다면 PPP를 사용하지 않으면 되지 않을까?
PPP를 사용하지 않는 사업자는 "DHCP" 구조를 활용해 TCP/IP 설정 정보를 사용자에 통지하는 방법을 사용한다.
DHCP는 주로 사내 LAN에서 클라이언트 PC에 TCP/IP 설정 정보를 통지하기 위해 사용된다.
이 구조는 PC에서 설정 정보를 요구하고 DHCP 서버가 설정 정보를 통지하는 2단계만 수행하는 매우 간단한 방식이다.
즉, 본인 확인 과정이 생략되는 것이다.
물론 사용자명과 패스워드가 없기 때문에 사용자명에 따라 프로바이더를 전환할 수는 없다.
하지만 단순히 인터넷 패킷을 그대로 주고받기만 하면 되므로 PPP의 추가적인 헤더가 붙지 않아 MTU가 짧아지지 않는다는 장점이 존재한다.
DHCP를 채택한 사업자는 ADSL 방식을 사용할 때 PPPoE나 PPPoA와는 달리 ATM 셀을 사용하지 않고서도 이더넷 패킷을 신호로 변경하여 송신할 수 있다.
따라서 ADSl 모뎀과 라우터를 분리할 수 없다는 제약이 없다.
추가로 PPPoE나 PPPoA는 BAS에 비교적 고가인 ATM 인터페이스가 필요하지만 DHCP는 ATM 셀을 사용하지 않으므로 그만큼 비용이 감소된다는 장점도 가지고 있다.