спонсори:

FreeBSD швидкий natd


Так повелось, що невеликій компанії (навіть двом) необхідно було налагодити роботу інтернет шлюза, який би виконував роль міжмережевого файрвола та надавав доступ локальному офісу із 10-ти десктопів до інтернету.

Для цього була обрана операційна система FreeBSD (на момент написання статті версії 6,3-RELEASE)

Параметри заліза - 2xPIII-933 на старенькій материнці ServerWorks із 1Гігом оперативки на борту та рейд-масивом 5 рівня на базі п'яти SCSI-320 Жорстких дисків.

Для додаткової інформації приводжу список програм, запущених на цьому сервері

  • apache 2.x - локальний вебсервер для бухгалтерської програми
  • mysql 4.x - локальний сервер бази даних
  • named (zone slave) - кешуючий сервер імен для локального домену та relay для інтернет бровзінгу
  • samba 3.0.x PDC - контролер домену із мережевим файлсервером
  • ipfw ~12 правил
  • ftpd сервер (для прийому ~1-2Gb файлів щодня)
  • sendmail - просто пошта для ~10-20 користувачів

Тобто достатньо незавантажена роботою машинка, що не викликає нарікань по жодному з пунктів вищеприведеного списка.

Налагодження NAT проводив цілковито згідно handbook(пункти 1 і 2) - там все дуже зрозуміло і просто написано.

  1. в /etc/rc.conf вписуєм стрічки
    • natd_enable="YES"
    • natd_interface="fxp1" #мережева карта, що дивиться реальним IP адресом в бік провайдера інтернет
    • natd_flags="-l -s -u -dynamic" #для тих, кому лінь лізти в мануал відповідно
      • -l  #вмикаєм логування в файл /var/log/alias.log
      • -s #використовувати сокети для надійної роботи FTP та різноманітних IRC-типу з'єднань(месенджери)
      • -u #вмикаєм роботу лише для мереж із статусом unregistered (RFC1918) (тобто локальної мережі)
      • -dynamic #враховуючи те, що зовнішня адреса віддається по DHCP дана опція вказує демону natd перевіряти можливу зміну адреси і відпрацьовувати свої дії згідно цього.
    • firewall_enable="YES"
    • firewall_type="open" #даний вибір робіть самі.
    • gateway_enable="YES"
  2. рестартуєм сервер і отримуєм робочу реалізацію NAT сервера. За одним лише ви'нятком - він в мене дико гальмував інтернет, із постійним ефектом сильнокешуючого PROXY сервера.
  3. (це вже від мене додаток) Для оптимізації роботи було прочитано багато документації та частину вебсайту bsd.opennet.ru, на основі чого для своєї конфігурації я додав ще кілька параметрів оптимізації, а саме
    1. в файл /etc/sysctl.conf
      • net.inet.ip.fastforwarding=1
      • net.inet.ip.portrange.randomized=0
      • net.inet.tcp.nolocaltimewait=1
      • kern.ipc.nmbclusters=65536
      • kern.ipc.maxsockets=204800
      • kern.maxfiles=204800
      • kern.maxfilesperproc=200000
    2. в файл /boot/loader.conf
      • net.inet.tcp.syncache.hashsize=1024
      • net.inet.tcp.syncache.bucketlimit=128
      • net.inet.tcp.hostcache.bucketlimit=128
      • net.inet.tcp.tcbhashsize=4096
      • kern.maxusers=512
    3. рестарт.

Після цього все забігало без особливих проблем.

Додатковий опис кожного з цих параметрів читайте на сайті opennet.ru.

 

Trackback URL для цього допису

http://itua.name/uk/trackback/99
Share this

Об'єднати вміст Об'єднати вміст

Propeople Expert

Партнери

експерименти

Rambler's Top100