• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

Cannot NAT trough OPT1 interface on multiwan

Scheduled Pinned Locked Moved 2.2 Snapshot Feedback and Problems - RETIRED
49 Posts 18 Posters 16.3k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V
    villavai
    last edited by Oct 3, 2014, 4:52 PM

    i cannot give the debug because I've already revert back to 2.1.5, and since pf is my only fw, and is being use in production site, so i hope someone kindly test it in 2.2 latest snapshot to give the answer is this problem still exist or not.

    thank you.

    1 Reply Last reply Reply Quote 0
    • N
      naras
      last edited by Oct 5, 2014, 3:25 AM

      @villavai:

      i cannot give the debug because I've already revert back to 2.1.5, and since pf is my only fw, and is being use in production site, so i hope someone kindly test it in 2.2 latest snapshot to give the answer is this problem still exist or not.

      thank you.

      Unfortunately, it's still there.

      1 Reply Last reply Reply Quote 0
      • E
        eSpezi
        last edited by Oct 5, 2014, 9:32 AM

        Hi everybody,

        this is not only a NAT problem.
        It seems that the routing in general does not work properly with multiwan. (in my case WAN_KD=cable router, WAN_TO=PPPoE modem)
        I'm running the Oct 03 10:14:50 CDT 2014 BETA, but also had the same problem with a previous version (Oct 01).

        I can't even access the pfS Webgui from the WAN_TO side, although in the firewall log the request is shown as PASS.

        My config:
        set optimization normal
        set timeout { adaptive.start 0, adaptive.end 0 }
        set limit states 198000
        set limit src-nodes 198000

        #System aliases

        loopback = "{ lo0 }"
        WAN_KD = "{ re0 }"
        LAN = "{ re2 }"
        WAN_TO = "{ pppoe0 }"
        OpenVPN = "{ openvpn }"

        #SSH Lockout Table
        table <sshlockout>persist
        table <webconfiguratorlockout>persist
        #Snort tables
        table <snort2c>table <virusprot>table <bogons>persist file "/etc/bogons"
        table <vpn_networks>{ 192.168.254.0/24 }
        table <negate_networks>{ 192.168.254.0/24 }

        User Aliases

        admin_ports = "{  456  4562 }"
        ovpn_ports = "{  1194  1199 }"
        table <ovpn_remote_networks>{  192.168.254.0/24  192.168.222.0/24 }
        OVPN_Remote_Networks = "<ovpn_remote_networks>"
        table <rfc1918_private_networks>{  10.0.0.0/8  172.16.0.0/12  192.168.0.0/16 }
        RFC1918_Private_Networks = "<rfc1918_private_networks>"
        table <server>{  172.16.100.100 }
        Server = "<server>"

        Gateways

        GWWAN_KD_GW = " route-to ( re0 192.168.0.1 ) "
        GWWAN_TO_PPPOE = " route-to ( pppoe0 XXX.WAN.TO.GW ) "
        GWGWG_LAN = "  route-to { ( pppoe0 XXX.WAN.TO.GW )  }  "

        set loginterface re2

        set skip on pfsync0

        scrub on $WAN_KD all    fragment reassemble
        scrub on $LAN all    fragment reassemble
        scrub on $WAN_TO all    fragment reassemble

        no nat proto carp
        no rdr proto carp
        nat-anchor "natearly/"
        nat-anchor "natrules/
        "

        Outbound NAT rules (automatic)

        Subnets to NAT

        tonatsubnets = "{ 127.0.0.0/8 172.16.0.0/16 192.168.254.0/24 }"
        nat on $WAN_KD  from $tonatsubnets to any port 500 -> 192.168.0.2/32  static-port
        nat on $WAN_KD  from $tonatsubnets to any -> 192.168.0.2/32 port 1024:65535 
        nat on $WAN_TO  from $tonatsubnets to any port 500 -> XXX.WAN.TO.IP/32  static-port
        nat on $WAN_TO  from $tonatsubnets to any -> XXX.WAN.TO.IP/32 port 1024:65535

        Load balancing anchor

        rdr-anchor "relayd/*"

        TFTP proxy

        rdr-anchor "tftp-proxy/*"

        NAT Inbound Redirects

        rdr on re0 proto tcp from any to 192.168.0.2 port 443 -> $Server
        rdr on re0 proto tcp from any to 192.168.0.2 port 8182 -> $Server port 5900

        UPnPd rdr anchor

        rdr-anchor "miniupnpd"

        anchor "relayd/"
        anchor "openvpn/
        "
        anchor "ipsec/*"

        Block all IPv6

        block in log quick inet6 all tracker 1000000001 label "Block all IPv6"
        block out log quick inet6 all tracker 1000000002 label "Block all IPv6"
        #–-------------------------------------------------------------------------

        default deny rules

        #---------------------------------------------------------------------------
        block in log inet all tracker 1000000101 label "Default deny rule IPv4"
        block out log inet all tracker 1000000102 label "Default deny rule IPv4"
        block in log inet6 all tracker 1000000103 label "Default deny rule IPv6"
        block out log inet6 all tracker 1000000104 label "Default deny rule IPv6"

        IPv6 ICMP is not auxilary, it is required for operation

        See man icmp6(4)

        1    unreach        Destination unreachable

        2    toobig          Packet too big

        128  echoreq        Echo service request

        129  echorep        Echo service reply

        133  routersol      Router solicitation

        134  routeradv      Router advertisement

        135  neighbrsol      Neighbor solicitation

        136  neighbradv      Neighbor advertisement

        pass  quick inet6 proto ipv6-icmp from any to any icmp6-type {1,2,135,136} tracker 1000000105 keep state

        Allow only bare essential icmpv6 packets (NS, NA, and RA, echoreq, echorep)

        pass out  quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type {129,133,134,135,136} tracker 1000000106 keep state
        pass out  quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type {129,133,134,135,136} tracker 1000000107 keep state
        pass in  quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type {128,133,134,135,136} tracker 1000000108 keep state
        pass in  quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type {128,133,134,135,136} tracker 1000000109 keep state
        pass in  quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type {128,133,134,135,136} tracker 1000000110 keep state

        We use the mighty pf, we cannot be fooled.

        block log quick inet proto { tcp, udp } from any port = 0 to any tracker 1000000111
        block log quick inet proto { tcp, udp } from any to any port = 0 tracker 1000000112
        block log quick inet6 proto { tcp, udp } from any port = 0 to any tracker 1000000113
        block log quick inet6 proto { tcp, udp } from any to any port = 0 tracker 1000000114

        Snort package

        block log quick from <snort2c>to any tracker 1000000115 label "Block snort2c hosts"
        block log quick from any to <snort2c>tracker 1000000116 label "Block snort2c hosts"

        SSH lockout

        block in log quick proto tcp from <sshlockout>to (self) port 4562 tracker 1000000301 label "sshlockout"

        webConfigurator lockout

        block in log quick proto tcp from <webconfiguratorlockout>to (self) port 456 tracker 1000000351 label "webConfiguratorlockout"
        block in log quick from <virusprot>to any tracker 1000000400 label "virusprot overload table"

        block bogon networks (IPv4)

        http://www.cymru.com/Documents/bogon-bn-nonagg.txt

        block in log quick on $WAN_KD from <bogons>to any tracker 1000001551 label "block bogon IPv4 networks from WAN_KD"
        antispoof log for $WAN_KD tracker 1000001570
        antispoof log for $LAN tracker 1000002620
        antispoof log for $WAN_TO tracker 1000003670

        loopback

        pass in  on $loopback inet all tracker 1000004761 label "pass IPv4 loopback"
        pass out  on $loopback inet all tracker 1000004762 label "pass IPv4 loopback"
        pass in  on $loopback inet6 all tracker 1000004763 label "pass IPv6 loopback"
        pass out  on $loopback inet6 all tracker 1000004764 label "pass IPv6 loopback"

        let out anything from the firewall host itself and decrypted IPsec traffic

        pass out  inet all keep state allow-opts tracker 1000004765 label "let out anything IPv4 from firewall host itself"
        pass out  inet6 all keep state allow-opts tracker 1000004766 label "let out anything IPv6 from firewall host itself"
        pass out  route-to ( re0 192.168.0.1 ) from 192.168.0.2 to !192.168.0.0/24 tracker 1000004861 keep state allow-opts label "let out anything from firewall host itself"
        pass out  route-to ( pppoe0 XXX.WAN.TO.GW ) from XXX.WAN.TO.IP to !XXX.WAN.TO.IP/32 tracker 1000004862 keep state allow-opts label "let out anything from firewall host itself"

        User-defined rules follow

        anchor "userrules/*"
        pass  in  quick  on $OpenVPN inet from $OVPN_Remote_Networks to 172.16.0.0/16 tracker 1412417430 keep state  label "USER_RULE"
        pass  in  quick  on $WAN_KD reply-to ( re0 192.168.0.1 ) inet proto tcp  from any to 192.168.0.2 port $admin_ports tracker 1412198572 flags S/SA keep state  label "USER_RULE"
        pass  in  quick  on $WAN_KD reply-to ( re0 192.168.0.1 ) inet proto udp  from any to 192.168.0.2 port $ovpn_ports tracker 1412415560 keep state  label "USER_RULE"
        pass  in  quick  on $WAN_KD reply-to ( re0 192.168.0.1 )  proto tcp  from any to $Server port 443 flags S/SA keep state  label "USER_RULE: NAT "
        pass  in  quick  on $WAN_KD reply-to ( re0 192.168.0.1 )  proto tcp  from any to $Server port 5900 flags S/SA keep state  label "USER_RULE: NAT "
        pass  in  quick  on $LAN inet proto tcp  from any to 172.16.100.1 port $admin_ports tracker 1412207357 flags S/SA keep state  label "USER_RULE"
        pass  in  quick  on $LAN inet from 172.16.0.0/16  to <negate_networks>tracker 0100000101 keep state  label "NEGATE_ROUTE: Negate policy routing for destination"
        pass  in  quick  on $LAN  $GWGWG_LAN inet from 172.16.0.0/16 to any tracker 0100000101 keep state  label "USER_RULE: Default allow LAN to any rule"
        pass  in  quick  on $WAN_TO reply-to ( pppoe0 XXX.WAN.TO.GW ) inet proto tcp  from any to XXX.WAN.TO.IP port $admin_ports tracker 1412448206 flags S/SA keep state  label "USER_RULE"

        VPN Rules

        anchor "tftp-proxy/*"

        Any news on the issue?

        Thanks,
        Harry</negate_networks></bogons></virusprot></webconfiguratorlockout></sshlockout></snort2c></snort2c></server></server></rfc1918_private_networks></rfc1918_private_networks></ovpn_remote_networks></ovpn_remote_networks></negate_networks></vpn_networks></bogons></virusprot></snort2c></webconfiguratorlockout></sshlockout>

        1 Reply Last reply Reply Quote 0
        • M
          mikeisfly
          last edited by Oct 6, 2014, 10:08 AM

          I can confirm, I am having the same issue using the Oct 4th 64bit build. I can provide configurations if needed but I know I have configured everything correctly and the firewall blocks show no blocks. Downgrading back to 2.1.5 fixes the issues with the exact same configuration file. Just to give an over view of what I did.

          created a rule under lan to have my plex machine use the second WAN.
          Created a NAT (port Forward for TCP 32400) to plex machine
          Rule was automatically generated.

          Some fixes that I have found:

          Changing default gateways to second WAN (Puts everything on second WAN), Not the desired behavior
          Downgrading to 2.1.5 (everything works as expected)

          I have this running on my home router so I can flash firmware again if Needed.

          1 Reply Last reply Reply Quote 0
          • E
            eri--
            last edited by Oct 7, 2014, 8:32 PM Oct 7, 2014, 7:35 PM

            Actually seems that the one that have posted here have some issues in their configuration.

            They have set a generic policy routing rule on their lan which overrides the reply-to(NAT of their OPTx) tha would make things work.

            1 Reply Last reply Reply Quote 0
            • E
              eSpezi
              last edited by Oct 7, 2014, 8:48 PM Oct 7, 2014, 8:43 PM

              Hi Ermal,

              on my Dual WAN (WAN1 = Cable Router, WAN2 = PPPoE Modem) installation I successfully can ping each WAN IF.
              But I only can reach pfSenses WebGui or anything else on the current Default Gateway.
              By current I mean, that if the default Default Gateway (WAN1) is marked as down (unfortunately still way too often false alarm by apinger) then I am able to reach the WebGui via WAN2.

              I followed your suggestions, switched to manual outbound and added the propsed rule on top of everything, but that doesn't change anything.

              Has anybody had success with this workaround?
              Any other suggestions to make it work?

              Thanks,
              Harry

              Edit:
              Ermal in my case, you're right. I've policy routing on lan to a failover gateway group. That same scenario used to work fine with 2.15

              1 Reply Last reply Reply Quote 0
              • M
                mattbunce
                last edited by Oct 14, 2014, 1:39 AM

                Excuse my ignorance, but I can't quite figure out if there is a resolution to this yet? I see from Gloom this should be working if you set manual NAT rules on the OPT1 interface (not sure exactly how to, or what this means?).

                Also, ermal suggests that the problem is that we're using a "generic policy routing rule" - and this is overriding the reply-to. Again, I'm not exactly sure what is meant by "generic policy routing rule" and if there's anything we can do to work around this?

                I have run Wireshark on the NAT target machine, and whilst I don't understand what I'm looking at, you can clearly see that the http request I am making to the NAT forwarded port (from an external network) is hitting the target machine, so it does seem to be the reply that is getting lost somewhere.

                My setup

                WAN = DHCP client
                OPT1 = PIA VPN

                I have set-up forwarding via Firewall > NAT and manually created a floating rule for TCP/UDP traffic on OPT1 coming in the my target IP.

                I have two LAN rules, the first is for target machine and sets the default gateway as OPT1. The second is for all devices and has the default gateway as the router default (which would be WAN).

                The floating rule seems to make no difference, I see the traffic within Wireshark whether or not the floating rule is enabled.

                1 Reply Last reply Reply Quote 0
                • C
                  cmb
                  last edited by Oct 14, 2014, 3:59 PM

                  It's not working, none of the workarounds are worth trying (short of for experimentation purposes if you want). This is the bug:
                  https://redmine.pfsense.org/issues/3760

                  1 Reply Last reply Reply Quote 0
                  • M
                    mattbunce
                    last edited by Oct 14, 2014, 5:35 PM

                    Thanks cmb - That saves me spending any more time on this for now!

                    1 Reply Last reply Reply Quote 0
                    • E
                      eri--
                      last edited by Oct 15, 2014, 9:27 PM

                      Please try a next coming snapshot it should be fixed.

                      1 Reply Last reply Reply Quote 0
                      • E
                        eSpezi
                        last edited by Oct 16, 2014, 1:50 AM

                        Hi Ermal,

                        thanks a lot for addressing the issue!
                        Is the fix already in the Wed Oct 15 14:37:51 CDT 2014 Build?

                        Cheers,
                        Harry

                        1 Reply Last reply Reply Quote 0
                        • E
                          eri--
                          last edited by Oct 16, 2014, 2:06 PM

                          Yeah it should be on that build or newer.

                          1 Reply Last reply Reply Quote 0
                          • M
                            mattbunce
                            last edited by Oct 16, 2014, 7:40 PM

                            Unfortunately, this still doesn't seem to be working for me. I've tried used the automatically generated linked rule and manually creating a floating rule, but nomatter what I try it is still not working for me on the October 16th 09:56:37 version.

                            Is there anything else I should be looking at?

                            1 Reply Last reply Reply Quote 0
                            • P
                              phil.davis
                              last edited by Oct 17, 2014, 12:38 AM

                              @mattbunce:

                              Unfortunately, this still doesn't seem to be working for me. I've tried used the automatically generated linked rule and manually creating a floating rule, but nomatter what I try it is still not working for me on the October 16th 09:56:37 version.

                              Is there anything else I should be looking at?

                              Follow the bug report also: https://redmine.pfsense.org/issues/3760
                              On that, cmb indicates he has done some testing and it is still not fixed.

                              As the Greek philosopher Isosceles used to say, "There are 3 sides to every triangle."
                              If I helped you, then help someone else - buy someone a gift from the INF catalog http://secure.inf.org/gifts/usd/

                              1 Reply Last reply Reply Quote 0
                              • M
                                mattbunce
                                last edited by Oct 17, 2014, 7:40 AM

                                Cheers Phil

                                I have already commented on the bug report too, I just didn't want to get too 'chatty' on there, because it seems the folks on there have done some pretty advanced diagnostics and I didn't want to distract from the good work they were doing :)

                                1 Reply Last reply Reply Quote 0
                                • E
                                  eri--
                                  last edited by Oct 17, 2014, 4:33 PM

                                  Another round of fixes.
                                  Next snapshot should have the missing piece for fixing this.

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mattbunce
                                    last edited by Oct 18, 2014, 12:27 AM

                                    I still can't seem to get this working on the 17th October, 11:27:45 version.

                                    Have you had a chance to try it out ermal? Perhaps I am not configuring the Nat and Rules pages correctly?

                                    M

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      mikeisfly
                                      last edited by Oct 18, 2014, 2:17 PM Oct 18, 2014, 12:02 PM

                                      This is not working for me and I'm using 2.2-BETA (amd64) built on Fri Oct 17 20:02:23 CDT 2014 FreeBSD 10.1-RC2

                                      I have attached my LAN, NAT (Port Forwrd), Manual Outbound NAT Rules.

                                      I have also captured packets on both my WAN, WAN2 and LAN interfaces. On my WAN2 and LAN I can see the Syn, and the Syn Ack packets however I don't see the ack packet. Also there are some retransmissions. When I capture packets on my WAN and filter for port 32400 the capture is blank which tells me that the packet is not being sent out the default gateway. I have attached the .pcap files here in the form of a .txt file if you would like to look at them in wireshark the extension just needs to be changed back to .pcap . Hope this helps

                                      Thanks,

                                      P.S. Not sure why I was trying to embed these images from my onedrive folder but it didn't seem to work so I had to add attachments.

                                      ![LAN Rule.png](/public/imported_attachments/1/LAN Rule.png)
                                      ![LAN Rule.png_thumb](/public/imported_attachments/1/LAN Rule.png_thumb)
                                      ![Nat Port forward.png](/public/imported_attachments/1/Nat Port forward.png)
                                      ![Nat Port forward.png_thumb](/public/imported_attachments/1/Nat Port forward.png_thumb)
                                      ![outbound Nat.png](/public/imported_attachments/1/outbound Nat.png)
                                      ![outbound Nat.png_thumb](/public/imported_attachments/1/outbound Nat.png_thumb)
                                      [capture on LAN.txt](/public/imported_attachments/1/capture on LAN.txt)
                                      [capture on wan2.txt](/public/imported_attachments/1/capture on wan2.txt)

                                      1 Reply Last reply Reply Quote 0
                                      • W
                                        Wolf666
                                        last edited by Oct 18, 2014, 9:24 PM

                                        I think my problem is the same.
                                        If someone has some spare time to read: https://forum.pfsense.org/index.php?topic=82944.0

                                        I am running:

                                        Version 2.2-BETA (amd64)
                                        built on Fri Oct 17 20:02:23 CDT 2014
                                        FreeBSD 10.1-RC2

                                        I am available to test any solution and report back.

                                        Modem Draytek Vigor 130
                                        pfSense 2.4 Supermicro A1SRi-2558 - 8GB ECC RAM - Intel S3500 SSD 80GB - M350 Case
                                        Switch Cisco SG350-10
                                        AP Netgear R7000 (Stock FW)
                                        HTPC Intel NUC5i3RYH
                                        NAS Synology DS1515+
                                        NAS Synology DS213+

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          mikeisfly
                                          last edited by Oct 18, 2014, 10:21 PM

                                          It's a known bug and the developers are working on it. Until then if this is a deal breaker you can try going back to 2.1.5 until the issue is resolved. That is what I'm doing.

                                          1 Reply Last reply Reply Quote 0
                                          22 out of 49
                                          • First post
                                            22/49
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                                            This community forum collects and processes your personal information.
                                            consent.not_received