Revision 8d900185
Added by Scott Ullrich over 18 years ago
etc/inc/filter.inc | ||
---|---|---|
684 | 684 |
} |
685 | 685 |
} else { |
686 | 686 |
/* standard outbound rules (one for each interface) */ |
687 |
|
|
688 | 687 |
update_filter_reload_status("Creating outbound NAT rules"); |
689 | 688 |
|
690 | 689 |
$natrules .= filter_nat_rules_generate_if($wanif, |
... | ... | |
694 | 693 |
$natrules .= filter_nat_rules_generate_if($wanif, |
695 | 694 |
"{$lansa}/{$lancfg['subnet']}"); |
696 | 695 |
|
696 |
$optints = array(); |
|
697 |
generate_optcfg_array($optints); |
|
698 |
|
|
699 |
/* generate lan nat mappings for opts with a gateway opts */ |
|
700 |
foreach($optints as $oc) { |
|
701 |
$opt_interface = $oc['if']; |
|
702 |
if (interface_has_gateway("$opt_interface")) { |
|
703 |
$natrules .= filter_nat_rules_generate_if($opt_interface, |
|
704 |
"{$lansa}/{$lancfg['subnet']}", 500, "", 500, null, 500, false); |
|
705 |
$natrules .= filter_nat_rules_generate_if($opt_interface, |
|
706 |
"{$lansa}/{$lancfg['subnet']}", 5060, "", 5060, null, 5060, false); |
|
707 |
$natrules .= filter_nat_rules_generate_if($opt_interface, |
|
708 |
"{$lansa}/{$lancfg['subnet']}"); |
|
709 |
} |
|
710 |
} |
|
711 |
|
|
697 | 712 |
/* optional interfaces */ |
698 | 713 |
for ($i = 1; isset($config['interfaces']['opt' . $i]); $i++) { |
699 | 714 |
update_filter_reload_status("Creating outbound rules (opt{$i})"); |
... | ... | |
702 | 717 |
if (isset($optcfg['enable']) && !$optcfg['bridge']) { |
703 | 718 |
$optsa = gen_subnet($optcfg['ipaddr'], $optcfg['subnet']); |
704 | 719 |
|
705 |
/* setup nat mappings for lan -> opt[$i] |
|
706 |
* interface if a gateway is defined |
|
707 |
*/ |
|
708 |
if((interface_has_gateway("opt{$i}"))) { |
|
709 |
$natrules .= filter_nat_rules_generate_if($optcfg['if'], |
|
710 |
"{$lansa}/{$lancfg['subnet']}", 500, "", 500, null, 500, false); |
|
711 |
$natrules .= filter_nat_rules_generate_if($optcfg['if'], |
|
712 |
"{$lansa}/{$lancfg['subnet']}", 5060, "", 5060, null, 5060, false); |
|
713 |
$natrules .= filter_nat_rules_generate_if($optcfg['if'], |
|
714 |
"{$lansa}/{$lancfg['subnet']}", null, "", null, null, null, isset($optcfg['nonat'])); |
|
715 |
} |
|
716 |
|
|
717 | 720 |
/* create outbound nat entries for primary wan */ |
718 | 721 |
$natrules .= filter_nat_rules_generate_if($wanif, |
719 | 722 |
"{$optsa}/{$optcfg['subnet']}", 500, "", 500, null, 500, false); |
... | ... | |
723 | 726 |
"{$optsa}/{$optcfg['subnet']}", null, "", null, null, null, isset($optcfg['nonat'])); |
724 | 727 |
|
725 | 728 |
/* create outbound nat entries for all opt wans */ |
726 |
$optints = array(); |
|
727 |
generate_optcfg_array($optints); |
|
728 | 729 |
foreach($optints as $oc) { |
729 | 730 |
$opt_interface = $oc['if']; |
730 |
if (interface_has_gateway("opt{$i}")) {
|
|
731 |
if (interface_has_gateway("$opt_interface")) {
|
|
731 | 732 |
$natrules .= filter_nat_rules_generate_if($opt_interface, |
732 | 733 |
"{$optsa}/{$optcfg['subnet']}", 500, "", 500, null, 500, false); |
733 | 734 |
$natrules .= filter_nat_rules_generate_if($opt_interface, |
Also available in: Unified diff
MFC
3rd pass nat rules generation. Also process lan subnets with OPT gateway properly.