Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Mam router oparty na FreeBSD z 3-ma interfejsami:
em0 - 192.168.2.2/24 (wyjście do LAN2)
em1 - 192.168.1.2/24 (wyjście do LAN1)
sk0 - 192.168.3.2/24 (wyjście do WAN)
Przez sk0 jestem połączony do routera sprzętowego dostawcy Internetu. Na tym interfejsie mam NAT.
Mogę uzyskać połączenia:
- z FreeBSD do LAN1
- z FreeBSD do LAN2
- z FreeBSD do WAN
- z FreeBSD do Internetu
- z LAN2 do FreeBSD
- z LAN2 do WAN
- z LAN2 do Internetu
- z LAN2 do 192.168.1.2
- z LAN1 do FreeBSD
- z LAN1 do 192.168.2.2
Nie mogę uzyskać połączenia:
- z LAN1 do LAN2
- z LAN2 do LAN1
Jak to zrobić ? Podejrzewam, że może trzeba zrobić jakieś specjalne natowanie, nie wiem jednak jak.
Niektóre moje reguły ipfw:
divert 8668 ip4 from any to any via sk0 allow ip from 192.168.2.0/24 to 192.168.1.0/24 allow ip from 192.168.1.0/24 to 192.168.2.0/24
Proszę o pomoc.
Offline
to chyba nie jest twoj caly firewall ? korzystasz z /etc/rc.firewall czy masz swoj wlasny napisany ? w ogole jakie opcje masz skonfigurowane w GENERIC'u ? bo do natd jest potrzebny IPDIVERT, ktorego widze masz w regulce. Gdzie tu jest przekierowanie NAT ?
Opcje w kernelu:
options IPFIREWALL # enables IPFW
options IPFIREWALL_VERBOSE # enables logging for rules with log keyword
options IPFIREWALL_VERBOSE_LIMIT=5 # limits number of logged packets per-entry
options IPFIREWALL_DEFAULT_TO_ACCEPT # sets default policy to pass what is not explicitly denied
options IPDIVERT # enables NAT
Po trzecie nie lepiej ci uzyc PF, ktory jest standardowo wlaczony we FreeBSD a od FreeBSD 10 caly PF obsluguje SMP ?
Masz dodatkowy wpis w rc.conf ?
gateway_enable="YES" # enables the gateway
natd_enable="YES" # enables NAT
natd_interface="rl0" # specify interface name of NIC attached to Internet
natd_flags="-f /etc/natd.conf" # -m = preserve port numbers; additional options are listed in natd(8)
Przyklad: w natd.conf
redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80
Ostatnio edytowany przez bryn1u (2014-07-07 09:40:50)
Offline
Dziękuję za zainteresowanie moim problemem :).
bryn1u napisał(-a):
to chyba nie jest twoj caly firewall ? korzystasz z /etc/rc.firewall czy masz swoj wlasny napisany ?
Oczywiście, że to nie jest cały firewall. Napisałem przecież, że to niektóre reguły - istotne dla mojego problemu. Mam własną konfigurację. Reguł jest dużo, są specyficzne dla moich potrzeb, więc nie wymieniałem ich wszystkich.
bryn1u napisał(-a):
w ogole jakie opcje masz skonfigurowane w GENERIC'u ? bo do natd jest potrzebny IPDIVERT, ktorego widze masz w regulce.
Pisząc, że mam NAT, miałem na myśli, że mam NAT, który działa, mogę uzyskać połączenia:
- z LAN2 do FreeBSD
- z LAN2 do WAN
- z LAN2 do Internetu
Wymienione przeze mnie reguły, to są reguły aktywne (np. ipfw list), a nie tylko wpisane w skrypcie. Tak więc skoro reguła pokazuje
divert 8668 ip4 from any to any via sk0
to znaczy, że IPDIVERT działa.
bryn1u napisał(-a):
Gdzie tu jest przekierowanie NAT ?
Przyklad: w natd.confredirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80
Nie bardzo rozumiem po co ? Nie zamierzam zrobić przekierowania z WAN do jakiegoś hosta, portu. Może niepotrzebnie zasugerowałem, że problem tkwi w natowaniu. Może za bardzo skupiłeś się na natowaniu.
bryn1u napisał(-a):
Po trzecie nie lepiej ci uzyc PF, ktory jest standardowo wlaczony we FreeBSD a od FreeBSD 10 caly PF obsluguje SMP ?
Być może masz rację, ale chciałbym jednak zrobić to na IPFW. Pewnie dlatego, że sporo czasu kosztowało mnie stworzenie skryptu. Przy tym to dopiero początki mojej przygody z FreeBSD. Nie chciałbym się na nim zawieźć na początku. Większość innych problemów udaje mi się rozwiązać. Docelowo mam zamiar rozwiązać wszystkie :).
bryn1u napisał(-a):
Masz dodatkowy wpis w rc.conf ?
gateway_enable="YES" # enables the gateway
natd_enable="YES" # enables NAT
natd_interface="rl0" # specify interface name of NIC attached to Internet
natd_flags="-f /etc/natd.conf" # -m = preserve port numbers; additional options are listed in natd(8)
Tak, bardzo podobny. Podstawowy NAT działa.
Mam prośbę, przeczytaj mój post jeszcze raz uważnie. Mój problem to komunikacja pomiędzy dowolnymi hostami w LAN1 i LAN2 (nie WAN).
Właśnie pomyślałem, że to może być problem routingu statycznego w hostach w LAN1 i LAN2. Sprawdzę, przy najbliższej okazji.
Offline
gwad napisał(-a):
Właśnie pomyślałem, że to może być problem routingu statycznego w hostach w LAN1 i LAN2. Sprawdzę, przy najbliższej okazji.
No i jednak miałem dobre przeczucie, wszystko działa, tylko trzeba było wskazać hostom w LAN-ach gdzie mają szukać hostów z tego innego LAN-a. Poza tym w błąd mnie wprowadził jeden AP Edimax'a. Jest w LAN1 i do tej pory nie można go "spingować" z LAN2. Pewnie to kwestia jego firmware.
Czyli konfiguracja IPFW we FreeBSD była cały czas poprawna.
Temat można zamknąć.
Offline