Files
policy-routing/AUTO_NIC_SETUP_README.md

2.9 KiB

자동 NIC 설정 시스템

이 시스템은 새로운 네트워크 인터페이스(NIC)가 감지되면 자동으로 DHCP를 통해 IP를 할당받고, Policy-Based Routing(PBR) 규칙을 업데이트하는 자동화 시스템입니다.

구성 요소

1. udev 규칙

  • 파일: /etc/udev/rules.d/99-auto-nic-setup.rules
  • 기능: 새로운 네트워크 인터페이스가 추가되거나 활성화될 때 자동으로 스크립트 실행
  • 지원 인터페이스: ens*, eth*, enp*

2. 자동 설정 스크립트

  • 파일: /usr/local/bin/auto-nic-setup.sh
  • 기능:
    • 인터페이스 상태 확인
    • DHCP를 통한 IP 할당
    • Policy Routing 규칙 자동 업데이트
    • 상세한 로깅

3. NetworkManager Dispatcher

  • 파일: /etc/NetworkManager/dispatcher.d/99-policy-routing
  • 기능: NetworkManager에서 인터페이스가 up 상태가 될 때 추가적으로 스크립트 실행

4. 로그 파일

  • 파일: /var/log/auto-nic-setup.log
  • 기능: 모든 자동화 작업의 상세 로그 기록

동작 방식

  1. NIC 감지: 새로운 NIC가 시스템에 추가되면 udev 규칙이 트리거됨
  2. 자동 활성화: 인터페이스가 DOWN 상태면 자동으로 UP 상태로 변경
  3. DHCP 설정: dhclient를 사용하여 자동으로 IP 주소 할당 시도
  4. PBR 업데이트: IP 할당이 성공하면 policy_routing.py의 apply_changes 실행
  5. 로깅: 모든 과정이 /var/log/auto-nic-setup.log에 기록됨

현재 설정된 인터페이스

# 현재 PBR 규칙 확인
ip rule show

# 현재 라우팅 테이블 확인
ip route show table nic1
ip route show table nic2
ip route show table nic3

# 로그 확인
sudo tail -f /var/log/auto-nic-setup.log

수동 테스트

새로운 NIC가 추가되었을 때 수동으로 테스트하려면:

# 수동으로 스크립트 실행
sudo /usr/local/bin/auto-nic-setup.sh ens9

# 또는 udev 이벤트 시뮬레이션
sudo udevadm trigger --subsystem-match=net --action=add

문제 해결

로그 확인

sudo tail -n 50 /var/log/auto-nic-setup.log

udev 규칙 다시 로드

sudo udevadm control --reload-rules

수동으로 PBR 규칙 적용

cd /home/pieroot/policy-routing
sudo python3 policy_routing.py apply_changes

주의사항

  • 이 시스템은 물리적 네트워크 인터페이스(ens*, eth*, enp*)에만 적용됩니다
  • 가상 인터페이스(docker*, veth*, br-*)는 자동으로 제외됩니다
  • DHCP 서버가 있는 네트워크에서만 정상 동작합니다
  • 시스템 부팅 시에도 자동으로 적용됩니다

설치된 파일 목록

  • /usr/local/bin/auto-nic-setup.sh - 메인 자동화 스크립트
  • /etc/udev/rules.d/99-auto-nic-setup.rules - udev 규칙
  • /etc/NetworkManager/dispatcher.d/99-policy-routing - NetworkManager dispatcher
  • /var/log/auto-nic-setup.log - 로그 파일