пусть моя внешняя машина это C, сервер (на котором алиасы) будет S, а рутер для S это R
у сетевой карточки есть свой езернет адрес, назовем его ether
ип адресса соответственно ip (основной) и ip2 (алиас, есть только у S)
теперь о том, что происходит при различных коннектах (не углублясь в arp и типы пакетов) при условии что tcpdump находится в одной сети где находятся S и R:
коннект с C на S-ip:
[R-Ether;C-ip]<->[S-Ether;S-ip]
коннект с C на S-ip2
[R-Ether;C-ip]<->[S-Ether;S-ip2]
(т.е. пакеты идут именно на ip2, как мы и просили! причем S-Ether такой же как и в прошлом случае)
в случаях установления противоположного направления соединения НИ ЧЕГО НЕ ИЗМЕНИТСЯ! Если мы говорим коннектиться от S-ip2 то и пакеты будут идти от S-ip2.
ИМХО причина во внутренней организации freebsd. Каким образом она рюхает о перенаправлении с ип на ип и где то в этот момент она складывает чегото с чемто.
В моем случае, вероятно, прибавление моих байтиков идет не на нужный ип, а на ether-адрес, хотя прибавлять должна была и туда и туда.