Thomas Delrue on 29 Aug 2015 17:35:13 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] Behavior of iptables-save and iptables-restore when run concurrently |
I though about that and sadly BAR does indeed contain dozens of unique rules on each rewrite. --delete/insert/replace is just too much of a hassle because I'd have to write code that figures out which index to delete or at which index to insert. Doing it bulk-wise using iptables-restore (change the entire [chain]world) let's me ignore that part of the problem. On 08/29/2015 06:59 PM, Victor wrote: > I am not so familiar with the inner workings of > iptables-save/restore, but I would agree that iptables-restore is > probably atomic. > > I wanted to ask if you were drastically altering the chain, and if > the iptables --delete, --insert, and --replace options could be used > for a simpler solution? Unless BAR contains dozens of unique rules > per rewrite, iptables-save/restore may not offer much benefit. > > On Sat, Aug 29, 2015 at 3:59 PM, Thomas Delrue > <delrue.thomas@gmail.com> wrote: > > > Hello, > > I have a bit of a weird question about the behavior of iptables-save > and iptables-restore when run at the same time. > > Let's say that I have a situation like this: - My rules contain > chains called FOO, BAR and BAZ which each contain a bunch of > goodies. - I don't want to change what FOO or BAZ look like - But, > occasionally, I want to regenerate what the BAR chain should look > like, as in: I want to completely rewrite the entire BAR chain from > scratch. This is done by a program at certain intervals. > > What I'd like to do is do a popen("iptables-save", "r") and as I > read the contents from it, I was thinking of directly piping it into > iptables-restore (using popen("iptables-restore", w")) I happily > write whatever is coming from the iptables-save pipe into the pipe > for iptables-restore and as soon as I encounter the starting point > for my 'BAR' chain, instead of writing the content of the BAR chain > coming from the iptables-save pipe, I write my new (full) content > for what BAR should look like. Then I let iptables-save continue > until it sees the end of the (old) BAR chain data after which I just > happily continue to pipe what is coming from the iptables-save pipe > into the iptables-restore pipe thus preserving what was there > originally for everything except for my BAR chain which now contains > the new information. > > My questions are the following: - Will this work? Will > iptables-restore wait to apply the incoming data until it has seen > everything or will it apply it as it comes in and influence what is > coming in through my other pipe from -save? - At what point does the > incoming data get applied? Does it occur upon my call to > pclose(iptables_restore_pipe)? > > I seem to recall someone mentioning that iptables-restore was atomic, > so I would guess that it would wait with applying until it sees an > EOF (pclose()?) or OCMMIT but I wanted to double check. > >> ___________________________________________________________________________ >> >> Philadelphia Linux Users Group -- http://www.phillylinux.org >> Announcements - >> http://lists.phillylinux.org/mailman/listinfo/plug-announce General >> Discussion -- >> http://lists.phillylinux.org/mailman/listinfo/plug > ___________________________________________________________________________ > > Philadelphia Linux Users Group -- http://www.phillylinux.org > Announcements - > http://lists.phillylinux.org/mailman/listinfo/plug-announce General > Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug >
Attachment:
signature.asc
Description: OpenPGP digital signature
___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug