As you probably saw on our main page, EVIX stands for the Experimental Virtual Internet Exchange. For those who are not familiar with how the internet works, I'll start with the basics. Whether that be your phone or one of the many servers used by Google, every computer must know how to navigate the large number of connections running all over the Earth. Your phone must know how to get to Google, and Google must know how to send the reply back to your phone. Since there are many internet service providers globally, it would be impossible for them all to connect directly to each other. So we have a protocol called BGP that your ISP uses to tell the other ISPs that it connects to that it knows how to get to your phone. All of those ISPs then forward that message to all of the ISPs that they are connected to until the whole world knows the route.
But if a connection has to go through many ISPs, it is going to take longer. So having direct links to more ISPs is usually a good thing. Many ISPs of the same size may connect for free since they both receive benefits by doing that. But once you have more than a few ISPs, the number of direct connections multiplies. Each new ISP would have to connect to every existing one. We have almost 200 members, so each new member would have to connect to 200 existing members!
As you can probably guess, there is a better way. That's with an internet exchange. An internet exchange allows many ISPs or other networks in a close area to make a single connection to the internet exchange, which then acts as if they were directly connected to all of the other members.
But traditional IXs can be very expensive and are generally only available to those who store servers in the same facility. This is reasonable for businesses. For hobbyists like the members of EVIX, it is prohibitively expensive. That's why we created EVIX to support the network engineers of the future. EVIX allows our members to learn how real internet exchanges work at almost no cost. The skills that they learn can be transferred directly to future jobs and experiences. It's been a fantastic learning opportunity for those of us running EVIX since it has allowed us to learn what it is like to develop in an environment where hundreds of people are counting on our work and have particular questions or issues that we never thought about.
Because internet exchanges allow each member to determine their policy with all of the other networks connected to the exchange, it is required that we use connection types that support the tunnelling of packets on layer 2 of the OSI model. This is the layer that Ethernet and MAC addresses work at. Please note that the Generic Routing Encapsulation (GRE) tunnelling protocol is not supported since it can only tunnel layer three packets. GRE-TAP is an extension that can transport layer two packets, but it has inconsistent implementations that often lead to unresolvable issues. For that reason, we do not support it. However, we do support the following connection types.
We are open to trying other protocols that work on layer two as well. Let us know in your ticket.
Bryce Wilson has hosted all of our code on GitHub for anyone to use. The code is not meant to be a cookie-cutter solution at the moment, so there is a lot of documentation that is lacking and other configs that are not integrated into the repository at the moment. It is more meant to be used as a reference for those who have come across similar issues. For example, we have a few JQ scripts for parsing the output of the Bird BGP Daemon.
While we are happy to share our code snippets, we ask that you do not copy our code in its entirety. Essentially, please do not outright copy our website design or text or utilize all of our scripts together as a whole. But in general, we are happy to see our code used by others. If in doubt, send us an email, and we will be glad to chat. We can also give you some tips or help you when something is not adequately explained.
At one point, we were accepting donations by PayPal. We are looking into overhauling the donation system, but this has not been done yet. For now, let us know by email if you wish to donate, and we can help you out with that. We also greatly accept donations of hardware, software, rack space, transit, and sometimes VMs for new POPs if it is in an area where we have little presence. We would currently be open to a POP on the east coast of Canada or the USA, Asia, Africa, or South America. If you have another idea for a POP location or have another donation idea, send us an email and let us know.