DHCP 서버에서 자동 기본 경로 비활성화

DHCP 서버에서 자동 기본 경로 비활성화

안녕하세요. Raspberry PI를 dhcp 서버로 구성하려고 합니다. 내 생각은 eth0 인터페이스를 통해 스위치를 연결하고 다른 장치를 스위치에 연결할 수 있다는 것입니다. 하지만 여전히 wlan0을 통해 ssh와 인터넷 액세스를 유지하고 싶습니다.

이를 달성하기 위해 isc-dhcp-server를 설치한 다음 고정 IP 주소에 대한 구성을 추가했습니다./etc/network/interfaces.d/eth0

allow-hotplug eth0
iface eth0 inet static
  address 10.0.0.1
  netmask 255.255.255.0
  broadcast 10.0.0.255
  gateway 10.0.0.1

다음으로 dhcp 서버의 구성을 파일에 추가했습니다./etc/dhcp/dhcpd.conf:

authorative
subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.1 10.0.0.10;
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.0.0.255;
  option routers 10.0.0.1;
  option domain-name "local-network";
  option domain-name-servers 8.8.8.8, 8.8.4.4;
}

그 후 Raspberry PI를 다시 시작했는데 모든 것이 괜찮아 보였습니다. WiFi를 통해 내 컴퓨터에서 연결할 수 있었고 스위치에 연결된 다른 컴퓨터는 10.0.0.2에서 10.0.0.10까지 IP 주소를 얻었습니다. 구성된 Raspberry PI를 통해).

가장 큰 문제는 Raspberry PI에서 인터넷에 접속할 수 없다는 것입니다. 내가 다음과 같은 것을 입력할 때

ping 10.0.0.3

작동하지만

ping 8.8.8.8

실패하다. 문제를 디버깅한 후 다음 명령을 사용하여 문제를 찾았습니다 ip route.

default via 10.0.0.1 dev eth0 proto dhcp src 10.0.0.2 metric 202 
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.46 metric 303 
10.0.0.0/24 dev eth0 proto dhcp scope link src 10.0.0.2 metric 202 
192.168.0.0/24 dev wlan0 proto dhcp scope link src 192.168.0.46 metric 303

10.0.0.1을 통해 기본 경로를 제거하려고 시도했는데 일시적으로 도움이 되었지만 잠시 후 일부 프로세스(DHCP 서버가 의심됨)가 이를 복원합니다. 물론 항상 삭제하도록 데몬을 작성할 수도 있지만 더 나은 솔루션을 찾고 있습니다.

업데이트 #1

DHCP 서버에 다음이 ip route표시되지 않습니다.

default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.46 metric 303 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 
169.254.0.0/16 dev eth0 scope link src 169.254.44.117 metric 202 
192.168.0.0/24 dev wlan0 proto dhcp scope link src 192.168.0.46 metric 303

미리 감사드립니다

답변1

문제는 실제로 라우팅 테이블이지만 라우팅 레코드를 다시 가져오지 않고 성공적으로 삭제했습니다.

위에서 언급했듯이 Stretch의 네트워킹(Jessie로 돌아가서 생각해보면)이 많이 바뀌었습니다. 이것우편 엽서/etc/dhcpcd.conf대신 고정 IP 설정 과정을 안내하는 지침이 수정되었습니다 /etc/network/interfaces*. 그러나 내 경우에는 static router=x.x.x.x내 어댑터의 고정 IP에 대한 변수를 주석 처리하는 것이 더 낫다는 것을 알았습니다. eth0왜냐하면 그것이 내 기본 게이트웨이가 되는 것을 원하지 않았기 때문입니다. 그런 다음 테이블에서 경로를 삭제 ip route del default via <address> dev eth0하고 삭제된 상태로 유지했습니다.

그러나 여기서의 작업은 아직 완료되지 않았습니다. DHCP 서버에 연결된 다른 장치가 정상적으로 인터넷에 액세스할 수 있도록 하려면 다음 작업을 수행하여 NAT를 설정해야 합니다.

1) /etc/sysctl.conf다음 토글을 사용하여 IP 전달을 활성화하도록 편집합니다. 2) net.ipv4.ip_forward=1
전달 및 반환에 대한 /etc/rc.localiptable 규칙을 추가하도록 편집합니다. 다음을 추가하세요.eth0wlan0

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state \
--state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT

3) 변경사항을 적용하려면 재부팅하세요.

이제 Wi-Fi를 통해 다른 장치에 액세스할 수 있으며 dhcp 서버에서 할당된 IP로 제대로 작동할 것입니다.

관련 정보