Использование NAT с iptables и мостом

Создайте маленький perlscript для сортировки аргументов, передаваемых оболочкой:

#!/usr/bin/perl -l -s

$re ||= qr/(\d+)/;

sub bynum {
   ($aa) = $a =~ $re;
   ($bb) = $b =~ $re;
   return $aa <=> $bb;
}

map { print } sort bynum @ARGV;

Сохраните скрипт как sortargsbynum и вызовите его как выражение оболочки:

for d in $(sortargsbynum conf*); do
   cat $d/distance.txt >> /path/to/folder/d.txt
done

Вы можете передать специальное регулярное выражение для сопоставления, например, чтобы сопоставить только число в конце имени:

for d in $(sortargsbynum -re='(\d+)$' *conf*); do
   echo $d
done

conf1
conf2
conf10
conf20
conf99
1stconf100
2ndconf100
conf101
conf200
conf201
1
09.09.2017, 02:45
1 ответ

Как предположил @dirkt, похоже, conntrack плохо работает с мостом. Таким образом, правила iptables, которые не требуют, похоже, работают на мосту, но не на NAT.

Проблема решилась, как только я настроил свой брандмауэр как брандмауэр уровня 3.

На случай, если кому-то будет интересно :Я долго искал в Интернете возможность использования прозрачного брандмауэра уровня 2 с NAT, но так и не получил прямого ответа.

веб-сайт ebtables предполагает, что это возможно:

bridge-nf code makes iptables see the bridged IP packets and enables transparent IP NAT.

Я так и не узнал, какая команда ebtables заставит его работать.

1
27.01.2020, 23:44

Теги

Похожие вопросы