Recipe for TAYGA - an out-of-kernel stateless NAT64 implementation for Linux --- .../tayga/files/tayga.conf | 103 ++++++++++++++++++ .../tayga/files/tayga.service | 12 ++ .../recipes-connectivity/tayga/tayga_0.9.2.bb | 20 ++++ 3 files changed, 135 insertions(+) create mode 100644 meta-networking/recipes-connectivity/tayga/files/tayga.conf create mode 100644 meta-networking/recipes-connectivity/tayga/files/tayga.service create mode 100644 meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb
diff --git a/meta-networking/recipes-connectivity/tayga/files/tayga.conf b/meta-networking/recipes-connectivity/tayga/files/tayga.conf new file mode 100644 index 000000000000..c1b6163a4591 --- /dev/null +++ b/meta-networking/recipes-connectivity/tayga/files/tayga.conf @@ -0,0 +1,103 @@ +# +# Sample configuration file for TAYGA 0.9.2 +# +# Modify this to use your own addresses!! +# + +# +# TUN device that TAYGA will use to exchange IPv4 and IPv6 packets with the +# kernel. You may use any name you like, but `nat64' is recommended. +# +# This device may be created before starting the tayga daemon by running +# `tayga --mktun`. This allows routing and firewall rules to be set up prior +# to commencement of packet translation. +# +# Mandatory. +# +tun-device nat64 + +# +# TAYGA's IPv4 address. This is NOT your router's IPv4 address! TAYGA +# requires its own address because it acts as an IPv4 and IPv6 router, and +# needs to be able to send ICMP messages. TAYGA will also respond to ICMP +# echo requests (ping) at this address. +# +# This address can safely be located inside the dynamic-pool prefix. +# +# Mandatory. +# +ipv4-addr 192.168.254.1 + +# +# TAYGA's IPv6 address. This is NOT your router's IPv6 address! TAYGA +# requires its own address because it acts as an IPv4 and IPv6 router, and +# needs to be able to send ICMP messages. TAYGA will also respond to ICMP +# echo requests (ping6) at this address. +# +# You can leave ipv6-addr unspecified and TAYGA will construct its IPv6 +# address using ipv4-addr and the NAT64 prefix. +# +# Optional if the NAT64 prefix is specified, otherwise mandatory. It is also +# mandatory if the NAT64 prefix is 64:ff9b::/96 and ipv4-addr is a private +# (RFC1918) address. +# +#ipv6-addr 2001:db8:1::2 +ipv6-addr fdaa:bb:1::1 + +# +# The NAT64 prefix. The IPv4 address space is mapped into the IPv6 address +# space by prepending this prefix to the IPv4 address. Using a /96 prefix is +# recommended in most situations, but all lengths specified in RFC 6052 are +# supported. +# +# This must be a prefix selected from your organization's IPv6 address space +# or the Well-Known Prefix 64:ff9b::/96. Note that using the Well-Known +# Prefix will prohibit IPv6 hosts from contacting IPv4 hosts that have private +# (RFC1918) addresses, per RFC 6052. +# +# The NAT64 prefix need not be specified if all required address mappings are +# listed in `map' directives. (See below.) +# +# Optional. +# +##prefix 2001:db8:1:ffff::/96 +prefix 64:ff9b::/96 + +# +# Dynamic pool prefix. IPv6 hosts which send traffic through TAYGA (and do +# not correspond to a static map or an IPv4-translatable address in the NAT64 +# prefix) will be assigned an IPv4 address from the dynamic pool. Dynamic +# maps are valid for 124 minutes after the last matching packet is seen. +# +# If no unassigned addresses remain in the dynamic pool (or no dynamic pool is +# configured), packets from unknown IPv6 hosts will be rejected with an ICMP +# unreachable error. +# +# Optional. +# +dynamic-pool 192.168.254.0/24 + +# +# Persistent data storage directory. The dynamic.map file, which saves the +# dynamic maps that are created from dynamic-pool, is stored in this +# directory. Omit if you do not need these maps to be persistent between +# instances of TAYGA. +# +# Optional. +# +data-dir /var/spool/tayga + +# +# Establishes a single-host map. If an IPv6 host should be consistently +# reachable at a specific IPv4 address, the mapping can be specified in a +# `map' directive. (IPv6 hosts numbered with an IPv4-translatable address do +# not need map directives.) +# +# IPv4 addresses specified in the `map' directive can safely be located inside +# the dynamic-pool prefix. +# +# Optional. +# +#map 192.168.5.42 2001:db8:1:4444::1 +#map 192.168.5.43 2001:db8:1:4444::2 +#map 192.168.255.2 2001:db8:1:569::143 diff --git a/meta-networking/recipes-connectivity/tayga/files/tayga.service b/meta-networking/recipes-connectivity/tayga/files/tayga.service new file mode 100644 index 000000000000..0bffeb92a501 --- /dev/null +++ b/meta-networking/recipes-connectivity/tayga/files/tayga.service @@ -0,0 +1,12 @@ +[Unit] +SourcePath=/usr/sbin/tayga +Description=LSB: userspace NAT64 + +[Service] +Type=forking +ExecStart=/usr/sbin/tayga -d --config /etc/tayga.conf +RemainAfterExit=yes +TimeoutStopSec=infinity + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb b/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb new file mode 100644 index 000000000000..12d0d14e0d49 --- /dev/null +++ b/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb @@ -0,0 +1,20 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "http://www.litech.org/tayga/tayga-${PV}.tar.bz2" +SRC_URI[md5sum] = "7a7b24165ce008df772f398d86fa280e" +SRC_URI[sha256sum] = "2b1f7927a9d2dcff9095aff3c271924b052ccfd2faca9588b277431a44f0009c" + +SRC_URI += "file://tayga.conf \ + file://tayga.service" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "tayga.service" + +do_install:append() { + install -m 0644 ${WORKDIR}/tayga.conf ${D}${sysconfdir}/tayga.conf + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/tayga.service ${D}${systemd_unitdir}/system/ +} + +inherit autotools systemd -- 2.41.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#104426): https://lists.openembedded.org/g/openembedded-devel/message/104426 Mute This Topic: https://lists.openembedded.org/mt/100777056/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-