On Wed, 6 May 2020 17:21:16 +0200 Mykola Dzham <[email protected]> wrote:
> > 6 трав. 2020 р. о 15:02 Nick Kostirya <[email protected]> написав(ла): > > > > Привет. > > > > Возникла дома задачка. > > Есть сервера, на которых висят по два сервера. > > На один нужно ходить на прямую, на второй только через туннель. > > Решил звернуть в туннуль по номеру порта. > > > > Для ipfw прописал. > > port="9898" > > ${fwcmd} nat 1 config if tap0 reset same_ports > > ${fwcmd} add nat 1 ip from any ${port} to me via tap0 > > Cоветую всегда указывать in/out в правилах, чтобы понимать, что в случае > транзита правило может проверяться дважды. > Поэтому это правило лучше записать как > > ${fwcmd} add nat 1 ip from any ${port} to me in recv tap0 > > > ${fwcmd} add nat 1 ip from me to any ${port} via tap0 > > Это правило тоже лучше применять только в одном направлении. И понимать, что > пока не не сработало fwd правило, исходящий интерфейс будет тот, куда > указывает роутинг, а это не обязательно tap0. Поэтому > > ${fwcmd} add nat 1 ip from me to any ${port} out > > > ${fwcmd} add fwd 10.1.4.1 all from me to any ${port} > > И тут тоже направление: > > ${fwcmd} add fwd 10.1.4.1 all from me to any ${port} out > > > > > > 10.1.4.1 - это tap0: > > inet 10.1.4.6 netmask 0xffffff00 broadcast 10.1.4.255 > > > > > > sysctl net.inet.ip.forwarding=1 > > sysctl net.inet.ip.fw.one_pass=1 > > И чтобы fwd правило сработало после nat правила как они описаны выше, > one_pass нужно выключить. > > > В /etc/rc.conf есть > > firewall_enable="YES" > > firewall_nat_enable="YES" > > firewall_script="/etc/ipfw.rules" > > > > Но работает как-то через раз. > > Подозреваю что работает для транзитных пакетов, но не работает с самого > сервера? > Потому что транзитные пакеты проходят через эти правила два раза. one_pass убрал, правила поправил. Но работает как-то странно. Сразу после рестрата ipfw, когда зависло: # ipfw show 00200 0 0 nat 1 ip from any 9874 to me in via tap0 00300 4 240 nat 1 ip from me to any 9874 out 00400 4 240 fwd 10.1.4.1 tcp from me to any 9874 out 65500 115 43055 allow ip from any to any Но подождал и ответ пришел с большой задержкой. После ответ: #ipfw show 00200 5 654 nat 1 ip from any 9874 to me in via tap0 00300 10 685 nat 1 ip from me to any 9874 00400 10 685 fwd 10.1.4.1 tcp from me to any 9874 out 65500 212 26630 allow ip from any to any Перепроверил. Да приходят все ответы. Иногда сразу, а иногда с большой задержкой. _______________________________________________ freebsd mailing list [email protected] http://mailman.uafug.org.ua/mailman/listinfo/freebsd
