Настроен шлюз на FreeBSD-8.3 с 2-мя сетевыми картами. Провайдер предоставляет только pppoe подключение.
Для поднятия туннеля использовал mpd5, т.к в отличие от ppp он умеет поднимать упавшее соединение.
Соответственно есть 3 интерфейса:
ae0 - внешний
re0 - внутренний
ng0 - pppoe (mpd5)
IPFW настраиваю по статье лиссяры, вот конфиг:
Код: Выделить всё
#!/bin/sh
FwCMD="/sbin/ipfw -q "
LanOut="ae0"
LanIn="re0"
PPPoE="ng0"
NetMask="24"
NetIn="192.168.15.0"
${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${PPPoE}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${PPPoE}
${FwCMD} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${PPPoE}
${FwCMD} add allow ip from any to any via ${LanIn}
${FwCMD} add deny ip from any to any
Уже не знаю куда копать, мне эти одноклассники пофигу, конечно, но подруга будет расстроена.
И правильно ли я в nat'e прописал интерфейс pppoe - ng0, а не внешний re0?
Просто смутно представляю как происходит передача пакетов между re0 и ng0