IP-маршрутизация всегда была моим слабым местом, и я до сих пор считаю декларирование маршрутов чем-то непонятным и похожим на чёрную магию.
Вот например прямо сейчас у меня подняты два сетевых интерфейса: p7p1 (Fedora дала странное имя Ethernet-интерфейсу) и tun0 (OpenVPN-туннель с PtP-адресом 192.168.100.110). Для того, чтобы указать, чтобы трафик по адресу 195.19.132.177 летел через 192.168.100.110, а не через мой основной шлюз, я указываю вот такой роут и всё работает:
# ip route add 195.19.132.177 via 192.168.100.110
# ip route | grep tun0
172.16.0.0/16 via 192.168.100.110 dev tun0
192.168.100.0/24 via 192.168.100.110 dev tun0
192.168.100.1 via 192.168.100.110 dev tun0
192.168.100.110 dev tun0 proto kernel scope link src 192.168.100.109
195.19.132.177 via 192.168.100.110 dev tun0
Однако мне хотелось бы прописать маршрут для всей подсети (195.19.132.0/24, если ничего не путаю). Делаю вот такую штуку:
# ip route add 195.19.132.0/24 via 192.168.100.110
# ip route | grep tun0
172.16.0.0/16 via 192.168.100.110 dev tun0
192.168.100.0/24 via 192.168.100.110 dev tun0
192.168.100.1 via 192.168.100.110 dev tun0
192.168.100.110 dev tun0 proto kernel scope link src 192.168.100.109
195.19.132.0/24 via 192.168.100.110 dev tun0
Но не вижу, чтобы у меня после этого получалось, например, установить SSH-соединение с хостом 195.19.132.177.
Где я неправ?