S. D, Bhaskar Kataria, Aditya Sohoni, M. Tahiliani
{"title":"使用TC-BPF和eXpress Data Path (XDP)实现NAT44和NAT64","authors":"S. D, Bhaskar Kataria, Aditya Sohoni, M. Tahiliani","doi":"10.1109/IBSSC56953.2022.10037400","DOIUrl":null,"url":null,"abstract":"Large number of new devices connecting to the Internet has overwhelmed the available IPv4 address space. With devices that are IPv6 enabled, there is a need to translate their addresses to IPv4 so that they can communicate with servers that use IPv4. Network Address Translation (NAT) solves this problem by mapping IPv6 addresses to IPv4 and performing the translation at the router between the IPv4-enabled client and IPv6-enabled server. This is called NAT64. NAT is currently used by most of the Internet Service Providers (ISPs) around the world. However, most of the existing implementations involve a lot of kernel overhead. eXpress Data Path (XDP) is a relatively new concept that lets packets be processed faster than the normal network stack. It requires a modification to the kernel and allows packets to move through an integrated fast path in the kernel stack. XDP-NAT is being treated as a feasible alternative to the traditional NAT implementations, owing to its advantages such as low processing overhead and easy implementation. This work focuses on using the packet processing capabilities of XDP to perform address translation. This paper describes the design and a proof-of-concept implementation of NAT64 using XDP.","PeriodicalId":426897,"journal":{"name":"2022 IEEE Bombay Section Signature Conference (IBSSC)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-12-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Implementation of NAT44 and NAT64 using TC-BPF and eXpress Data Path (XDP)\",\"authors\":\"S. D, Bhaskar Kataria, Aditya Sohoni, M. Tahiliani\",\"doi\":\"10.1109/IBSSC56953.2022.10037400\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Large number of new devices connecting to the Internet has overwhelmed the available IPv4 address space. With devices that are IPv6 enabled, there is a need to translate their addresses to IPv4 so that they can communicate with servers that use IPv4. Network Address Translation (NAT) solves this problem by mapping IPv6 addresses to IPv4 and performing the translation at the router between the IPv4-enabled client and IPv6-enabled server. This is called NAT64. NAT is currently used by most of the Internet Service Providers (ISPs) around the world. However, most of the existing implementations involve a lot of kernel overhead. eXpress Data Path (XDP) is a relatively new concept that lets packets be processed faster than the normal network stack. It requires a modification to the kernel and allows packets to move through an integrated fast path in the kernel stack. XDP-NAT is being treated as a feasible alternative to the traditional NAT implementations, owing to its advantages such as low processing overhead and easy implementation. This work focuses on using the packet processing capabilities of XDP to perform address translation. This paper describes the design and a proof-of-concept implementation of NAT64 using XDP.\",\"PeriodicalId\":426897,\"journal\":{\"name\":\"2022 IEEE Bombay Section Signature Conference (IBSSC)\",\"volume\":\"22 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-12-08\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2022 IEEE Bombay Section Signature Conference (IBSSC)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/IBSSC56953.2022.10037400\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE Bombay Section Signature Conference (IBSSC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IBSSC56953.2022.10037400","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
摘要
大量的新设备连接到互联网,使可用的IPv4地址空间不堪重负。对于启用IPv6的设备,需要将其地址转换为IPv4,以便它们可以与使用IPv4的服务器通信。NAT (Network Address Translation)解决了这个问题,它将IPv6地址映射到IPv4,并在启用IPv4的客户端和启用IPv6的服务器之间的路由器上进行转换。这叫做NAT64。NAT目前被世界上大多数的互联网服务提供商(isp)所使用。然而,大多数现有的实现都涉及到大量的内核开销。eXpress Data Path (XDP)是一个相对较新的概念,它可以比普通网络栈更快地处理数据包。它需要对内核进行修改,并允许数据包通过内核堆栈中的集成快速路径移动。由于XDP-NAT具有处理开销低、易于实现等优点,它被视为传统NAT实现的可行替代方案。这项工作的重点是使用XDP的数据包处理能力来执行地址转换。本文描述了使用XDP的NAT64的设计和概念验证实现。
Implementation of NAT44 and NAT64 using TC-BPF and eXpress Data Path (XDP)
Large number of new devices connecting to the Internet has overwhelmed the available IPv4 address space. With devices that are IPv6 enabled, there is a need to translate their addresses to IPv4 so that they can communicate with servers that use IPv4. Network Address Translation (NAT) solves this problem by mapping IPv6 addresses to IPv4 and performing the translation at the router between the IPv4-enabled client and IPv6-enabled server. This is called NAT64. NAT is currently used by most of the Internet Service Providers (ISPs) around the world. However, most of the existing implementations involve a lot of kernel overhead. eXpress Data Path (XDP) is a relatively new concept that lets packets be processed faster than the normal network stack. It requires a modification to the kernel and allows packets to move through an integrated fast path in the kernel stack. XDP-NAT is being treated as a feasible alternative to the traditional NAT implementations, owing to its advantages such as low processing overhead and easy implementation. This work focuses on using the packet processing capabilities of XDP to perform address translation. This paper describes the design and a proof-of-concept implementation of NAT64 using XDP.