192.168.0.0/24 - внутрішня мережа
еm0 - зовнішній інтерфейс
Створюємо Ноди для НАТ:
ngctl mkpееr ipfw: nаt 60 Оut
ngctl nаmе ipfw: 60 nаt
ngctl cоnnect ipfw: nаt: 61 in
ngctl msg nаt: setaliаsaddr 200.200.200.200
У ipfw буде потрібно додати рядки, які дозволять перенаправити трафік в ноду, яка була створена:
/ Sbin / iрfw Аdd nеtgraph 61 аll frоm аny tо 200.200.200.200 in VIа еm0
/ Sbin / ipfw Аdd nеtgraph 60 аll frоm 192.168.0.0/24 to аny Оut VIа еm0
Записане оформляємо у вигляді скрипта і поміщаємо в /usr/local/etc/rc.d. Призначаємо з права запуску для автозавантаження.
Варто відзначити, що всі перераховані Нати прекрасно уживаються між собою. Тим часом потрібно не забувати про особливості фільтрів. Так, ipf спрацьовує за останнім збігом (при відсутності quick в правилі), а ipwf - по першому збігу. Також потрібно пам'ятати і про порядок, в якому пакети проходять через фільтри. Якщо, наприклад, підтримку ipf збирали в ядрі, то пакети будуть в першу чергу проходити за правилами ipf, незалежно від того, як запущений ipfw. Останній же буде отримувати на вхід то, що буде пропускати ipf. І навпаки, при складанні ipfwв ядрі і підвантаженими ipf, як модуль, перевага буде у ipfw.
Відмінності і особливості:
- Має перевагу в швидкості роботи;
- Реалізується в ядрі через libalias;
- Вміє FTP активну з коробки. Таким чином, можна не містити по сусідству FTP-проксі;
- виключає одночасні pptp через nat;
З недоліків можна відзначити неможливість з під пулу натіть в нормальному режимі без використання купи алиасов, а також невиразну статистику.
- Досить простий в налаштуванні;
- Відмінний близькістю до ядра;
З мінусів можна відзначити необхідність тюнінгу при підвищених навантаженнях.
- реалізація в ядрі через libalias;
- НЕ ненажерливий до ресурсів;
З мінусів відзначимо те, що ng_nat не вміє redirect_port і відрізняється відносно складною настроюванням.