On 8/14/2017 4:43 PM, Tom Eastep wrote:
> On 08/14/2017 06:15 AM, Matt Darfeuille wrote:
>> On 8/8/2017 11:25 PM, Tom Eastep wrote:
>>> On 08/08/2017 11:06 AM, Matt Darfeuille wrote:
>>>> On 8/8/2017 1:34 AM, Tom Eastep wrote:
>>>>> It
>>>>> On 08/07/2017 03:35 PM, Matt Darfeuille wrote:
>>>>>>
>>>>>>
>>>>>> On 8/7/2017 10:51 PM, Tom Eastep wrote:
>>>>>>> On 08/07/2017 01:45 PM, Matt Darfeuille wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> My net interface gets it's ip address dinamically asigned by a dhcp 
>>>>>>>> server.
>>>>>>>> Sometime I need that address for SNAT, DNAT rules and so on...
>>>>>>>> I use a variable throughout Shorewall that is defined in the params 
>>>>>>>> file.
>>>>>>>> Everytime that this ip change, I need to change it manually.
>>>>>>>>
>>>>>>>> I'm currently testing the following to let Shorewall know about that 
>>>>>>>> new ip:
>>>>>>>>
>>>>>>>> I have a script in /etc/dhcp/dhclient-exit-hooks that do:
>>>>>>>>
>>>>>>>> case $reason in
>>>>>>>>     bound)
>>>>>>>>         echo $new_ip_address > /etc/shorewall/current_net_ip
>>>>>>>>         shorewall reload
>>>>>>>>         ;;
>>>>>>>> esac
>>>>>>>>
>>>>>>>> then in /etc/shorewall/params:
>>>>>>>>
>>>>>>>> CURRENT_NET_IP=$(cat /etc/shorewall/current_net_ip)
>>>>>>>>
>>>>>>>> then I can use 'CURRENT_NET_Ip' throughout Shorewall.
>>>>>>>>
>>>>>>>> I could clearly asign a fix address but for the sake of 
>>>>>>>> understanding...
>>>>>>>> Is there a better way to let shorewall know when my net interface gets 
>>>>>>>> a
>>>>>>>> new ip or fix address is the way to go?
>>>>>>>
>>>>>>> The best way is to use an address variable
>>>>>>> (http://www.shorewall.org/configuration_file_basics.htm#AddressVariables).
>>>>>>> You still need to use an exit-hook script though.
>>>>>>>
>>>>>>
>>>>>> Can I use address variable in the DEST column of the rules file?
>>>>>>
>>>>>> /etc/shorewall/init:
>>>>>>
>>>>>> NEW_IP_ADDRESS=<IP-ADDRESS>
>>>>>>
>>>>>> /etc/shorewall/rules.d/DNAT.rules:
>>>>>>
>>>>>> DNAT net:$REMOTE_MANAGEMENT_IP $FW:&{NEW_IP_ADDRESS} tcp 22
>>>>>>
>>>>>> $ shorewall check
>>>>>>
>>>>>>    ERROR: Unknown Host (&{NEW_IP_ADDRESS})
>>>>>> /etc/shorewall/rules.d/DNAT.rules (line 14)
>>>>>>       from /etc/shorewall/rules (line 25)
>>>>>> in 
>>>>>> I'm tired so I could be rong!
>>>>>
>>>>> Address variables currently cannot be used in the DEST column of a DNAT
>>>>> rule. But to do what you want in that case, just use a REDIRECT rule.
>>>>>
>>
>> Thanks Tom for implementing that in 5.1.6-RC1!
>>
>> If I have the following in the rules file:
>>
>> DNAT net:$REMOTE_MANAGEMENT_IP $FW:&enp1s0 tcp 22
>>
>> I get the following:
>>
>> Aug 14 14:43:47   ERROR: Can't determine the IP address of enp1s0
>>
>> What do you recommend?:
>>
>> - Keeping what I'm currently doing (echo the ip to a file then cat that
>> file).
>> - Delay the start of shorewall.
>> - An other approach.
>>
> 
> You could specify the 'wait' option on enp1s0 in shorewall-interfaces().
> That way, the generated script will wait for a while to allow the
> interface to be assigned an address.
> 

I still get the error with the wait option.
I will need to dig deeper to understand while it's failing in the
meantime I have reverted to the REDIRECT rule.

-Matt
-- 
Matt Darfeuille

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Shorewall-users mailing list
Shorewall-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/shorewall-users

Reply via email to