I would like to connect (bridge) two networks (ppp0 and eth2). Normally you would do this with brctl but one of the network-interface is a ppp-device so it won't work (ppp can't transport ppp-frames). What I could do, is enable ip-forwarding but that is not enough as I want traffic from that ppp-device only go to eth2 and vice versa. NAT is fine. Another problem is that as far as I know you cannot push routing information to ppp-clients? Any help is appreciated! (solutions that work with windows/mac/android clients would be nice but not absolutely required)


You can't bridge ethernet and PPP because they are different layer two protocols, and incompatible ones at that.

  • PPP, as it's name implies is a direct point to point link. It doesn't know the concept of multiple hosts on the local link.
  • Ethernet on the other hand can have any number (well, lots) of other hosts on the local link.

Reconciling this directly is impossible.

However, there is something else you can do: encapsulate the ethernet packets using an IP-in-IP tunnel between the two PPP endpoints then use brctl to bridge the ethernet and tunnel interfaces.

Read more in the IP-in-IP HOWTO.

  • Note that if security is a concern use a VPN tunnel instead.
    – bahamat
    Jul 21 '12 at 1:34
  • 1
    but would it be possible to bridge on ip level? Jul 21 '12 at 9:04
  • 1
    No. IP is layer 3. Bridging is at layer 2.
    – bahamat
    Jul 21 '12 at 21:03
  • So you never call it a bridge if you would connect somehing on IP layer?
    – JohnyTex
    Jun 3 '15 at 10:31
  • 2
    No, I don't. A bridge is a device that connects L2 (ether) networks. A router or gateway is a device that connects L3 (IP) networks. And the question asks explicitly about brctl and explicitly not IP forwarding.
    – bahamat
    Jun 3 '15 at 10:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.