Вы путаете прямую косую черту /s
с обратной косой чертой \s
-, а также нижний регистр -e
с верхним регистром-E
:
$ mount | grep -E '\s/\s'
/dev/sda3 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
Обратите внимание, что \s
на самом деле не является ни базовым регулярным выражением (BRE ), ни расширенным регулярным выражением (ERE )спецификатором -он действительно принадлежит PCRE (Perl -совместим регулярное выражение )-, однако по крайней мере GNU grep поддерживает его в других режимах.
Есть две или три отдельные проблемы.
Было бы излишним использовать протокол маршрутизации для этого (, если вы уже не используете его по другим причинам ). Я бы попытался изменить конфигурацию gw/eth0 на статическую. Если это невозможно, вы можете создать пользователя gw
на hostA
, который получит разрешение sudo
для установки маршрута к этой сети. Каждый раз, когда gw
получает новый IP-адрес, он может подключаться через SSH к hostA
и запускать эту команду (, возможно, черезForcedCommand
).
Маршрутизация настроена неправильно ()на gw
. Вы должны включить его вообще черезnet.ipv4.ip_forward = 0
(man sysctl
)и разрешить соответствующие соединения в брандмауэре, см. iptables -nvL FORWARD
.
Виртуальные машины, подключенные к gw/eth1
, должны иметь gw
, настроенный в качестве шлюза по умолчанию.Если это не так, то gw
должен выполнить SNAT
по отношению к этой сети(iptables
).