차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
keepalived_vrid_mismatch_dropping_received_vrrp_packet [2023/07/14 01:49] – [증상] koovkeepalived_vrid_mismatch_dropping_received_vrrp_packet [2023/07/14 02:13] (현재) koov
줄 5: 줄 5:
  
 ===== 증상 ===== ===== 증상 =====
-''message log''에 아래 로그가 출력되기 시작함.+''/var/log/messages''에 아래 로그가 출력되기 시작함.
  
-/var/log/message 
 <WRAP prewrap> <WRAP prewrap>
 <code> <code>
줄 35: 줄 34:
 동일한 ''VRID'' 를 사용하는 ''KeepAlived'' 가 같은 네트워크에 존재하고 있어서 발생 동일한 ''VRID'' 를 사용하는 ''KeepAlived'' 가 같은 네트워크에 존재하고 있어서 발생
 (VIP 가 다르고 VRID 가 동일한 상황) (VIP 가 다르고 VRID 가 동일한 상황)
-ex> VIP 192.168.17.100 -> VRID 20 +<WRAP prewrap> 
-    VIP 192.168.17.150 -> VRID 20+<code> 
 +VIP 192.168.17.100 -> VRID 20 
 +VIP 192.168.17.150 -> VRID 20 
 +</code> 
 +</WRAP>
  
 ===== 확인방법 ===== ===== 확인방법 =====
 ''KeepAlived'' 가 동작하는 서버에서 ''tcpdump'' 를 이용해서 ''vrid'' 확인 ''KeepAlived'' 가 동작하는 서버에서 ''tcpdump'' 를 이용해서 ''vrid'' 확인
 +<WRAP prewrap>
 +<code bash>
 +# tcpdump -i <interface> vrrp
 +또는
 +# tcpdump -i <interface> host 224.0.0.18
 +</code>
 +</WRAP>
 +
 +
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
줄 49: 줄 61:
 </WRAP> </WRAP>
  
-  * ''IP Multicast address'' 참고 [https://en.wikipedia.org/wiki/Multicast_address#IPv4]+''Openstack''의 경우
  
 +<WRAP prewrap>
 +<code bash>
 +[root@openstackctrl-01]# tcpdump -i bond0.1006 host 224.0.0.18
 +dropped privs to tcpdump
 +tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
 +listening on bond0.1006, link-type EN10MB (Ethernet), snapshot length 262144 bytes
 +15:29:24.906726 IP openstackctrl-03 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 3, authtype simple, intvl 1s, length 24
 +15:29:25.906839 IP openstackctrl-03 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 3, authtype simple, intvl 1s, length 24
 +15:29:26.907203 IP openstackctrl-03 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 3, authtype simple, intvl 1s, length 24
 +15:29:26.907326 IP 10.8.6.100 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 1, authtype simple, intvl 1s, length 24
 +15:29:27.907617 IP 10.8.6.100 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 1, authtype simple, intvl 1s, length 24
 +15:29:27.907653 IP openstackctrl-03 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 3, authtype simple, intvl 1s, length 24
 +15:29:28.907970 IP openstackctrl-03 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 3, authtype simple, intvl 1s, length 24
 +15:29:28.908015 IP 10.8.6.100 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 1, authtype simple, intvl 1s, length 24
 +15:29:29.908275 IP 10.8.6.100 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 1, authtype simple, intvl 1s, length 24
 +</code>
 +</WRAP>
 +
 +위에서 보는것처럼 ''openstackctrl-03''에서 ''vrid 51''으로 vrrp를 advert하고 있는데 바로 아래쪽에 동일하게 ''10.8.6.100''에서도 같은 ''vrid 51''로 advert하는것을 알 수 있다.
 +즉 동일한 ''vrid 51''로 서로 다른 ''VIP''를 advert 하고 있어 이를 수신하는 다른 노드에서 오류가 발생하는 것이다.
 +
 +  * ''IP Multicast address'' 참고 [https://en.wikipedia.org/wiki/Multicast_address#IPv4]
   * ''224.0.0.18'' Virtual Router Redundancy Protocol (VRRP)   * ''224.0.0.18'' Virtual Router Redundancy Protocol (VRRP)
  
 ===== 해결방법 ===== ===== 해결방법 =====
 ''keepalived.conf'' 내에 ''vrid'' 값을 중복되지 않는 값으로 변경 후 ''KeepAlived'' 데몬 ''restart'' ''keepalived.conf'' 내에 ''vrid'' 값을 중복되지 않는 값으로 변경 후 ''KeepAlived'' 데몬 ''restart''
- 
 <WRAP prewrap> <WRAP prewrap>
 <code> <code>
줄 61: 줄 94:
 </code> </code>
 </WRAP> </WRAP>
 +
 +
 +''Openstack''의 경우 ''kolla-ansible'' 배포 인 경우 ''globals.yml''의 ''keepalived_virtual_router_id'' 값을 변경하여 재배포 한다.
 +
 +<WRAP prewrap>
 +<code vim>
 +keepalived_virtual_router_id: "51"
 +</code>
 +</WRAP>
 +
 +''VRID'' 값은 ''0..255'' 사이의 값을 사용한다.
  
 ===== 참조링크 ===== ===== 참조링크 =====
   * https://hyuns1.tistory.com/entry/KeepAlived-VRID-mismatch-Dropping-received-VRRP-packet   * https://hyuns1.tistory.com/entry/KeepAlived-VRID-mismatch-Dropping-received-VRRP-packet
  
  • keepalived_vrid_mismatch_dropping_received_vrrp_packet.1689299341.txt.gz
  • 마지막으로 수정됨: 2023/07/14 01:49
  • 저자 koov