Автор Тема: Настройка NAT в OpenSolaris  (Прочитано 3612 раз)

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Настройка NAT в OpenSolaris
« : Август 02, 2011, 04:03:14 pm »
Задача: Есть rtls1 c ip 10.0.10.14 и rge0  с ip 192.168.1.16. Надо дать возможность компам из сети 10.0.0.0/8 иметь возможность выхода в 192.168.1.0/24.
Решение:
1. Заполнение конфигов IPfilter
$ cat /etc/ipf/ipf.conf
pass in log on rtls1 all
pass out log on rtls1 all


$cat /etc/ipf/ipnat.conf
map rge0 10.0.0.0/8 -> 0/32 proxy port ftp ftp/tcp
map rge0 10.0.0.0/8 -> 0/32 portmap tcp/udp auto
map rge0 10.0.0.0/8 -> 0/32

$ cat /etc/ipf/pfil.ap
rtls -1 0 pfil

2. Включить  ipv4-forwarding
pfexec routeadm -u -e ipv4-forwarding
3. Запустить или перезапустить службу ipfilter.
pfexec svcadm enable svc:/network/ipfilter:default

NAT должен работать. Для просмотра активных правил:
pfexec ipnat -l

Удаление сессий
pfexec ipnat -F
Удаление правил
pfexec ipnat -C
Загрузка правил
pfexec ipnat -f /etc/ipf/ipnat.conf


Побочный эффект: с этими настройками перестают работать линуксовые зоны (комп зависает и перезагружается после нескольких пингов яндекса из зоны)

При этом содержимое /var/adm/messages
Aug 31 09:10:03 opensolaris unix: [ID 836849 kern.notice]
Aug 31 09:10:03 opensolaris ^Mpanic[cpu0]/thread=ffffff0008300c60:
Aug 31 09:10:03 opensolaris genunix: [ID 335743 kern.notice] BAD TRAP: type=e (#pf Page fault) rp=ffffff0008300840 addr=46 occurred in module "ip" due to a NULL pointer dereference
Aug 31 09:10:03 opensolaris unix: [ID 100000 kern.notice]
Aug 31 09:10:03 opensolaris unix: [ID 839527 kern.notice] sched:
Aug 31 09:10:03 opensolaris unix: [ID 753105 kern.notice] #pf Page fault
Aug 31 09:10:03 opensolaris unix: [ID 532287 kern.notice] Bad kernel fault at addr=0x46
Aug 31 09:10:03 opensolaris unix: [ID 243837 kern.notice] pid=0, pc=0xfffffffff7a78c11, sp=0xffffff0008300930, eflags=0x10286
Aug 31 09:10:03 opensolaris unix: [ID 211416 kern.notice] cr0: 8005003b<pg,wp,ne,et,ts,mp,pe> cr4: 6f8<xmme,fxsr,pge,mce,pae,pse,de>
Aug 31 09:10:03 opensolaris unix: [ID 624947 kern.notice] cr2: 46
Aug 31 09:10:03 opensolaris unix: [ID 625075 kern.notice] cr3: 4400000
Aug 31 09:10:03 opensolaris unix: [ID 625715 kern.notice] cr8: c
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]    rdi: ffffff01ceeb0c98 rsi:                1 rdx:                0
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]    rcx: ffffff0008300c60  r8: ffffff01e333b620  r9:                1
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]    rax:                0 rbx:          194905b rbp: ffffff0008300a50
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]    r10: ffffff01cf10f000 r11:                0 r12:                0
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]    r13: ffffff01cd3d2000 r14: ffffff01e3511e7e r15: ffffff01cb5593e8
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]    fsb:                0 gsb: fffffffffbc2e070  ds:               38
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]     es:                0  fs:                0  gs:                0
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]    trp:                e err:                0 rip: fffffffff7a78c11
Aug 31 09:10:03 opensolaris unix: [ID 592667 kern.notice]     cs:               30 rfl:            10286 rsp: ffffff0008300930
Aug 31 09:10:03 opensolaris unix: [ID 266532 kern.notice]     ss:               38
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300720 unix:die+dd ()
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300830 unix:trap+1752 ()
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300840 unix:cmntrap+e9 ()
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300a50 ip:ip_fast_forward+c9 ()
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300b70 ip:ip_input+600 ()
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300be0 mac:mac_rx_soft_ring_drain+df ()
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300c40 mac:mac_soft_ring_worker+111 ()
Aug 31 09:10:03 opensolaris genunix: [ID 655072 kern.notice] ffffff0008300c50 unix:thread_start+8 ()
Aug 31 09:10:03 opensolaris unix: [ID 100000 kern.notice]
Aug 31 09:10:03 opensolaris genunix: [ID 672855 kern.notice] syncing file systems...
Aug 31 09:10:03 opensolaris genunix: [ID 904073 kern.notice]  done
Aug 31 09:10:04 opensolaris genunix: [ID 111219 kern.notice] dumping to /dev/zvol/dsk/rpool/dump, offset 65536, content: kernel
Aug 31 09:10:14 opensolaris genunix: [ID 409368 kern.notice] ^M100% done: 129249 pages dumped, compression ratio 3.53,
Aug 31 09:10:14 opensolaris genunix: [ID 851671 kern.notice] dump succeeded