June 14th, 2015

Death

Странная "недоделка" в линуксовом policy-based routing

Столкнулся с одной очень странной багофичей в линуксовом ядре.

Допустим, имеется multihome-машина (т.е. на борту несколько сетевых интерфейсов с разными IP-адресами). Допустим, на неё навешена какая-то до фига хитрозадая система маршрутизации IPv4-пакетов. Например, source routing, либо по меткам (fwmark), либо ещё как-то. Допустим, некое приложение, работающее на этой машине хочет послать IP-пакет "в мир".

Перед ядром системы при этом возникает две независимые задачи.


  1. Выбрать Source IP для пакета (очевидно, это поле надо чем-то заполнить).

  2. Выбрать маршрут для этого пакета (куда бы его покошернее запульнуть).

Collapse )