Feature #1086
closed
[patch] CARP IPs as outer source addressed for GRE and GIF tunnels
Added by Fulvio Scapin almost 14 years ago.
Updated almost 14 years ago.
Description
I applied the code from the ipsec/openvpn interface lists to include CARP VIP interfaces as outer source addresses for GRE/GIF interfaces.
It is of high importance in order to tunnel dynamic routing information exchanges.
The patch is as follows.
diff --git a/usr/local/www/interfaces_gif_edit.php b/usr/local/www/interfaces_gif_edit.php
index efbf036..e66bbc5 100644
--- a/usr/local/www/interfaces_gif_edit.php
+++ b/usr/local/www/interfaces_gif_edit.php
@@ -136,6 +136,9 @@ include("head.inc");
<select name="if" class="formselect">
<?php
$portlist = get_configured_interface_with_descr();
+ $carplist = get_configured_carp_interface_list();
+ foreach ($carplist as $cif => $carpip)
+ $portlist[$cif] = $carpip." (".get_vip_descr($carpip).")";
foreach ($portlist as $ifn => $ifinfo) {
echo "<option value=\"{$ifn}\"";
if ($ifn == $pconfig['if'])
diff --git a/usr/local/www/interfaces_gre_edit.php b/usr/local/www/interfaces_gre_edit.php
index f0f0a84..ce9f324 100644
--- a/usr/local/www/interfaces_gre_edit.php
+++ b/usr/local/www/interfaces_gre_edit.php
@@ -139,6 +139,9 @@ include("head.inc");
<select name="if" class="formselect">
<?php
$portlist = get_configured_interface_with_descr();
+ $carplist = get_configured_carp_interface_list();
+ foreach ($carplist as $cif => $carpip)
+ $portlist[$cif] = $carpip." (".get_vip_descr($carpip).")";
foreach ($portlist as $ifn => $ifinfo) {
echo "<option value=\"{$ifn}\"";
if ($ifn == $pconfig['if'])
The code is also present in the repository/branch trantorvega-clone/carp_tunnels at rcs.pfsense.org
PS I've been told that the "merge requests" feature at rcs.pfsense.org was broken. Is that still the case?
- Target version set to 2.0
- Status changed from New to Feedback
Forgot to add the patch to visualise CARP IPs/Parent Interfaces in the GRE/GIF interfaces summary
diff --git a/usr/local/www/interfaces_gif.php b/usr/local/www/interfaces_gif.php
index 7134225..c88223d 100644
--- a/usr/local/www/interfaces_gif.php
+++ b/usr/local/www/interfaces_gif.php
@@ -111,7 +111,18 @@ include("head.inc");
<?php $i = 0; foreach ($a_gifs as $gif): ?>
<tr ondblclick="document.location='interfaces_gif_edit.php?id=<?=$i;?>'">
<td class="listlr">
- <?=htmlspecialchars(convert_friendly_interface_to_friendly_descr($gif['if']));?>
+ <?php
+ $valori = array();
+ if ( preg_match('/vip([0-9]+)/',$gif['if'],&$valori) )
+ {
+ foreach ($config['virtualip']['vip'] as $vip) {
+ if (($vip['mode'] == "carp" || $vip['mode'] == "carpdev") and $vip['vhid'] == $valori[1])
+ echo strtoupper($gif['if']) . " CARP " . strtoupper($vip['interface']) . " " . $vip['subnet'];
+ }
+ } else {
+ echo htmlspecialchars(convert_friendly_interface_to_friendly_descr($gif['if']));
+ }
+ ?>
</td>
<td class="listr">
<?=htmlspecialchars($gif['remote-addr']);?>
diff --git a/usr/local/www/interfaces_gre.php b/usr/local/www/interfaces_gre.php
index c9fa525..07cf22e 100644
--- a/usr/local/www/interfaces_gre.php
+++ b/usr/local/www/interfaces_gre.php
@@ -112,7 +112,18 @@ include("head.inc");
<?php $i = 0; foreach ($a_gres as $gre): ?>
<tr ondblclick="document.location='interfaces_vlan_gre.php?id=<?=$i;?>'">
<td class="listlr">
- <?=htmlspecialchars(convert_friendly_interface_to_friendly_descr($gre['if']));?>
+ <?php
+ $valori = array();
+ if ( preg_match('/vip([0-9]+)/',$gre['if'],&$valori) )
+ {
+ foreach ($config['virtualip']['vip'] as $vip) {
+ if (($vip['mode'] == "carp" || $vip['mode'] == "carpdev") and $vip['vhid'] == $valori[1])
+ echo strtoupper($gre['if']) . " CARP " . strtoupper($vip['interface']) . " " . $vip['subnet'];
+ }
+ } else {
+ echo htmlspecialchars(convert_friendly_interface_to_friendly_descr($gre['if']));
+ }
+ ?>
</td>
<td class="listr">
<?=htmlspecialchars($gre['remote-addr']);?>
An example label follows : "VIP1 CARP WAN XXX.XXX.XXX.XXX"
I improvised with the format so change it as you see fit.
Sorry about that and thanks.
- Priority changed from High to Normal
Should be ok in new snapshots.
The method used is different.
- Status changed from Feedback to Resolved
Also available in: Atom
PDF