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[/quote]
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)[/quote]
Przyklad: w natd.confredirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80[/quote]Ostatnio edytowany przez bryn1u (2014-07-07 09:40:50)
E-Booki: FreeBSD, OpenBSD, Linux, Hacking, PHP, Catia, Perl_CGI, Mysql ...
[b]http://unix-ebooki.neth.pl/[/b]Offline
Dziękuję za zainteresowanie moim problemem :).
[quote=bryn1u]to chyba nie jest twoj caly firewall ? korzystasz z /etc/rc.firewall czy masz swoj wlasny napisany ?[/quote]
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.
[quote=bryn1u]w ogole jakie opcje masz skonfigurowane w GENERIC'u ? bo do natd jest potrzebny IPDIVERT, ktorego widze masz w regulce.[/quote]
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.
[quote=bryn1u]Gdzie tu jest przekierowanie NAT ?
Przyklad: w natd.conf
redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80[/quote]
[/quote]
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.
[quote=bryn1u]Po trzecie nie lepiej ci uzyc PF, ktory jest standardowo wlaczony we FreeBSD a od FreeBSD 10 caly PF obsluguje SMP ?[/quote]
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 :).
[quote=bryn1u]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)[/quote]
[/quote]
Tak, bardzo podobny. Podstawowy NAT działa.
Mam prośbę, przeczytaj mój post jeszcze raz uważnie. [b]Mój problem to komunikacja pomiędzy dowolnymi hostami w LAN1 i LAN2[/b] (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
[quote=gwad]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.[/quote]
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
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00135 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.118.140.78' WHERE u.id=1 |
0.00070 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.118.140.78', 1732392812) |
0.00032 | SELECT * FROM punbb_online WHERE logged<1732392512 |
0.00066 | SELECT topic_id FROM punbb_posts WHERE id=270992 |
0.00124 | SELECT id FROM punbb_posts WHERE topic_id=26096 ORDER BY posted |
0.00077 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26096 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00079 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26096 ORDER BY p.id LIMIT 0,25 |
0.00312 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26096 |
Total query time: 0.00917 s |