> ipsec везде костыльный, думаю он перегружен слишком в спецификации.он безусловно придуман врагами, но речь в данном случае не о нем самом, а о прекрасном его взаимодействии с ipfw в случае наличия multihome, nat и туннелей одновременно (то есть банальный такой роутер, "выжеинженеры, сделайте бесплатно, циску-то каждый дурак настроить может") - и вот сидишь ты, смотришь на простыню правил на пять экранов, и очень-очень хочется того, кто это тут вместо линукса с iptables поставил - убить нахрен. Потому что там бы тебе пришлось посмотреть два-три блока по пять правил, и одно поменять - даже если ты вообще впервые бы увидел этот конфиг.
(а еще ведь мог бы быть и altq поверх всего этого ;-)
> Во фре с ним наступит щастье только после того как это вынесут
> в нетграф
пока что нечеловеческим усилием запилили криптоинтерфейсы (вот ничего не хочу знать, как ТЕПЕРЬ это обрабатывается правилами pf) и, два дня назад, победили вот эту проблему: https://svnweb.freebsd.org/ports/head/security/ipsec-tools/f...
- ну конечно же "rare case" - роутер с ipsec за натом (редко, действительно, какой дурак, будет строить vpn на фрях). У нас в конторе это примерно каждый второй.
История комитов этого файлика доставит тебе отдельно.
Кстати, ради победы над недографом тебе вот это все придется переписать с нуля, а не использовать код, общий для всех еще как-то дышащих юниксов. (подозреваю, что баг тоже общий, кстати) А это и есть большая часть монструзоных наворотов в ipsec, сами-то in-kernel sa/policy не так сложны.
> divert sockets - они в принципе работают, но это всё уже устарело
а другого nat у нас нет.
В случае ipfw вообще, в случае pf - application. "оба хуже".
В случае линуха образца 2000го года, кстати, написать свой application nat/conntrack модуль по имеющимися образцам мог каждый васян (с тех пор это, конечно, старательно портили, и сейчас это уже достаточно сложный квест, а когда наступит окончательное щастье bpf и прочего мусора - станет совсем невозможно для простых смертных, у которых в сутках ограниченное количество часов, и им платят не за эту работу).