openstack 환경에서 구축된keepalived 두 서버는 VIP ALLOWED-ADDRESS-PAIRS를 직접 ping할 수 없습니다
물론 전제 조건은 유니캐스트를 설정하는 것이지 기본 설정이 아니다
일단 붙이고 나중에 이미지 업데이트를 할게요.
[root@haproxy1 ~]# cat/etc/keepalived/keepalived.confvrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 200 advert_int 1 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 10.0.0.121 unicast_peer { 10.0.0.122 }
==== haproxy2
[root@haproxy2 ~]# cat/etc/keepalived/keepalived.confvrrp_instance VI_1 { state SLAVE interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 10.0.0.122 unicast_peer { 10.0.0.121 } virtual_ipaddress { 10.0.0.200/24 brd 10.0.0.255 dev eth0 label eth0:vip }}[root@haproxy2 ~]#
테스트 arp
#tcpdump-i eth0 vrrp-n은 VIP를 표시할 수 있지만 핑통vip10.0.200은 할 수 없다
Openstack에서 나온 질문입니다.
ALLOWED-ADDRESS-PAIRS
https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/html/networking_guide/sec-allowed-address-pairs Allowed-address-pairs allow you to specify mac_address/ip_address (CIDR) pairs that pass through a port regardless of subnet. This enables the use of protocols such as VRRP, which floats an IP address between two instances to enable fast data plane failover.
haproxy1
| 59f73969-0126-4e87-b829-9ece9d905541 | | fa:16:3e:d8:70:a2 | {"subnet_id": "36350ca0-2734-44ca-9167-7713ff9925e2", "ip_address": "10.0.0.121"}
haproxy2
| 7b49f386-e908-42ac-89ef-dc9d977b37e5 | | fa:16:3e:4e:55:8b | {"subnet_id": "36350ca0-2734-44ca-9167-7713ff9925e2", "ip_address": "10.0.0.122"}
set vip = 200
ubuntu@p01-neutron-a1-e1c7g7:~$ neutron port-update 7b49f386-e908-42ac-89ef-dc9d977b37e5 --allowed-address-pairs type=dict list=true ip_address=10.0.0.200
Updated port: 7b49f386-e908-42ac-89ef-dc9d977b37e5
ubuntu@p01-neutron-a1-e1c7g7:~$
그리고 됐어.어이가 없네.
=== 끊임없이 업데이트 failover 문제[root@haproxy1 ~]# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP # backup priority master master vip master
interface eth0
virtual_router_id 51
priority 50 #has issue so aleays make it secondary
advert_int 1
nopreempt # master vip failback
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 10.0.0.121
unicast_peer {
10.0.0.122
}
virtual_ipaddress {
10.0.0.200/24 brd 10.0.0.255 dev eth0 label eth0:vip
}
}
참고
https://blog.51cto.com/13590999/2096701
nopreempt#선점하지 않음으로 설정: 이 설정은 백업 호스트에만 설정할 수 있으며, 이 호스트의 우선순위는 다른 호스트보다 높습니다.
하지만!!!master는 nopreempt를 설정할 수 없습니다.
그래서 해결 방안은 마스터를 설정하지 않고 모두 백업으로 설정하면 모두가 백업이므로 nopreempt를 추가할 수 있다. 마스터가 된 LB가 고장나서 다시 고친 후에도 마스터를 점령하지 않는다.
통상적으로 마스터 서비스가 죽은 후에 백업이 마스터가 되지만 마스터 서비스가 다시 좋아질 때 마스터가 VIP를 점유하면 업무가 바쁜 사이트를 두 번 전환하는 것은 좋지 않다.그래서 우리는 프로필에 nopreempt 비점령을 넣어야 하지만, 이 매개 변수는state를 백업으로만 사용할 수 있기 때문에 HA를 사용할 때 마스터와 백업의state를 백업으로 설정하여priority를 통해 경쟁하도록 하는 것이 가장 좋다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
Allowed-address-pairs allow you to specify mac_address/ip_address (CIDR) pairs that pass through a port regardless of subnet. This enables the use of protocols such as VRRP, which floats an IP address between two instances to enable fast data plane failover.
haproxy1
| 59f73969-0126-4e87-b829-9ece9d905541 | | fa:16:3e:d8:70:a2 | {"subnet_id": "36350ca0-2734-44ca-9167-7713ff9925e2", "ip_address": "10.0.0.121"}
haproxy2
| 7b49f386-e908-42ac-89ef-dc9d977b37e5 | | fa:16:3e:4e:55:8b | {"subnet_id": "36350ca0-2734-44ca-9167-7713ff9925e2", "ip_address": "10.0.0.122"}
set vip = 200
ubuntu@p01-neutron-a1-e1c7g7:~$ neutron port-update 7b49f386-e908-42ac-89ef-dc9d977b37e5 --allowed-address-pairs type=dict list=true ip_address=10.0.0.200
Updated port: 7b49f386-e908-42ac-89ef-dc9d977b37e5
ubuntu@p01-neutron-a1-e1c7g7:~$
[root@haproxy1 ~]# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP # backup priority master master vip master
interface eth0
virtual_router_id 51
priority 50 #has issue so aleays make it secondary
advert_int 1
nopreempt # master vip failback
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 10.0.0.121
unicast_peer {
10.0.0.122
}
virtual_ipaddress {
10.0.0.200/24 brd 10.0.0.255 dev eth0 label eth0:vip
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.