И здесь я должен признаться в очень слепой оплошности и ответить на свой вопрос (по крайней мере, в той части, которая меня сбила с толку!)
Я есть сценарий, который запускает и останавливает мои настройки маршрутизатора Linux (установка правил брандмауэра, включение IP-пересылки, маскарадинга и т. д.) и выполняет «обратное» при остановке ] команда. Одна из строк в разделах stop была:
iptables -P FORWARD DROP
Это устанавливает для политики FORWARD
значение DROP
- эффективно прекращая пересылку пакетов, и, следовательно, было причиной все мои проблемы! В конце концов, это было так же просто, как добавить маршрут
ip route add 192.168.2.0/24 via 192.168.1.2
в таблицу маршрутизации на маршрутизаторе Linux. Пакеты из разных подсетей правильно пересылаются на 192.168.1.1 , откуда при необходимости пересылаются дальше через GW 192.168.1.25 для подсети 192.168.2.0/24
Спасибо wurtel и user2999479 , чьи ответы заставили меня углубиться в мои собственные настройки :)
ping -D localhost 2>&1 | (trap '' INT; exec sed -u 's/^\[\([0-9]*\.[0-9]*\)\]\(.*$\)/echo "[`date -d @\1 +"%Y-%m-%d %H:%M:%S"`] \2"/e') | tee -a -i ping.log
Вызов trap '' INT
указывает оболочке игнорировать SIGINT. exec
является необязательным, но его желательно иметь, так как процесс подоболочки больше не нужен после ловушки.