For example, WAN receives a /48 delegated from the upstream (ISP...), e.g. "2001:470:abcd::" pfSense then uses this as a starting point to calculate the addresses on LAN, OPT1, OPT2 etc where they have been specified asa "track interface WAN". Actually each local interface gets just a /64 taken out of the /48, using the chunk specified by "IPv6 Prefix Id" for that local interface. e.g. if "IPv6 Prefix Id" is set to "a1" on LAN, then the LAN would be: 2001:470:abcd:00a1::/64 Then when we specify a static-mapped address in LAN, or other things that live in LAN, e.g. "::4242" we mean 4242 on from the base LAN address, so "2001:470:abcd:00a1::4242" i.e. we always have a CIDR of 64 when calculating this stuff. We do not want the logic that was in this code that was using the upstream prefix delegation size (like /48). Note: The code in services.inc "worked" because var $ifname was not set, and so $trackifname was blank, $trackcfg was blank, and so the attempted calculation of $pdlen always came out as 64 anyway. That tricked me for a while trying to understand why the use in service.inc worked. system.inc did not work, because it actually claculated $pdlen and got a number like 48 - which actually we do not want here. |
||
|---|---|---|
| build/scripts | ||
| src | ||
| tools | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| BOOTSTRAP.md | ||
| build.conf.sample | ||
| build.sh | ||
| LICENSE | ||
| README.md | ||
pfSense
Overview
The pfSense project is a free network firewall distribution, based on the FreeBSD operating system with a custom kernel and including third party free software packages for additional functionality. pfSense software, with the help of the package system, is able to provide the same functionality or more of common commercial firewalls, without any of the artificial limitations. It has successfully replaced every big name commercial firewall you can imagine in numerous installations around the world, including Check Point, Cisco PIX, Cisco ASA, Juniper, Sonicwall, Netgear, Watchguard, Astaro, and more.
pfSense software includes a web interface for the configuration of all included components. There is no need for any UNIX knowledge, no need to use the command line for anything, and no need to ever manually edit any rule sets. Users familiar with commercial firewalls catch on to the web interface quickly, though there can be a learning curve for users not familiar with commercial-grade firewalls.
pfSense started in 2004 as a fork of the m0n0wall Project (which ended 2015/02/15), though has diverged significantly since.
pfSense is Copyright 2004-2016 Rubicon Communications, LLC (Netgate) and published under an open source license. Read more at https://pfsense.org/ and support the team by buying a Gold Membership Subscription, bundled hardware appliances or commercial support.
Contribute
The pfSense project welcomes contributions, big or small. Members of the pfSense community frequently contribute bug fixes, enhancements, and documentation changes to improve the functionality and usability of the software.
All of the pfSense project source code is on Github. We recommend potential contributors familiarize themselves with the pfSense project git repositories and Github in general
For legal reasons, we require those seeking to contribute source code changes to review and sign the license agreement (LA) and either the Individual or Corporate CLA.
If you want to contribute but do not have a specific topic in mind, review the list of open bug reports and other issues that are in need of attention.
Before making source code changes, be sure to review our Developer Style Guide so that the submitted code matches our preferred coding style.
Changes may be submitted as pull requests on github once the LA and CLA signing process has been completed. After being submitted, our developers will review the requests, offer feedback, and merge the changes if they are acceptable.
Contact coreteam@pfsense.org with any additional questions or concerns.