A middlebox is a computer networking device that transforms, inspects, filters, and manipulates traffic for purposes other than packet forwarding.[1] Examples of middleboxes include firewalls, network address translators (NATs), load balancers, and deep packet inspection (DPI) devices.[2]
The term middlebox was coined in 1999 by UCLA computer science professor Lixia Zhang.[1][3]
Usage
editMiddleboxes are widely deployed across both private and public networks. Dedicated middlebox hardware is widely deployed in enterprise networks to improve network security and performance; however, even home network routers often have integrated firewall, NAT, or other middlebox functionality.[4] One 2017 study counted more than 1,000 deployments in autonomous systems, in both directions of traffic flows, and across a wide range networks, including mobile operators and data center networks.[2]
Examples
editThe following are examples of commonly-deployed middleboxes:
- Firewalls filter traffic based on a set of predefined security rules defined by a network administrator. IP firewalls reject packets "based purely on fields in the IP and transport headers (e.g., disallow incoming traffic to certain port numbers, disallow any traffic to certain subnets etc.)"[1] Other types of firewalls may use more complex rulesets, including those that inspect traffic at the session or application layer.[5]
- Intrusion detection systems (IDSs) monitor traffic and collect data for offline analysis for security anomalies. Unlike firewalls, IDSs do not filter packets in real time, as they are capable of more complex inspection and must decide whether to accept or reject each packet as it arrives.[6]
- Network address translators (NATs) replace the source and/or destination IP addresses of packets that traverse them. Typically, NATs are deployed to allow multiple end hosts to share a single IP address: hosts "behind" the NAT are assigned a private IP address and their packets destined to the public Internet traverse a NAT, which replaces their internal private address with a shared public address.[7] These are widely used by cellular network providers to manage scarce resources.[8]
- WAN optimizers improve bandwidth consumption and perceived latency between endpoints. Typically deployed in large enterprises, WAN optimizers are deployed near both sending and receiving endpoints of communication; the devices then coordinate to cache and compress traffic that traverses the Internet.[9]
- Load balancers provide one point of entry to a service, but forward traffic flows to one or more hosts that actually provide the service.
- Cellular networks use middleboxes to ensure scarce network resources are used efficiently as well as to protect client devices.
Criticism and challenges
editMiddleboxes have generated technical challenges for application development and have incurred "scorn" and "dismay" in the network architecture community[10] for violating the end-to-end principle of computer system design.[11]
Application interference
editSome middleboxes interfere with application functionality, restricting or preventing end host applications from performing properly.
In particular, network address translators (NATs) present a challenge in that NAT devices divide traffic destined to a public IP address across several receivers. When connections between a host on the Internet and a host behind the NAT are initiated by the host behind the NAT, the NAT learns that traffic for that connection belongs to the local host. Thus, when traffic coming from the Internet is destined to the public (shared) address on a particular port, the NAT can direct the traffic to the appropriate host. However, connections initiated by a host on the Internet do not present the NAT any opportunity to "learn" which internal host the connection belongs to. Moreover, the internal host itself may not even know its own public IP address to announce to potential clients what address to connect to. To resolve this issue, several new protocols have been proposed.[12][13][14]
Additionally, because middlebox deployments by cell operators such as AT&T and T-Mobile are opaque, application developers are often "unaware of the middlebox policies enforced by operators", while operators lack full knowledge about application behavior and requirements. For example, one carrier set an "aggressive timeout value to quickly recycle the resources held by inactive TCP connections in the firewall, unexpectedly causing frequent disruptions to long-lived and occasionally idle connections maintained by applications such as push-based email and instant messaging".[8]
Other common middlebox-induced application challenges include web proxies serving "stale" or out-of-date content,[15] and firewalls rejecting traffic on desired ports.[16]
Internet extensibility and design
editOne criticism of middleboxes is they can limit the choice of transport protocols, thus limiting application or service designs. Middleboxes may filter or drop traffic that does not conform to expected behaviors, so new or uncommon protocols or protocol extensions may be filtered out.[17] Specifically, because middleboxes make hosts in private address realms unable to "pass handles allowing other hosts to communicate with them", they have hindered the spread of newer protocols like the Session Initiation Protocol (SIP) as well as various peer-to-peer systems.[10][18] This progressive reduction in flexibility has been described as protocol ossification.[19][20]
Conversely, some middleboxes can assist in protocol deployment by providing a translation between new and old protocols. For example, IPv6 can be deployed on public endpoints such as load balancers, proxies, or other forms of NAT, with backend traffic routed over IPv4 or IPv6.
See also
editReferences
edit- ^ a b c Brian Carpenter (2002). "Middleboxes: Taxonomy and Issues". Ietf Datatracker. doi:10.17487/RFC3234. RFC 3234.
- ^ a b Shan Huang; Steve Uhlig; Félix Cuadrado (2017). "Middleboxes in the Internet: A HTTP perspective". 2017 Network Traffic Measurement and Analysis Conference (TMA). pp. 1–9. doi:10.23919/TMA.2017.8002906. ISBN 978-3-901882-95-1. S2CID 34925433.1-9&rft.date=2017&rft_id=https://api.semanticscholar.org/CorpusID:34925433#id-name=S2CID&rft_id=info:doi/10.23919/TMA.2017.8002906&rft.isbn=978-3-901882-95-1&rft.au=Shan Huang&rft.au=Steve Uhlig&rft.au=Félix Cuadrado&rfr_id=info:sid/en.wikipedia.org:Middlebox" class="Z3988">
- ^ Kromhout, Wileen Wong (February 2, 2012), "Lixia Zhang named to UCLA's Jonathan B. Postel Chair in Computer Science", UCLA Newsroom, archived from the original on April 25, 2019, retrieved 2015-06-14
- ^ Ido Dubrawsky and Wes Noonan. "Broadband Routers and Firewalls". CISCO Press. Retrieved 15 July 2012.
- ^ Magalhaes, Ricky. "The Difference Between Application and Session Layer Firewalls". Retrieved 17 July 2012.
- ^ "Understanding Intrusion Detection Systems". Retrieved 17 July 2012.
- ^ K. Egevang and P. Francis (2001). "The IP Network Address Translator (NAT)". Ietf Datatracker. doi:10.17487/RFC3022. RFC 1631.
- ^ a b Zhaoguang Wang, Zhiyun Qian, Qiang Xu, Z. Morley Mao, Ming Zhang (August 2011). "An Untold Story of Middleboxes in Cellular Networks" (PDF). ACM SIGCOMM Computer Communication Review. 41 (4). Association for Computing Machinery: 374–385. doi:10.1145/2043164.2018479.374-385&rft.date=2011-08&rft_id=info:doi/10.1145/2043164.2018479&rft.au=Zhaoguang Wang, Zhiyun Qian, Qiang Xu, Z. Morley Mao, Ming Zhang&rft_id=https://web.eecs.umich.edu/~zmao/Papers/netpiculet.pdf&rfr_id=info:sid/en.wikipedia.org:Middlebox" class="Z3988">
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ Poe, Robert. "What Is WAN Optimization, and How Can It Help You?". Retrieved 17 July 2012.
- ^ a b Michael Walfish, Jeremy Stribling, Maxwell Krohn, Hari Balakrishnan, Robert Morris, and Scott Shenker (2004). "Middleboxes No Longer Considered Harmful" (PDF). 6th Symposium on Operating Systems Design and Implementation. USENIX Association: 215–230.215-230&rft.date=2004&rft.au=Michael Walfish, Jeremy Stribling, Maxwell Krohn, Hari Balakrishnan, Robert Morris, and Scott Shenker&rft_id=https://www.usenix.org/legacy/event/osdi04/tech/full_papers/walfish/walfish.pdf&rfr_id=info:sid/en.wikipedia.org:Middlebox" class="Z3988">
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ Walfish; et al. (2004). "Middleboxes no longer considered harmful" (PDF). OSDI. Retrieved 17 July 2012.
- ^ J. Rosenberg; et al. (2008). "Session Traversal Utilities for NAT (STUN)". Ietf Datatracker. doi:10.17487/RFC5389. RFC 5389. S2CID 6777753.
- ^ "NAT-PMP". Ietf Datatracker. Retrieved 17 July 2012.
- ^ "Port Control Protocol Working Group". Retrieved 17 July 2012.
- ^ "BlueCoat Knowledge Base: Proxy is displaying stale content". Retrieved 17 July 2012.
- ^ "Using FaceTime and iMessage behind a firewall". Retrieved 17 July 2012.
- ^ Honda; et al. (2011). "Is it still possible to extend TCP?" (PDF). Internet Measurement Conference.
- ^ Bryan Ford; Pyda Srisuresh; Dan Kegel (2005). "Peer-to-Peer Communication Across Network Address Translators" (PDF). 2005 USENIX Annual Technical Conference. USENIX Association: 179–192. arXiv:cs/0603074. Bibcode:2006cs........3074F.179-192&rft.date=2005&rft_id=info:arxiv/cs/0603074&rft_id=info:bibcode/2006cs........3074F&rft.au=Bryan Ford&rft.au=Pyda Srisuresh&rft.au=Dan Kegel&rft_id=https://www.usenix.org/legacy/event/usenix05/tech/general/full_papers/ford/ford.pdf&rfr_id=info:sid/en.wikipedia.org:Middlebox" class="Z3988">
- ^ Papastergiou, Giorgos; Fairhurst, Gorry; Ros, David; Brunstrom, Anna; Grinnemo, Karl-Johan; Hurtig, Per; Khademi, Naeem; Tuxen, Michael; Welzl, Michael; Damjanovic, Dragana; Mangiante, Simone (2017). "De-Ossifying the Internet Transport Layer: A Survey and Future Perspectives". IEEE Communications Surveys & Tutorials. 19 (1): 619–639. doi:10.1109/COMST.2016.2626780. hdl:2164/8317. ISSN 1553-877X. S2CID 1846371. Archived (PDF) from the original on 2021-09-22.619-639&rft.date=2017&rft_id=info:hdl/2164/8317&rft_id=https://api.semanticscholar.org/CorpusID:1846371#id-name=S2CID&rft.issn=1553-877X&rft_id=info:doi/10.1109/COMST.2016.2626780&rft.aulast=Papastergiou&rft.aufirst=Giorgos&rft.au=Fairhurst, Gorry&rft.au=Ros, David&rft.au=Brunstrom, Anna&rft.au=Grinnemo, Karl-Johan&rft.au=Hurtig, Per&rft.au=Khademi, Naeem&rft.au=Tuxen, Michael&rft.au=Welzl, Michael&rft.au=Damjanovic, Dragana&rft.au=Mangiante, Simone&rft_id=https://ieeexplore.ieee.org/document/7738442&rfr_id=info:sid/en.wikipedia.org:Middlebox" class="Z3988">
- ^ Corbet, Jonathan (January 29, 2018). "QUIC as a solution to protocol ossification". lwn.net. Retrieved 2020-03-14.