Вы пробовали logrotate?man logrotate
Вот руководство, которое может помочь. Как использовать logrotate для управления файлами журналов
То, что вы ищете, называется SIIT. Вы можете использовать его для сопоставления адресов IPv4 и IPv6 без сохранения состояния. Взгляните на модуль Linux по адресу https://jool.mx.
Я предлагаю начать с преобразования IPv4 в IPv6 с помощью простого сценария bash. Входной файл (ipv4.txt )будет содержать идентификаторы сайтов и подсети IPv4 (в нотации CIDR ). Идентификаторы сайтов и подсети разделены двоеточием (:). Идентификатор сайта ограничен двумя байтами (и только двумя символами ), поскольку длина одного квартета IPv6 составляет два байта. Это означает, что каждый квартет IPv6 представлен четырьмя шестнадцатеричными цифрами.
$ cat ipv4.txt
US:192.168.1.0/28
C2:10.20.30.224/29
NL:172.30.50.128/28
UK:192.168.1.0/28
Из приведенного выше вывода видно, что Site-US
и Site-UK
имеют конфликтующие подсети, но преобразование IPv6 решит проблему. Когда у вас есть все сокращенные идентификаторы сайтов с соответствующими подсетями, вы можете выполнить следующий скрипт:
#!/bin/bash
# Read IPv4 subnets from a text file ipv4.txt
echo "Converted IP addresses" > ipv6.txt
echo "======================" >> ipv6.txt
while read x; do
# Declare site as TEXT value
a=$(echo -n "$x" | cut -d ":" -f 1)
# Declare site as HEX value
b=$(echo -n "$a" | xxd -p)
# Declare subnet
subnet=$(echo -n "$x" | cut -d ":" -f 2)
# Expand an IPv4 subnet using prips command and replace periods (.)
# with single space and store the results in temp.txt file
# We must remove periods (.) before we convert IPv4 to HEX values
prips $subnet | awk '{print "'$site' " $0}'| tr '.' ' ' > temp.txt
# Convert all single IPv4 addresses to HEX using a while loop
echo >> ipv6.txt
echo "Site: $a" >> ipv6.txt
echo "=========================" >> ipv6.txt
while read y; do
# Append results to a text file ipv6.txt (Note: I have hardcoded 2a03:1000)
ip=$(echo $y | tr ' ' '.')
printf '%x\n' $y | tr '\n' ':' | awk '{print "'$ip' - " "2a03:1000:'$b'::" $0}' | sed 's/.$//' >> ipv6.txt
done < temp.txt
done < ipv4.txt
Вывод должен выглядеть примерно так:
$ cat ipv6.txt
Converted IP addresses
======================
Site: US
=========================
192.168.1.0 - 2a03:1000:5553::c0:a8:1:0
192.168.1.1 - 2a03:1000:5553::c0:a8:1:1
192.168.1.2 - 2a03:1000:5553::c0:a8:1:2
192.168.1.3 - 2a03:1000:5553::c0:a8:1:3
192.168.1.4 - 2a03:1000:5553::c0:a8:1:4
192.168.1.5 - 2a03:1000:5553::c0:a8:1:5
192.168.1.6 - 2a03:1000:5553::c0:a8:1:6
192.168.1.7 - 2a03:1000:5553::c0:a8:1:7
192.168.1.8 - 2a03:1000:5553::c0:a8:1:8
192.168.1.9 - 2a03:1000:5553::c0:a8:1:9
192.168.1.10 - 2a03:1000:5553::c0:a8:1:a
192.168.1.11 - 2a03:1000:5553::c0:a8:1:b
192.168.1.12 - 2a03:1000:5553::c0:a8:1:c
192.168.1.13 - 2a03:1000:5553::c0:a8:1:d
192.168.1.14 - 2a03:1000:5553::c0:a8:1:e
192.168.1.15 - 2a03:1000:5553::c0:a8:1:f
Site: C2
=========================
10.20.30.224 - 2a03:1000:4332::a:14:1e:e0
10.20.30.225 - 2a03:1000:4332::a:14:1e:e1
10.20.30.226 - 2a03:1000:4332::a:14:1e:e2
10.20.30.227 - 2a03:1000:4332::a:14:1e:e3
10.20.30.228 - 2a03:1000:4332::a:14:1e:e4
10.20.30.229 - 2a03:1000:4332::a:14:1e:e5
10.20.30.230 - 2a03:1000:4332::a:14:1e:e6
10.20.30.231 - 2a03:1000:4332::a:14:1e:e7
Site: NL
=========================
172.30.50.128 - 2a03:1000:4e4c::ac:1e:32:80
172.30.50.129 - 2a03:1000:4e4c::ac:1e:32:81
172.30.50.130 - 2a03:1000:4e4c::ac:1e:32:82
172.30.50.131 - 2a03:1000:4e4c::ac:1e:32:83
172.30.50.132 - 2a03:1000:4e4c::ac:1e:32:84
172.30.50.133 - 2a03:1000:4e4c::ac:1e:32:85
172.30.50.134 - 2a03:1000:4e4c::ac:1e:32:86
172.30.50.135 - 2a03:1000:4e4c::ac:1e:32:87
172.30.50.136 - 2a03:1000:4e4c::ac:1e:32:88
172.30.50.137 - 2a03:1000:4e4c::ac:1e:32:89
172.30.50.138 - 2a03:1000:4e4c::ac:1e:32:8a
172.30.50.139 - 2a03:1000:4e4c::ac:1e:32:8b
172.30.50.140 - 2a03:1000:4e4c::ac:1e:32:8c
172.30.50.141 - 2a03:1000:4e4c::ac:1e:32:8d
172.30.50.142 - 2a03:1000:4e4c::ac:1e:32:8e
172.30.50.143 - 2a03:1000:4e4c::ac:1e:32:8f
Site: UK
=========================
192.168.1.0 - 2a03:1000:554b::c0:a8:1:0
192.168.1.1 - 2a03:1000:554b::c0:a8:1:1
192.168.1.2 - 2a03:1000:554b::c0:a8:1:2
192.168.1.3 - 2a03:1000:554b::c0:a8:1:3
192.168.1.4 - 2a03:1000:554b::c0:a8:1:4
192.168.1.5 - 2a03:1000:554b::c0:a8:1:5
192.168.1.6 - 2a03:1000:554b::c0:a8:1:6
192.168.1.7 - 2a03:1000:554b::c0:a8:1:7
192.168.1.8 - 2a03:1000:554b::c0:a8:1:8
192.168.1.9 - 2a03:1000:554b::c0:a8:1:9
192.168.1.10 - 2a03:1000:554b::c0:a8:1:a
192.168.1.11 - 2a03:1000:554b::c0:a8:1:b
192.168.1.12 - 2a03:1000:554b::c0:a8:1:c
192.168.1.13 - 2a03:1000:554b::c0:a8:1:d
192.168.1.14 - 2a03:1000:554b::c0:a8:1:e
192.168.1.15 - 2a03:1000:554b::c0:a8:1:f
Когда у вас есть все адреса IPv6, вы можете передать их в Linux iptables / OpenVPN или коммерческий брандмауэр / решение VPN.
Ресурсы:Объяснение IPv6 , команда prips ,команда xxd