Ik ben bezig om een keepalived configuratie op te zetten om daarbij meerdere loadbalancers in failover mode te draaien. Ik heb de keepalived.conf ingesteld om een macvlan device aan te maken gekoppeld aan bond0.
Als ik keepalived start, kan ik inderdaad verbinden naar de ip adressen die het moet aanmaken, maar de arp tabel bevat het mac adres van de bonding interface, i.p.v. de vmac interface. Als ik de arp entry lokaal aanpas naar het mac adres van de vmac interface, kan ik niet meer pingen of verbinden met het ip adres.
Ik heb de volgende dingen al gecontroleerd:
Daarnaast heb ik gezien dat de kernel de patch op http://git.kernel.org/?p=...65c11a5a35031ba47f18221c4 meegecompileerd heeft.
Ik heb de volgende keepalived.conf
Nu kom ik er niet uit hoe ik ervoor kan zorgen dat pakketten die worden gestuurd aan het macadres van vrrp0 aankomen op bond0. Ik zie ze wel verschijnen in tcpdump, maar ze komen nooit verder. Ik weet wel dat ik nog een aantal entries moet gaan toevoegen aan de keepalived.conf voor notify_master e.a. maar ik wil eerst begrijpen waarom het nu niet werkt.
Daarnaast krijg ik het niet voor elkaar dat keepalived het macadres van vrrp0 broadcast, die lijken op bond0 te worden verstuurd.
Als ik keepalived start, kan ik inderdaad verbinden naar de ip adressen die het moet aanmaken, maar de arp tabel bevat het mac adres van de bonding interface, i.p.v. de vmac interface. Als ik de arp entry lokaal aanpas naar het mac adres van de vmac interface, kan ik niet meer pingen of verbinden met het ip adres.
Ik heb de volgende dingen al gecontroleerd:
code:
1
2
3
4
5
6
7
8
9
10
11
| # global configuration net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 1 net.ipv4.conf.all.arp_filter = 0 # physical interface net.ipv4.conf.bond0.arp_filter = 1 # macvlan interface net.ipv4.conf.vrrp0.arp_filter = 0 net.ipv4.conf.vrrp0.accept_local = 1 |
Daarnaast heb ik gezien dat de kernel de patch op http://git.kernel.org/?p=...65c11a5a35031ba47f18221c4 meegecompileerd heeft.
Ik heb de volgende keepalived.conf
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| vrrp_instance LB_GROUP_2 {
nopreempt # do not assume master from another running server, even if we have a higher priority
smtp_alert # send notifications when we are in failover state
interface bond0 # this is the real interface that will handle all the traffic
virtual_router_id 47 # identifies the whole group as a single virtual router
use_vmac vrrp0 # virtual mac address for failover without gratitious arp
garp_master_delay 3 # wait before sending gratuitous arp after becoming master
priority 100 # priority for this router
advert_int 1 # interval between advertisements
# authenticate VRRP packages with these credentials
authentication {
auth_type PASS
auth_pass 1337
}
# the virtual ip addresses we need to manage
virtual_ipaddress {
XXX.XXX.XXX.XXX
}
} |
Nu kom ik er niet uit hoe ik ervoor kan zorgen dat pakketten die worden gestuurd aan het macadres van vrrp0 aankomen op bond0. Ik zie ze wel verschijnen in tcpdump, maar ze komen nooit verder. Ik weet wel dat ik nog een aantal entries moet gaan toevoegen aan de keepalived.conf voor notify_master e.a. maar ik wil eerst begrijpen waarom het nu niet werkt.
Daarnaast krijg ik het niet voor elkaar dat keepalived het macadres van vrrp0 broadcast, die lijken op bond0 te worden verstuurd.
Ik ontken het bestaan van IE.