@nallion

IPFW — почему не работает ядерный NAT?

Задачка детская - решил перевести корпоративный роутер с линухов на фряху. Для теста собрал дома у себя стендик. Между своим ноутом и роутером врезал машинку на фряхе 10.3.
конфигурация сети машинки
em0: 192.168.0.250 mask 24 gw 192.168.0.1 (мой домашний роутер), ns 8.8.8.8
инет работает на фряхе. яндекс пингуется, порты обновил, софт нужный собрал
em1: 172.0.0.1 mask 24

к em1 подключил свой домашний ноут. назначил ему 172.0.0.2 маску /24 и шлюз 172.0.0.1

с ноута фряшная машинка тоже пингуется, на уровне сети проблем нет никаких.

пересобрал ядрышко с параметрами

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=16
options DUMMYNET
options HZ="1000"

теперь проблемка - не могу настроить nat!

добавил в /etc/rc.conf
gateway_enable="YES"

в /etc/rc.local
ipfw add allow ip from any to any
ipfw add nat 1 ip from any to any

перезагрузил машину с фрей.

выполнил rc.local, в ipfw list есть мои правила

root@router:~ # ipfw list
00100 allow ip from any to any
00200 nat 1 ip from any to any
65535 deny ip from any to any

проверил включился ли форвардинг в ядре

root@router:~ # sysctl -a | grep ip.forward
net.inet.ip.forwarding: 1

... и ничего! если я пытаюся пинговать тот же 8.8.8.8 с моего ноута (172.0.0.2) то получаю timeout...

что ж это такое? o.O
  • Вопрос задан
  • 546 просмотров
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Правила в ipfw анализируются по порядку и первое сработавшее разрешающее правило завершает анализ. Таким образом у вас дальше 100 правила не работают. Должно быть примерно так:
ipfw add 100 nat 1 all from any to any via em0
ipfw add 200 allow all from any to any

P.S. По команде ipfw show можно увидеть, сколько раз сработало каждое правило.
Ответ написан
Комментировать
@ralaton121
Пересобирать ядро для включения ipfw для современных дистрибутивов не надо.
Уже лет 5 как.

Вы какую то древнюю инструкцию прочитали.
Ответ написан
Комментировать
@Z462
allow ip from any to any via lo0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы