[acassen/keepalived] 8640a6: Fix typo in interface details printing
pqarmitage <[email protected]> Wed, 12 Jul 2017 07:06:25 -0700
| Newsgroups | gmane.linux.keepalived.devel |
|---|---|
| Message-ID | <59662ce1b6c6d_44373fe677001c3c559f6@hookshot-fe3-cp1-prd.iad.github.net.mail> |
Branch: refs/heads/master
Home: https://github.com/acassen/keepalived
Commit: 8640a64d1a655c9d3158ed2177e8499ade9968a2
https://github.com/acassen/keepalived/commit/8640a64d1a655c9d3158ed2177e8499ade9968a2
Author: Quentin Armitage <[email protected]>
Date: 2017-07-11 (Tue, 11 Jul 2017)
Changed paths:
M keepalived/vrrp/vrrp_print.c
Log Message:
-----------
Fix typo in interface details printing
Signed-off-by: Quentin Armitage <[email protected]>
Commit: f7288b9c04e237e7fc085afaff12fd52bc7501ff
https://github.com/acassen/keepalived/commit/f7288b9c04e237e7fc085afaff12fd52bc7501ff
Author: Quentin Armitage <[email protected]>
Date: 2017-07-12 (Wed, 12 Jul 2017)
Changed paths:
M doc/keepalived.conf.SYNOPSIS
M doc/man/man5/keepalived.conf.5
M keepalived/core/keepalived_netlink.c
M keepalived/include/vrrp_if.h
M keepalived/include/vrrp_if_config.h
M keepalived/vrrp/vrrp.c
M keepalived/vrrp/vrrp_if_config.c
M keepalived/vrrp/vrrp_parser.c
Log Message:
-----------
Enable vmacs to work when sysctl net.ipv4.conf.all.rp_filter > 0
A number of distros now set net.ipv4.conf.all.rp_filter = 1 by default.
This means that when a vrrp instance is in the master state, it cannot
receive adverts sent by a higher priority master, and hence we end up
with 2 masters.
I tried an alternative of receiving on the base interface, but no packets
that have the same source MAC address as an interface on the system
(i.e. the vmac interface) get delivered to the socket.
For distros such as Fedora, RHEL, CentOS, ArchLinux, all.rp_filter = 1
due to systemd commit
https://github.com/systemd/systemd/commit/1836bf9e1d70240c8079e4db4312309f4f1f91fd
The reason given for the commit is to work around a boot-time race condition
where interfaces created before default.rp_filter is set do not get the
updated default.rp_filter setting, and so the all.rp_filter setting is used
to override the individual interface settings. This doesn't seem the right
solution to the problem, since it prevents any interface running with
rp_filter = 0, and that is what we need for vmacs. I have filed an issue
report for systemd at https://github.com/systemd/systemd/issues/6282, but
in the mean time we need to work around the issue. Ubuntu sets all.rp_filter=1
in /etc/sysctl.d/10-network-security.conf provided by the procps package.
Debian doesn't set all.rp_filter.
The only solution I have found, and I am not entirely happy with this since
it has effects beyond keepalived and affects the system as a whole, is to set
all.rp_filter = 0. In order to seek not to change the operation of the system,
if default.rp_filter < all.rp_filter, default.rp_filter is set to all.rp_filter,
thereby ensuring that any new interfaces created will take the original value
of all.rp_filter. It then iterates through all existing interfaces, and
{interface}.rp_filter is set to the value of all.rp_filter if
{interface}.rp_filter < all.rp_filter. all.rp_filter is then set to 0.
This means that all interfaces should behave in the same way as before, since
the behaviour of rp_filter is defined by the maximum of
{interface,all}.rp_filter, but we are not able to operate the vmac interfaces
with rp_filter = 0. When keepalived exists, it restores the original settings
of rp_filter if they are the same as what we set them to.
Signed-off-by: Quentin Armitage <[email protected]>
Commit: 300dda74ae44d3919f417205f107cefacb3dff08
https://github.com/acassen/keepalived/commit/300dda74ae44d3919f417205f107cefacb3dff08
Author: Quentin Armitage <[email protected]>
Date: 2017-07-12 (Wed, 12 Jul 2017)
Changed paths:
M keepalived/vrrp/vrrp_if_config.c
Log Message:
-----------
Only restore rp_filter on interfaces if same as we set them to
If rp_filter has been altered since we set it, then do not restore
it to the original value.
Signed-off-by: Quentin Armitage <[email protected]>
Commit: 317555e304372205cf634f252e72c5b6de0eb1b6
https://github.com/acassen/keepalived/commit/317555e304372205cf634f252e72c5b6de0eb1b6
Author: pqarmitage <[email protected]>
Date: 2017-07-12 (Wed, 12 Jul 2017)
Changed paths:
M doc/keepalived.conf.SYNOPSIS
M doc/man/man5/keepalived.conf.5
M keepalived/core/keepalived_netlink.c
M keepalived/include/vrrp_if.h
M keepalived/include/vrrp_if_config.h
M keepalived/vrrp/vrrp.c
M keepalived/vrrp/vrrp_if_config.c
M keepalived/vrrp/vrrp_parser.c
M keepalived/vrrp/vrrp_print.c
Log Message:
-----------
Merge pull request #620 from pqarmitage/fixes
Fix IPv4 VMAC interfaces working when sysctl net.ipv4.conf.all.rp_filter > 0
Compare: https://github.com/acassen/keepalived/compare/fa04910f18db...317555e30437
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Keepalived-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/keepalived-devel