Дарова!
чтото у меня на 5.3 проблемы с натом... т.е. пашет как то странно....
пересобрал ядро с опциями:
Цитата:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options BRIDGE
options IPDIVERT
options DUMMYNET
options IPSTEALTH #support for stealth forwarding
options TCPDEBUG
options SC_DISABLE_REBOOT
options SC_NO_HISTORY
options TCP_DROP_SYNFIN
собралось всё ок
дальше, есть 1 сетевуха с серым адрсемо 192.168.100.45 - она в мир смотрит (сама через нат выше), вторая сетевуха - тоже сервый адрес 10.0.0.1:
Цитата:
# ifconfig -a
ed0: flags=108943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.100.45 netmask 0xffffff00 broadcast 192.168.100.255
ether 00:00:01:c1:01:cd
ed1: flags=108943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
ether 0a:83:59:a1:0с:9a
Цитата:
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.100.1 UGS 0 1380 ed0
10.0.0/24 link#2 UC 0 0 ed1
127.0.0.1 127.0.0.1 UH 0 32 lo0
192.168.100 link#1 UC 0 0 ed0
192.168.100.1 01:00:01:6d:cf:a4 UHLW 1 0 ed0 1098
соответвенно настройки:
rc.conf Цитата:
hostname="home"
defaultrouter="192.168.100.1"
ifconfig_ed0="inet 192.168.100.45 netmask 255.255.255.0"
ifconfig_ed1="inet 10.0.0.1 netmask 255.255.255.0"
natd_enable="YES"
natd_interface="192.168.100.45"
natd_flags="-f /etc/natd.conf"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="closed"
gateway_enable="YES"
tcp_drop_redirect="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
icmp_bmcastecho="NO"
fsck_y_enable="YES"
tcp_drop_synfin="YES"
tcp_extensions="YES"
natd.conf Цитата:
same_ports yes
use_sockets yes
port natd
unregistered_only yes
rc.firewall Цитата:
${fw} divert natd all from any to any via ${natd_interface}
${fw} allow all from any to any
sysctl.conf Цитата:
net.inet.ip.fw.verbose_limit=0
net.inet.ip.fw.enable=1
net.inet.ip.fw.one_pass=0
net.inet.ip.forwarding=1
net.inet.ip.redirect=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.ip.stealth=1
net.inet.udp.blackhole=1
net.inet.tcp.blackhole=2
net.inet.tcp.always_keepalive=1
net.inet.tcp.delayed_ack=0
net.inet.icmp.icmplim=150
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
соответственно нужно машины под виндами из сети 10.0.0.0/24 выпустить в мир.
у них настройки:
ip: 10.0.0.2-254
mask: 255.255.255.0
gw: 10.0.0.1
при таких настройках они выходят, инет видят прекрасно, как серую сеть 192.168.100.0/24, так и остальной мир,
НО, в трейсе НЕТ упоминания о 10.0.0.1!!!
Цитата:
D:\>tracert ya.ru
tracing route to ya.ru [213.180.204.8]
over a maximum of 30 hops:
1 1 ms <1 ms <1 ms 192.168.100.1
2 119 ms 148 ms 149 ms дальше по списку
..
т.е. нет моего 10.0.0.1!!! это нормально???
при чём какая штука, если сделать
Цитата:
sysctl -w net.inet.ip.stealth=0
то трейс с клиенских виндовских машин становится таким как надо:
Цитата:
1 <1 ms <1 ms <1 ms 10.0.0.1
2 4 ms 3 ms 6 ms 192.168.100.1
3 49 ms 40 ms 31 ms х.х.х.х
...
ОДНАКО, эти клиенские машины не могут ничего из инета получить!!!
как ни странно, тока трейс и пинг пашут...
вот tcpdump для проврки почты с pop.inbox.ru
с внутреннего фейса:
Цитата:
...
19:10:37.318059 IP 10.0.0.5.1474 > 194.67.57.67.110: S
2149838997:2149838997(0) win 16384 <mss 1460,nop,nop,sackOK>
...
19:10:40.308191 IP 10.0.0.5.1474 > 194.67.57.67.110: S
2149838997:2149838997(0) win 16384 <mss 1460,nop,nop,sackOK>
...
где ... - локальные пакеты по ssh
а с внешнего фейса:
Цитата:
...
19:11:16.974004 IP 192.168.100.45.1475 > 194.67.57.67.110: S 3222616550:3222616550(0) win 16384 <mss 1460,nop,nop,sackOK>
19:11:17.270041 IP 194.67.57.67.110 > 192.168.100.45.1475: S 3151306832:3151306832(0) ack 3222616551 win 32768 <mss 1460>
19:11:17.270742 IP 192.168.100.45 > 194.67.57.67: icmp 36: time exceeded in-transit
19:11:19.935831 IP 192.168.100.45.1475 > 194.67.57.67.110: S 3222616550:3222616550(0) win 16384 <mss 1460,nop,nop,sackOK>
19:11:20.171064 IP 194.67.57.67.110 > 192.168.100.45.1475: S 3151306832:3151306832(0) ack 3222616551 win 32768 <mss 1460>
19:11:20.171745 IP 192.168.100.45 > 194.67.57.67: icmp 36: time exceeded in-transit
19:11:23.123866 IP 194.67.57.67.110 > 192.168.100.45.1475: S 3151306832:3151306832(0) ack 3222616551 win 32768 <mss 1460>
19:11:23.124776 IP 192.168.100.45 > 194.67.57.67: icmp 36: time exceeded in-transit
...
т.е. пакеты приходят, но лажа с транзитом возникает! в фаере всё тихо, ничего не отклоняется...
дальше, пересобрал ядро без IPSTEALTH - ситуация такая же, т.е. тока трейс и пашет, но уже sysctl -w net.inet.ip.stealth=1 уже не работает, ибо не знает что есть stealth...
подсобите, что не так в моей кансерватории...