
초기 데이터:
1.두 개의 DHCP 서버:
첫 번째: 설명: Debian GNU/Linux 6.0.10(squeeze) 릴리스: 6.0.10 코드명: squeeze
두번째 NAME="Debian GNU/Linux" VERSION_ID="8" VERSION="8 (제시)" ID=debian
2.하나의 네트워크, 192.168.0.0/24라고 가정해 보겠습니다.
삼.두 개의 인터페이스 192.168.0.1 및 192.168.0.2(각 DHCP 서버당 하나씩). 둘 다 작동 중이며 하나의 서브넷에서 주소를 제공하지만 첫 번째 dhcp에 대한 풀은 .10-.20 게이트웨이 ip.1이고 두 번째 ip.21-.31에 대한 풀은 게이트웨이 ip.2입니다.
4.작업 - 해당 네트워크의 장치는 DHCP #1이 아닌 DHCP #2에서 주소를 받아야 합니다. 왜 그렇습니까? 주요 작업은 한 시스템에서 다른 시스템으로 마이그레이션하는 것이므로 단순히 모든 장치의 연결을 끊을 수는 없습니다. 현재 작동 중인 장치는 작동 상태를 유지해야 합니다. 호텔 내 TV 마이그레이션입니다.
5.내가 무엇을 시도했나요? 내 생각은 클라이언트의 DHCP 요청에 대한 DCHP #1의 응답으로 수동으로 지연을 늘리는 것이었습니다.
6.DHCP #1에 사용되는 명령: tc qdisc add dev eth1 루트 핸들 1: prio tc qdisc add dev eth1 parent 1:3 핸들 30: netem 지연 500ms tc filter add dev eth1 프로토콜 ip parent 1:0 prio 3 u32 \ match ip sport 67 0xffff flowid 1:3 tc 필터 추가 dev eth1 프로토콜 ip parent 1:0 prio 3 u32 \ match ip dport 68 0xffff flowid 1:3
7.결과: 장치에서 DHCP #1을 ping하면 500ms 이상 지연이 발생하지만 장치에 대한 반박을 수행하고 두 DHCP 서버 모두에서 "tcpdump -n -i eth1 portrange 67-68" 명령을 실행하거나 "tail -f" 명령을 실행하면 /var/log/syslog"에 대한 자세한 내용을 보면 DHCP #1이 DHCP #2보다 더 빠르게 응답한다는 것을 알 수 있습니다.
아이디어와 단서, 또 무엇을 해야 할지, 또 다른 해결책을 알려주시면 매우 감사하겠습니다. 감사합니다!
답변1
DHCP 서버가 제공하는 IP는 DHCP 서버를 사용할 수 없게 되어도 무효화되지 않습니다. 따라서 질문에 추가하지 않은 이야기가 더 있지 않는 한 이는 그리 어렵지 않을 것입니다.
- 모든 장치는 서버 #1에서 IP를 요청하고 유효한 임대(예: 1시간)를 통해 IP를 얻습니다.
- DHCP 서버 #1을 종료합니다. 모든 장치는 풀 #1에 남아 있습니다.
- 임대의 50%가 만료된 후(이 예에서는 30분) 장치는 임대 갱신을 시도합니다. 서버가 다운되었기 때문에 갱신은 실패하지만 장치는 유효한 풀 1 IP 주소를 계속 사용합니다.
- 임대의 87.5%가 만료된 후(남은 임대 시간 7.5분) 클라이언트는 DHCPDISCOVER를 수행하고 새 임대를 수락합니다. 이 시점에서 DHCP 서버 #2에서 유효한 주소를 가져와야 하며 풀 2에서 IP 주소를 가져와야 합니다.
- 임대 기간이 만료된 후에는 모든 클라이언트가 pool2에 있어야 합니다.