Я пытаюсь убедиться, что весь трафик на наш сервер статистики проходит через VPN, в случае, если VPN падает, не должно быть, что трафик пытается маршрутизироваться через WAN. Для короткого замыкания поиска DNS мы перечислили хост в файле hosts, но он также разрешится и в более широком мире.
Вот что мы имеем:
$ echo "12.23.45.67 the.statsd.server" > /etc/hosts
# From a /etc/ppp/ip-up.d/thevpn (so it's a pptp client script that does this)
route add -host 12.34.45.67 dev ppp0
$ iptables -I INPUT -s 12.23.45.67 -i eth0 -j DROP
$ iptables -I OUTPUT -d 12.23.45.67 -o eth0 -j DROP
$ iptables -I OUTPUT -d 12.23.45.67 -o ppp0 -j ACCEPT
Все до тех пор, пока IP-таблицы не работают, но проблема (если это действительно проблема) заключается в том, что я больше не могу пинговать этот хост, даже когда VPN работает:
root@li149-82:~# ping the.statsd.server
PING the.statsd.server (12.23.45.67) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
Я не особо разбираюсь в таблицах IP, главное, чтобы по умолчанию не было возможности маршрутизировать к этому хосту вообще, пока он не закончился ppp0
.