리눅스

우분투에서 VIP를 추가한 후 ARP 테이블이 즉시 업데이트되지 않는 경우

변군이글루 2024. 11. 18. 16:46
반응형

우분투에서 VIP를 추가한 후 ARP 테이블이 즉시 업데이트되지 않는 경우

VIP 추가 후 ARP 테이블이 즉시 갱신되지 않는지 확인합니다.

1. 네트워크 인터페이스 설정 확인

VIP가 추가된 네트워크 인터페이스가 올바르게 설정되었는지 확인합니다. IP 주소가 제대로 적용되지 않으면 ARP 테이블 업데이트가 이루어지지 않을 수 있습니다.

 

VIP 추가

sudo ifconfig enp0s3:1 192.168.0.140/24

VIP 상태 확인

  • VIP가 enp0s3:1로 설정된 것이 확인되면 해당 IP가 제대로 네트워크 인터페이스에 바인딩된 것입니다.
ip addr show enp0s3
$ ip addr show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:1f:fe:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.141/24 brd 192.168.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.0.140/24 brd 192.168.0.255 scope global secondary enp0s3:1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe1f:febd/64 scope link 
       valid_lft forever preferred_lft forever

VIP 삭제

sudo ifconfig enp0s3:1 192.168.0.140 down

2. ARP 테이블 업데이트 확인

VIP가 추가된 후 ARP 테이블을 확인하여 해당 항목이 업데이트되었는지 확인합니다.

 

ARP 테이블 확인

ip addr show
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:1f:fe:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.141/24 brd 192.168.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.0.140/24 brd 192.168.0.255 scope global secondary enp0s3:1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe1f:febd/64 scope link 
       valid_lft forever preferred_lft forever
ip neigh show
$ ip neigh show
192.168.0.142 dev enp0s3 lladdr 08:00:27:e0:8f:4d STALE 
192.168.0.1 dev enp0s3 lladdr 88:36:6c:d9:92:04 STALE 
192.168.0.4 dev enp0s3 lladdr 80:e8:2c:d0:2f:ce STALE 
192.168.0.2 dev enp0s3 lladdr 8c:b0:e9:02:15:97 REACHABLE 
192.168.0.143 dev enp0s3 lladdr 08:00:27:e0:8f:4d STALE

VIP에 대한 ARP 요청 전송

  • VIP에 대한 ARP 요청을 보내 ARP 테이블이 갱신되도록 합니다.
sudo arping -I enp0s3 -c 3 192.168.0.140
$ sudo arping -I enp0s3 -c 3 192.168.0.140
ARPING 192.168.0.140
Timeout
Timeout
Timeout

--- 192.168.0.140 statistics ---
3 packets transmitted, 0 packets received, 100% unanswered (0 extra)
  • 이때 ip neigh show 명령어에 VIP에 대한 항목이 업데이트되지 않거나 MAC 주소가 잘못된 값으로 표시될 수 있습니다.

3. ARP 브로드캐스트 강제 전송

ARP 요청이 자동으로 발생하지 않는 경우 ARP 브로드캐스트를 수동으로 전송하여 VIP에 대한 ARP 테이블을 강제로 갱신할 수 있습니다.

 

arpsend 사용(ARP broadcast)

sudo arpsend -U -c 1 -i enp0s3 192.168.0.140

arping 사용(ARP announce)

sudo arping -I enp0s3 -c 3 -A 192.168.0.140

4. ARP 관련 커널 설정 확인

우분투의 네트워크 관련 커널 설정에서 ARP 동작을 제한할 수 있습니다.

 

현재 ARP 설정 확인

sysctl net.ipv4.conf.all.arp_ignore
sysctl net.ipv4.conf.all.arp_announce

권장 설정

  • arp_ignore=0 : 모든 요청에 대해 응답하도록 설정.
  • arp_announce=2 : VIP가 추가된 경우 ARP 패킷을 명확히 알림.

설정 수정 (일시적으로 적용)

sudo sysctl -w net.ipv4.conf.all.arp_ignore=0
sudo sysctl -w net.ipv4.conf.all.arp_announce=2

5. ARP 테이블 강제 갱신

ARP 테이블을 강제로 갱신하여 VIP 추가 후 ARP 캐시가 최신 상태로 유지되도록 할 수 있습니다.

 

ARP 캐시 플러시

sudo ip neigh flush dev enp0s3

ARP 업데이트

sudo arping -I enp0s3 -c 3 -A 192.168.0.140
ip neigh show

6. ARP 테이블 TTL 확인

ARP 테이블은 일정 시간이 지나면 자동으로 갱신됩니다. VIP를 추가했을 때 ARP 캐시가 즉시 갱신되지 않은 경우 시간이 지나면 자동으로 갱신됩니다.

 

ARP 테이블의 TTL 값 확인

  • TTL(Time-To-Live) 값이 만료되면 ARP 캐시가 자동으로 갱신됩니다.
ip neigh show

 

우분투에서 VIP 추가 후 ARP 테이블이 즉시 업데이트되지 않는 이유는 여러 가지가 있을 수 있습니다. ARP 브로드캐스트가 정상적으로 이루어지지 않거나 ARP 캐시 업데이트에 문제가 있을 수 있음을 확인하고 해결할 수 있습니다.

 

728x90
반응형