NetworkManager가 기본 라우팅 정책을 변경합니다.

NetworkManager가 기본 라우팅 정책을 변경합니다.

Raspberry Pi의 DHCP 서버 역할을 하는 NIC(eth0)가 내장된 컴퓨터가 있습니다. 또한 이더넷 장치 eth1로 표시되는 USB 3G 모뎀도 있습니다. eth0의 고정 IP는 192.168.100.1 입니다 /etc/network/interfaces. Pi를 서버에 연결하면 /var/log/syslog다음과 같이 표시됩니다.

NetworkManager[2366]: <info> Policy set 'Ifupdown (eth0)' (eth0) as default for IPv4 routing and DNS.

그 이후에는 ip route show주어진

default via 192.168.1.100 dev eth0  proto static

그런 다음 수동으로 해야 합니다.

ip route delete default
ip route add default via 192.168.1.1

3G 모뎀을 통해 다시 인터넷에 연결해 보세요. 저는 서버에서 Debian 7 wheezy를 기반으로 CrunchBang Linux를 사용하고 Pi에서는 최신 Raspbian을 사용하고 있습니다.

NetworkManager에 대한 기본 경로를 어떻게 선택합니까?

편집: 이것은 내 것입니다 /etc/network/interfaces.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug eth0
auto eth0
iface eth0 inet static
    address 192.168.100.1
    netmask 255.255.255.0

allow-hotplug eth1
auto eth1
iface eth1 inet dhcp

/etc/NetworkManager/NetworkManager.conf으로 변경되었으니 참고해주세요

[ifupdown]
managed=true

nm-applet을 사용하여 eth1(3G 모뎀)의 연결을 끊고 싶기 때문입니다. 이것은 /etc/NetworkManager/NetworkManager.conf:

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

답변1

  • GUI를 사용하는 경우 "이 연결의 리소스에만" 확인란을 선택해 보십시오.
  • 구성 파일을 사용하는 경우(당신처럼 :)) [ipv4]섹션 에 추가하세요 never-default=true.
  • 명령줄 도구를 사용하는 경우 다음을 실행합니다.sudo nmcli con mod "connection name" ipv4.never-default yes

이렇게 하면 터널에서 기본 경로를 제거하고 자신만의 경로를 추가할 수 있습니다.

답변2

저는 파티에 4년 늦었지만 이 문제를 발견하고 해결하는 데 12시간을 보냈습니다. 상황은 여기에서도 비슷합니다. Linux 4 Tegra 커널과 Ubuntu 18.04 운영 체제를 실행하고 로컬 네트워크용 이더넷 포트(eth0)와 인터넷용 USB 셀룰러 어댑터(eth1)를 갖춘 ARM 기반 Jetson Nano입니다.

증상은 비슷합니다. 이더넷 케이블을 연결하자마자 인터페이스가 부팅되고 3분 후에 다음과 같은 메시지가 나타납니다.

NetworkManager[3773]:[1562908622.2587] 정책: IPv4 라우팅 및 DNS에 대해 "유선 연결 1"(eth0)을 기본값으로 설정

시스템 로그에 기록되고 인터넷 연결이 끊어졌습니다.

NetworkManager는 난해한 방식으로 작동하며 프로그래밍하기 어렵습니다. 사용자가 앞에 앉아 필요할 때 항목을 재설정할 수 있도록 하는 것이 더 좋습니다. 그런 여유가 없어서 제대로 작동하게 만들어야 해요.

ipv4.route-metric마침내 효과가 있었던 것은 eth1에 더 낮은(더 높은 우선순위) 설정을 한 것입니다. 출력을 확인하여 route -n현재 측정항목이 무엇인지 확인하세요. 일부 경로에서 추가 20000을 무시합니다. 이는 NetworkManager가 인터넷 연결이 없는 경로의 우선 순위를 해제하려고 시도하는 것인데 이상합니다.

eth0의 인덱스가 100이라고 가정합니다. eth1 인터페이스에 우선순위를 부여하십시오:

sudo nmcli con mod "Wired connection 2" ipv4.route-metric 99

그리고 다시 시작하세요.

이제 문제 해결에 소요되는 시간을 10시간 절약할 수 있습니다. 라우팅 지표는 DNS 우선순위와 아무런 관련이 없다는 점에 유의하세요! 따라서 여전히 연결 문제가 발생하는 경우 DNS 확인 문제가 아닌지 확인하십시오(예: DHCP 서버가 가상 확인 서비스를 제공하고 있음). 그렇다면 ipv4.dns-priorityeth0 연결의 우선순위를 높여서 낮추거나 ipv4.dns-searcheth1 연결이 "~"로 설정되어 선호되는 옵션이 되도록 하십시오.

답변3

다른 답변을 사용하여 문제를 해결할 수 없는 경우 간섭하는 다른 네트워크 관리자가 설치되어 있는지 확인할 수도 있습니다. ConnMan과 NetworkManager를 설치했는데 ConnMan을 제거하고 다시 시작한 후 문제가 해결되었습니다.

이는 제가 이전에 자세히 논의한 내용입니다.

Debian 12에서는 NetworkManager에서 "이 연결에서만 리소스 사용"을 선택했는데도 SSH/SFTP 연결을 위해 USB를 통해 휴대폰을 연결한 후 라우팅 변경으로 인해 인터넷 연결이 작동하지 않아 네트워크에 다시 연결해야 했습니다. 그런 다음 USB와 이더넷을 동시에 사용합니다. 휴대폰의 USB 케이블을 뽑은 후에도 네트워크에 다시 연결해야 했습니다.

답변4

Network Manager는 항상 설정을 재정의하므로 다음을 편집해야 합니다.

vi /etc/네트워크/인터페이스

eth0을 찾아 설정합니다.

gateway 192.168.1.1

네트워크 서비스를 다시 시작합니다.

/etc/init.d/networking restart

관련 정보