title: why a layer 2 tunneling protocol when we already have layer 3 tunneling protocol
body: <p>In network, a tunnel is a logical connection between two nodes. In the tunnel, there are multiple routers that physically comprise the path.  Hence the packets in a tunnel are essentially routed via IP. (correct me if I am wrong)</p>
  
  <p>This makes sense to a layer 3 tunneling protocol, where a passenger protocol is encapsulated in an IP protcol. Routeres inside a tunnel can make use of the extra IP headers to route packets to tunnel endpoints.</p>
  
  <p>However in a layer 2 tunneling protocol, a passenger protocol is encapsulated in an layer2 protcol. For example, in L2TP as below, we can see the original packet(ppp header+ppp payload) is encapsulated within a L2TP header, UDP header, IPSec header, IP header, Data-link header. Since we already have a outer IP header, which sufficies to route the whole packets through the tunnel to its endpoints. why do we bother to add another extra data-link header? The only reason that seemes possible to me is that it tries to send this packets over a ppp link or a WAN link, but in practice this link is logical and consists of numerous physical routers. So why would you want to add a extra link layer header? and how would this packet be processed in the tunnel?</p>
  
  <p><img src="https://i.stack.imgur.com/fkrmS.png" alt="enter image description here"></p>