Utilizing Linux for a network address translation solution

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Major/Subject

Mcode

Language

en

Pages

48

Series

Abstract

The problem of Internet Protocol version 4 (IPv4) address exhaustion has required solutions such as Network Address Translation (NAT) to be created. NAT is used to translate private network IPv4 addresses into public IPv4 addresses within a network device like a router or gateway. While providing a solution to address exhaustion, it also has caused issues. Some of these issues have to do with Virtual Private Networks (VPN). VPNs like IP Security (IPsec) in certain scenarios use two IP headers: an outer and an inner packet header. The inner IP header contains the original IP address, which may be a private IPv4 address due to a NAT device between the two endpoints. When multiple clients from different private networks communicate, there is a possibility that several clients share the same IPv4 address, causing routing conflicts and security risks. This thesis proposes a NAT-based solution for the issues caused by overlapping address spaces on a Linux-based VPN gateway device. The proposed solution is manually implemented into a device within a virtual environment using the Linux XFRM framework for IPsec processing and the Nftables framework for packet management. The implementation is done using the user space tools. The proposed solution supports multiple NAT pools for different traffic, multiple tunnels, and fixes the issues caused by having multiple clients with the same IPv4 addresses present.

Internet Protocol versio 4:n (IPv4) osoitteiden loppumiseen on luotu ratkaisuja, kuten osoitteenmuunnos (engl. Network Address Translation, NAT). Osoitteenmuunnosta käytetään verkkolaitteissa muuntamaan yksityisen verkon IPv4-osoitteet julkisen verkon osoitteiksi. Vaikka osoitteenmuunnos tarjoaa ratkaisun osoitteiden loppumiseen, virtuaalisten erillisverkkojen (engl. Virtual Private Network, VPN) tekniikoiden kanssa on ilmennyt ongelmia. Nämä johtuvat muun muassa siitä, että IP-osoitteet tarkistetaan lähettäjän varmentamiseksi. Lisäksi IPsec:iä käytettäessä tietyin asetuksin paketissa on sisempi ja ulompi IP-osoite. Osoitteenmuunnoksen kanssa tämä ulompi IP-osoite saattaa muuttua, mutta sisempi IP-osoite ei. Tämä aiheuttaa ongelmia, mikäli sisäiset IP-osoiteavaruudet erillisverkon päätepisteissä ovat päällekkäisiä. Tällöin voidaan joutua tilanteeseen, jossa useassa paketissa on sama IPv4-osoite, mutta niillä on eri lähettäjät. Tämä opinnäytetyö esittää osoitteenmuunnoksella tehdyn ratkaisun IP-osoiteavaruuksien päällekkäisyyden aiheuttamiin ongelmiin Linux-pohjaisella erillisverkon yhdyslaitteella. Ratkaisu toteutetaan manuaalisesti järjestelmällä, jota simuloidaan virtuaaliympäristössä. Ratkaisu on toteutettu Linux:n käyttäjätilan työkaluilla. IPsec hallintaa varten hyödynnetään XFRM:n tarjoamia järjestelmäkomentoja ja pakettien hallintaan käytetään Nftables:n komentoja. Esitelty ratkaisu tukee useita osoitteenmuunnokseen käytettyjä osoiteavaruuksia, useita VPN-tunneleita, sekä korjaa päällekkäisten osoiteavaruuksien aiheuttamat ongelmat.aiheuttamat ongelmat.

Description

Supervisor

Sarolahti, Pasi

Thesis advisor

Kukkonen, Mika

Other note

Citation