Abstract
Interdomain routing is the task of establishing connectivity among the independently administered networks (called autonomous systems) that constitute the Internet. The protocol used for this task is the Border Gateway Protocol (BGP) [1], which allows autonomous systems to independently define their own route preferences and route advertisement policies. By careful design of these BGP policies, autonomous systems can achieve a variety of objectives.
Currently available configuration and policy languages are low-level and provide only a few basic constructs for abstraction, thus preventing network operators from expressing their intentions naturally.
To alleviate this problem, we have designed Nettle, a domain-specific embedded language (DSEL) for configuring BGP networks, using Haskell [3] as the host language. The embedding in Haskell gives users comprehensive abstraction and calculation constructs, allowing them to clearly describe the ideas generating their BGP policies and router configurations. Furthermore, unlike previous router configuration and policy languages, Nettle allows users to both specify BGP policies at an abstract, network-wide level, and specify vendor-specific router details in a single uniform language.
We have built a compiler that translates Nettle programs into configuration scripts for XORP [4] routers and a simulator that allows operators to test their network configurations before deployment.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Rekhter, Y., Li, T., Hares, S.: A Border Gateway Protocol 4. Internet Engineering Task Force (2006)
Alaettinoglu, C., Villamizar, C., Gerich, E., Kessens, D., Meyer, D., Bates, T., Karrenberg, D., Terpstra, M.: Routing Policy Specification Language (RPSL). Internet Engineering Task Force (June 1999)
Peyton Jones, S., et al.: The Haskell 98 language and libraries: The revised report. Journal of Functional Programming 13(1), 0–255 (2003)
XORP, Inc.: Extensible Open Routing Platform, XORP User Manual, Version 1.6 (January 2009)
Varadhan, K., Govindan, R., Estrin, D.: Persistent route oscillations in inter-domain routing. Computer Networks 32(1), 1–16 (2000)
Mahajan, R., Wetherall, D., Anderson, T.: Understanding BGP misconfiguration. SIGCOMM Comput. Commun. Rev. 32(4), 3–16 (2002)
Hudak, P.: Building domain specific embedded languages. ACM Computing Surveys 28A (December 1996) (electronic)
Hudak, P.: Modular domain specific languages and tools. In: Proceedings of Fifth International Conference on Software Reuse, pp. 134–142. IEEE Computer Society, Los Alamitos (1998)
Griffin, T.G., Jaggard, A.D., Ramachandran, V.: Design principles of policy languages for path vector protocols. In: SIGCOMM 2003: Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications, pp. 61–72. ACM, New York (2003)
Zhang, R., Bartell, M.: BGP Design and Implementation. Cisco Press (2003)
Gao, L., Rexford, J.: Stable internet routing without global coordination. SIGMETRICS Perform. Eval. Rev. 28(1), 307–317 (2000)
Caesar, M., Rexford, J.: BGP routing policies in isp networks. IEEE Network 19(6), 5–11 (2005)
Ramachandran, V.: Foundations of Inter-Domain Routing. PhD thesis, Yale University (May 2005)
Sobrinho, J.L.: Network routing with path vector protocols: theory and applications. In: SIGCOMM 2003: Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications, pp. 49–60. ACM, New York (2003)
Griffin, T.G., Sobrinho, J.L.: Metarouting. In: SIGCOMM 2005: Proceedings of the 2005 conference on Applications, technologies, architectures, and protocols for computer communications, pp. 1–12. ACM, New York (2005)
Thau, B., Joseph, L., Hellerstein, M., Stoica, I., Ramakrishnan, R.: Declarative routing: Extensible routing with declarative queries. In: Proceedings of ACM SIGCOMM 2005 (2005)
Meyers, D., Schmitz, J., Orange, C., Prior, M., Alaettinoglu, C.: Using RPSL in Practice. Internet Engineering Task Force (August 1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 IFIP International Federation for Information Processing
About this paper
Cite this paper
Voellmy, A., Hudak, P. (2009). Nettle: A Language for Configuring Routing Networks. In: Taha, W.M. (eds) Domain-Specific Languages. DSL 2009. Lecture Notes in Computer Science, vol 5658. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03034-5_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-03034-5_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-03033-8
Online ISBN: 978-3-642-03034-5
eBook Packages: Computer ScienceComputer Science (R0)