두 개의 네트워크 카드가 있는 헤드리스 데비안 서버가 있습니다:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 01:02:1d:54:7c:01 brd ff:ff:ff:ff:ff:ff
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 01:02:1d:54:7e:01 brd ff:ff:ff:ff:ff:ff
연결된 케이블을 분리하면 eth1
포트가 다운되지만 관리 관점에서는 계속 켜져 있습니다.
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 01:02:1d:54:7c:01 brd ff:ff:ff:ff:ff:ff
2: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
link/ether 01:02:1d:54:7e:01 brd ff:ff:ff:ff:ff:ff
이는 연결된 경로가 eth1
여전히 라우팅 테이블에 존재한다는 것을 의미합니다. eth1
물리적으로 연결이 끊어진 후 관리 종료를 강제로 수행할 수 있는 방법이 있습니까?
답변1
빠르고 더러운 해결책은 ip monitor
"ifupdowns" 인터페이스가 있는 스크립트를 사용하는 것입니다.
스크립트는 다음과 같습니다:
#!/bin/sh
ip monitor link | while IFS=':' read num name status; do
read extraline # iproute2 outputs physical address on a separate line.
newstate=$(echo "$status"|awk -F' ' '{print $NF}')
if [ "$newstate" = "UP" ]; then
ifup "$name"
elif [ "$newstate" = "DOWN" ]; then
ifdown "$name"
fi
done
스크립트는 변경을 시도하기 전에 네트워크 인터페이스 상태를 확인하지 않지만 이는 문제가 되지 않습니다.
사용하려면 에 넣고 /opt/bin/linkmonitor.sh
실행 가능하게 만든 다음 chmod +x /opt/bin/linkmonitor.sh
끝에 앰퍼샌드를 추가하세요./etc/rc.local
/opt/bin/linkmonitor.sh &
보다 강력한 솔루션이 필요한 경우 다음 사항에 관심이 있을 수 있습니다.라우팅 장애 조치해결책.