LINUX.ORG.RU
ФорумAdmin

Правильная наcтройка NAT


0

0

И так. проблема в следующем.

Есть шлюз с интерфейсами
re0
re1

re0 смотрит в интернет и имеет адрес 66.66.66.66
re1 смотрит в локальную сеть 192.168.0.0/24 и имеет адрес 192.168.0.1
tun0 - openvpn 10.10.0.0/24 c адресом 10.10.0.1
Настроен NAT судя по всему не совсем так как надо потому если сервер пингует 192.168.0.1 (то есть сам себя) , то ответ приходит не с адреса 192.168.0.1 , а с адреса 66.66.66.66

$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 66.66.66.66: icmp_seq=0 ttl=64 time=0.052 ms
64 bytes from 66.66.66.66: icmp_seq=1 ttl=64 time=0.019 ms
64 bytes from 66.66.66.66: icmp_seq=2 ttl=64 time=0.026 ms

А если пинговать самого себя по tun0 (ping 10.10.0.1) то пинг вообще не идет (я предполагаю что из-за криво настроенного ната у них меняется адрес источника на 66.66.66.66 и они не возращаются)



У них это у пакетов =)

ss85
() автор топика
Ответ на: комментарий от hizel

1 FreeBSD 7.2
2 ipfw
3 kernel nat =)

#!/bin/sh

# --

IPFW="/sbin/ipfw"
INET_IF="re0"
LAN_IF="re1"
INET_IP="66.66.66.66"
LAN_IP="192.168.0.1"
LAN_NET="192.168.0.0/24"

# --
${IPFW} -f flush

# -- nat
${IPFW} nat 1 config ip ${INET_IP} log

${IPFW} add 10 nat 1 ip from ${LAN_NET} to any
${IPFW} add 20 nat 1 ip from any to ${INET_IP}
# -- other
${IPFW} add 65000 allow ip from any to any

ss85
() автор топика
Ответ на: комментарий от ss85

hizel@hzwork:~$ diff -c f2 f
*** f2  2009-08-11 11:43:17.000000000 +0400
--- f   2009-08-11 11:43:10.000000000 +0400
***************
*** 11,22 ****
  
  # --
  ${IPFW} -f flush
! 
  # -- nat
  ${IPFW} nat 1 config ip ${INET_IP} log
  
! ${IPFW} add 10 nat 1 ip from ${LAN_NET} to any
! ${IPFW} add 20 nat 1 ip from any to ${INET_IP}
  # -- other
  ${IPFW} add 65000 allow ip from any to any
  ss85 (*) (11.08.2009 11:41:26)
--- 11,22 ----
  
  # --
  ${IPFW} -f flush
! ${IPFW} allow all from any to any via lo0
  # -- nat
  ${IPFW} nat 1 config ip ${INET_IP} log
  
! ${IPFW} add 10 nat 1 ip from ${LAN_NET} to any out via ${INET_IF}
! ${IPFW} add 20 nat 1 ip from any to ${INET_IP} in via ${INET_IF}
  # -- other
  ${IPFW} add 65000 allow ip from any to any
  ss85 (*) (11.08.2009 11:41:26)

hizel ★★★★★
()
Ответ на: комментарий от hizel

Спасибо , помогло . И vpn заработал

ss85
() автор топика
Ответ на: комментарий от ss85

в петле вообще нет смысла что либо фильтровать, поэтому лучше выпустить из правил сразу - практика такая :]

hizel ★★★★★
()
Ответ на: комментарий от hizel

и да, ответ от 66.66.66.66 у вас приходил потому что вы НАТили в этой самой петле ^_^

hizel ★★★★★
()
Ответ на: комментарий от hizel

Понятно. Просто с -u видно что на что поменялось. А так приходится смотреть твой пост и предыдущий чтобы понять что на что заменили.

Усё, исчезаю со своим старческими придирками...

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

то что было
*** 11,22 ****
  
  # --
  ${IPFW} -f flush
! 
  # -- nat
  ${IPFW} nat 1 config ip ${INET_IP} log
  
! ${IPFW} add 10 nat 1 ip from ${LAN_NET} to any
! ${IPFW} add 20 nat 1 ip from any to ${INET_IP}
  # -- other
  ${IPFW} add 65000 allow ip from any to any
  ss85 (*) (11.08.2009 11:41:26)



то что стало
--- 11,22 ----
  
  # --
  ${IPFW} -f flush
! ${IPFW} allow all from any to any via lo0
  # -- nat
  ${IPFW} nat 1 config ip ${INET_IP} log
  
! ${IPFW} add 10 nat 1 ip from ${LAN_NET} to any out via ${INET_IF}
! ${IPFW} add 20 nat 1 ip from any to ${INET_IP} in via ${INET_IF}
  # -- other
  ${IPFW} add 65000 allow ip from any to any
  ss85 (*) (11.08.2009 11:41:26)

:-\

hizel ★★★★★
()
Ответ на: комментарий от true_admin

hizel@hzwork:~$ diff -u f2 f
--- f2  2009-08-11 11:43:17.000000000 +0400
+++ f   2009-08-11 11:43:10.000000000 +0400
@@ -11,12 +11,12 @@
 
 # --
 ${IPFW} -f flush
-
+${IPFW} allow all from any to any via lo0
 # -- nat
 ${IPFW} nat 1 config ip ${INET_IP} log
 
-${IPFW} add 10 nat 1 ip from ${LAN_NET} to any
-${IPFW} add 20 nat 1 ip from any to ${INET_IP}
+${IPFW} add 10 nat 1 ip from ${LAN_NET} to any out via ${INET_IF}
+${IPFW} add 20 nat 1 ip from any to ${INET_IP} in via ${INET_IF}
 # -- other
 ${IPFW} add 65000 allow ip from any to any
 ss85 (*) (11.08.2009 11:41:26)

: )

hizel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.