|
1 |
| -<!DOCTYPE html> |
2 |
| -<html> |
3 |
| - <head> |
4 |
| - <meta charset="utf-8" /> |
5 |
| - <meta content='text/html; charset=utf-8' http-equiv='Content-Type'> |
6 |
| - <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 1 | +--- |
| 2 | +--- |
| 3 | +{% capture overview %} |
| 4 | +# Overview |
7 | 5 |
|
8 |
| - |
9 |
| - <title>Nettools – Linux Network Management Tools</title> |
10 |
| - <meta name="title" content="Nettools – Linux Network Management Tools" /> |
11 |
| - <meta property="og:title" content="Nettools – Linux Network Management Tools" /> |
12 |
| - |
13 |
| - |
14 |
| - |
15 |
| - <meta name="description" content="Linux Network Management Tools"> |
16 |
| - <meta property="og:description" content="Linux Network Management Tools" /> |
17 |
| - |
18 |
| - |
19 |
| - <meta name="author" content="Nettools Project" /> |
20 |
| - |
21 |
| - <link rel="shortcut icon" href="/images/nettools.ico" /> |
22 |
| - <link rel="stylesheet" type="text/css" href="/stylesheets/style.css" /> |
23 |
| - <link rel="stylesheet" type="text/css" href="/stylesheets/media-icons.css" /> |
24 |
| - <link rel="stylesheet" type="text/css" href="/stylesheets/syntax.css" /> |
25 |
| - </head> |
26 |
| - |
27 |
| - |
28 |
| - <body> |
29 |
| - <header class="tc pv4"> |
30 |
| - <div> |
31 |
| - <a href="/"> |
32 |
| - |
33 |
| - <img class="h3 w3" |
34 |
| - alt="Back to home" |
35 |
| - src="/images/nettools.svg" /> |
36 |
| - |
37 |
| - </a> |
38 |
| - <h1 class="f5 f4-ns fw6 black-70">Nettools</h1> |
39 |
| - <h2 class="f6 black-70 fw2 ttu tracked">Linux Network Management Tools</h2> |
40 |
| - </div> |
41 |
| - |
42 |
| - <nav class="lh-copy"> |
43 |
| - <a href="/" |
44 |
| - class="mh2 link blue hover-mid-gray">Home</a> |
45 |
| - |
46 |
| - <a href="https://github.com/nettools" |
47 |
| - class="mh2 link blue hover-mid-gray">@GitHub</a> |
48 |
| - |
49 |
| - </nav> |
50 |
| - </header> |
51 |
| - |
52 |
| - <main class="mw7 overflow-hidden |
53 |
| - center pv4 ph2 |
54 |
| - bt b--light-gray |
55 |
| - lh-copy markdown"> |
56 |
| -<article> |
57 |
| - |
58 |
| - |
59 |
| -<h1 id="overview">Overview</h1> |
60 |
| - |
61 |
| -<p>The Nettools Project is a reusable implementation of network configuration |
| 6 | +The Nettools Project is a reusable implementation of network configuration |
62 | 7 | standards for Linux. At its core, it provides independent libraries that
|
63 | 8 | implement the most common RFCs related to network configuration and management.
|
64 | 9 | On top of these, it provides services that extend these libraries, as well as
|
65 | 10 | other networking resources, to provide an integrated view of all these sources
|
66 |
| -at runtime.</p> |
| 11 | +at runtime. |
67 | 12 |
|
68 |
| -<p>The Nettools Project implements standards that are at the core of network |
| 13 | +The Nettools Project implements standards that are at the core of network |
69 | 14 | configuration. While many of these have been around for decades, the
|
70 |
| -implementations provided by the Nettools Project focus on a few key aspects:</p> |
71 |
| - |
72 |
| -<ul> |
73 |
| - <li> |
74 |
| - <p><strong>No Policy</strong>: Every network standard that is implemented by the Nettools |
75 |
| - Project comes with a pure library implementation, that |
76 |
| - provides access to the standard without placing additional |
77 |
| - policies. These libraries provide networking standards that |
78 |
| - are as close to the respective specifications as possible, |
79 |
| - while placing limited to no restrictions on top. |
80 |
| - On the contrary, these implementations are explicitly written |
81 |
| - without any specific environments in mind, but allow any |
82 |
| - networking manager or service to make use of them. This also |
83 |
| - implies that the APIs allow full control of the protocol |
84 |
| - behavior.</p> |
85 |
| - </li> |
86 |
| - <li> |
87 |
| - <p><strong>Asynchronous</strong>: Since network safety is crucial today, all implementations |
88 |
| - and services are provided with a fully asynchronous API. |
89 |
| - This allows placing their instances into isolated |
90 |
| - environments, while mapping the API to an asynchronous |
91 |
| - message-based interface. That is, while the libraries |
92 |
| - provide in-process APIs, they are explicitly written in a |
93 |
| - way that they can be mapped easily to a message-based |
94 |
| - communication channel. Adopters of these libraries are |
95 |
| - highly recommended to isolate execution of these protocols |
96 |
| - and make use of the asynchronous API.</p> |
97 |
| - </li> |
98 |
| - <li> |
99 |
| - <p><strong>21st Century</strong>: Networking standards like <em>DHCP</em> and <em>ACD</em> have been |
100 |
| - around for decades. Thus, they were written against |
101 |
| - hardware that was obsoleted many years ago. Modern |
102 |
| - hardware often no longer fits the models used in the |
103 |
| - 70ths. Therefore, the nettools implementations try to port |
104 |
| - old standards to modern hardware, providing knobs to tune |
105 |
| - parameters that no longer apply in the 21st century (no, |
106 |
| - today it is no longer acceptable to wait 9s on local links |
107 |
| - for address conflict detection to finish).</p> |
108 |
| - </li> |
109 |
| - <li> |
110 |
| - <p><strong>Linux-Only</strong>: Network configuration requires explicit knowledge of the |
111 |
| - corresponding counter-parts in the kernel. While high-level |
112 |
| - APIs may resemble each other across UNIX Derivatives, the |
113 |
| - underlying technologies differ. The Nettools Project aligns |
114 |
| - all implementations with modern Linux Kernel releases and |
115 |
| - makes use of linux-only features to improve performance and |
116 |
| - security of these implementations.</p> |
117 |
| - </li> |
118 |
| -</ul> |
119 |
| - |
120 |
| - |
| 15 | +implementations provided by the Nettools Project focus on a few key aspects: |
| 16 | + |
| 17 | + * **No Policy**: Every network standard that is implemented by the Nettools |
| 18 | + Project comes with a pure library implementation, that |
| 19 | + provides access to the standard without placing additional |
| 20 | + policies. These libraries provide networking standards that |
| 21 | + are as close to the respective specifications as possible, |
| 22 | + while placing limited to no restrictions on top. |
| 23 | + On the contrary, these implementations are explicitly written |
| 24 | + without any specific environments in mind, but allow any |
| 25 | + networking manager or service to make use of them. This also |
| 26 | + implies that the APIs allow full control of the protocol |
| 27 | + behavior. |
| 28 | + |
| 29 | + * **Asynchronous**: Since network safety is crucial today, all implementations |
| 30 | + and services are provided with a fully asynchronous API. |
| 31 | + This allows placing their instances into isolated |
| 32 | + environments, while mapping the API to an asynchronous |
| 33 | + message-based interface. That is, while the libraries |
| 34 | + provide in-process APIs, they are explicitly written in a |
| 35 | + way that they can be mapped easily to a message-based |
| 36 | + communication channel. Adopters of these libraries are |
| 37 | + highly recommended to isolate execution of these protocols |
| 38 | + and make use of the asynchronous API. |
| 39 | + |
| 40 | + * **21st Century**: Networking standards like *DHCP* and *ACD* have been |
| 41 | + around for decades. Thus, they were written against |
| 42 | + hardware that was obsoleted many years ago. Modern |
| 43 | + hardware often no longer fits the models used in the |
| 44 | + 70ths. Therefore, the nettools implementations try to port |
| 45 | + old standards to modern hardware, providing knobs to tune |
| 46 | + parameters that no longer apply in the 21st century (no, |
| 47 | + today it is no longer acceptable to wait 9s on local links |
| 48 | + for address conflict detection to finish). |
| 49 | + |
| 50 | + * **Linux-Only**: Network configuration requires explicit knowledge of the |
| 51 | + corresponding counter-parts in the kernel. While high-level |
| 52 | + APIs may resemble each other across UNIX Derivatives, the |
| 53 | + underlying technologies differ. The Nettools Project aligns |
| 54 | + all implementations with modern Linux Kernel releases and |
| 55 | + makes use of linux-only features to improve performance and |
| 56 | + security of these implementations. |
| 57 | +{% endcapture %} |
| 58 | +{{ overview | markdownify }} |
121 | 59 |
|
122 | 60 | <h2 id="projects">Projects</h2>
|
123 | 61 | <ul>
|
124 |
| - |
125 |
| - |
126 |
| - |
127 |
| - <li> |
128 |
| - <p> |
129 |
| - <a href="/n-acd/"><strong>n-acd</strong></a>: |
130 |
| - <em>IPv4 Address Conflict Detection</em> |
131 |
| - </p> |
132 |
| - <p>The <em>n-acd</em> project implements the <em>IPv4 Address Conflict Detection</em> standard |
133 |
| -as defined in <em>RFC-5227</em>. The state machine is implemented in a shared library |
134 |
| -and provides a stable <em>ISO-C11</em> API. The implementation is linux-only and |
135 |
| -relies heavily on the API behavior of recent linux kernel releases.</p> |
136 |
| - |
137 |
| - <ul> |
138 |
| - <li><strong>Repository</strong>: <a href="https://github.com/nettools/n-acd">@github</a></li> |
139 |
| - </ul> |
140 |
| - </li> |
141 |
| - |
| 62 | +{% assign projects_name = "projects_" | append: site.title %} |
| 63 | +{% assign projects = site[projects_name] | sort: 'title' %} |
| 64 | +{% for project in projects %} |
142 | 65 | <li>
|
143 | 66 | <p>
|
144 |
| - <a href="/n-dhcp4/"><strong>n-dhcp4</strong></a>: |
145 |
| - <em>Dynamic Host Configuration Protocol for IPv4</em> |
| 67 | + <a href="{{ project.url | relative_url }}"><strong>{{ project.title }}</strong></a>: |
| 68 | + <em>{{ project.description }}</em> |
146 | 69 | </p>
|
147 |
| - <p>The n-dhcp4 project implements the IPv4 Dynamic Host Configuration Protocol as |
148 |
| -defined in RFC-2132+.</p> |
149 |
| - |
| 70 | + {{ project.excerpt }} |
150 | 71 | <ul>
|
151 |
| - <li><strong>Repository</strong>: <a href="https://github.com/nettools/n-dhcp4">@github</a></li> |
| 72 | + <li><strong>Repository</strong>: <a href="https://github.com/{{ site.title }}/{{ project.title }}">@github</a></li> |
152 | 73 | </ul>
|
153 | 74 | </li>
|
154 |
| - |
155 |
| - <li> |
156 |
| - <p> |
157 |
| - <a href="/n-ipv4ll/"><strong>n-ipv4ll</strong></a>: |
158 |
| - <em>IPv4 Link-Local Address Selection</em> |
159 |
| - </p> |
160 |
| - <p>The <em>n-ipv4ll</em> project implements link-local address selection for IPv4 as |
161 |
| -defined in <em>RFC-3927</em>. The implementation is linux-only and relies on modern |
162 |
| -linux kernel behavior and features.</p> |
163 |
| - |
164 |
| - <ul> |
165 |
| - <li><strong>Repository</strong>: <a href="https://github.com/nettools/n-ipv4ll">@github</a></li> |
166 |
| - </ul> |
167 |
| - </li> |
168 |
| - |
| 75 | +{% endfor %} |
169 | 76 | </ul>
|
170 | 77 |
|
| 78 | +{% capture underview %} |
| 79 | +## Maintenance |
171 | 80 |
|
| 81 | +All nettools projects are released under the terms of the *Apache Software |
| 82 | +License 2.0, Copyright © 2015-2019 Red Hat, Inc.* as well as the terms of the |
| 83 | +*Lesser General Public License 2.1+*. |
172 | 84 |
|
173 |
| -<h2 id="maintenance">Maintenance</h2> |
174 |
| - |
175 |
| -<p>All nettools projects are released under the terms of the <em>Apache Software |
176 |
| -License 2.0, Copyright © 2015-2019 Red Hat, Inc.</em> as well as the terms of the |
177 |
| -<em>Lesser General Public License 2.1+</em>.</p> |
178 |
| - |
179 |
| -<ul> |
180 |
| - <li><strong>License</strong>: <em>Apache Software License 2.0</em></li> |
181 |
| - <li><strong>License</strong>: <em>Lesser General Public License 2.1+</em></li> |
182 |
| - <li><strong>Maintainers</strong>: <a href="https://github.com/dvdhrm">David Rheinsberg</a>, |
183 |
| - <a href="https://github.com/teg">Tom Gundersen</a></li> |
184 |
| - <li><strong>Mailing-List</strong>: <em>nettools-devel</em> <a href="https://groups.google.com/forum/#!forum/nettools-devel">@googlegroups</a></li> |
185 |
| -</ul> |
186 |
| - |
187 |
| - |
188 |
| - |
189 |
| -</article> |
190 |
| - |
191 |
| - </main> |
192 |
| - |
193 |
| - <footer class="tc pv3 bt bb b--light-silver bg-light-gray"> |
194 |
| -<a href="mailto:nettools-devel@googlegroups.com"><i class="media-icon email"></i></a> |
195 |
| -<a href="https://github.com/nettools"><i class="media-icon github"></i></a> |
196 |
| - |
197 |
| - </footer> |
198 |
| - </body> |
199 |
| -</html> |
| 85 | + * **License**: *Apache Software License 2.0* |
| 86 | + * **License**: *Lesser General Public License 2.1+* |
| 87 | + * **Maintainers**: [David Rheinsberg](https://github.com/dvdhrm), |
| 88 | + [Tom Gundersen](https://github.com/teg) |
| 89 | + * **Mailing-List**: *nettools-devel* [@googlegroups](https://groups.google.com/forum/#!forum/nettools-devel) |
| 90 | +{% endcapture %} |
| 91 | +{{ underview | markdownify }} |
0 commit comments