네트워크 전환 문제

네트워크 전환 문제

두 개의 네트워크 카드가 설치된 데비안을 실행하는 데스크톱 컴퓨터가 있습니다. 네트워크 카드는 안전한 기업 네트워크에 연결되며 고정 IP가 필요합니다. 다른 네트워크 카드(eth1)는 dlink 라우터에 연결된 다음 DHCP 주소가 지정된 케이블 모뎀에 연결됩니다.

두 네트워크 간을 전환하는 스크립트를 만들고 싶습니다. 두 네트워크가 동시에 연결되지 않았는지 확인하고 싶습니다. 이제 내 스크립트는 각 인터페이스의 up/down 상태를 확인하고 ifup/ifdown을 사용하여 전환합니다. 그러나 네트워크를 전환하려고 할 때 여러 가지 문제에 직면하게 됩니다. 이에 대해 개략적으로 설명하겠습니다. 하지만 잘못된 방향으로 가고 있는 것 같습니다.

회사 네트워크 연결에 필요한 고정 IP 설정과 케이블 연결에 필요한 DHCP를 반영하도록 /etc/network/interfaces를 구성하면 여러 게이트웨이 파일을 정의하기 때문에 "RTNETLINK 응답: 파일이 존재합니다"라는 오류가 발생합니다.

"route add"를 통해 게이트웨이를 정의하고 측정을 포함하면 ifup이 eth0을 시작하지 않습니다. 인터페이스 파일에 eth0 및 eth1을 정의하지 않고 네트워크 관리자를 사용하여 이를 관리하는 경우 ifup은 두 인터페이스 중 하나를 표시하지 않습니다. 두 경우 모두 ifup을 사용하려고 하면 자세한 설명 없이 "eth#을 시작할 수 없습니다."(#을 0 또는 1로 대체) 오류가 발생합니다.

ifup/ifdown을 "ifconfig eth# up/down"으로 바꾸면 인터페이스는 정상적으로 켜지고 꺼지지만 resolv.conf의 DNS 설정이 업데이트되지 않으므로 할 수 있는 일이 없습니다. "resolvconf -u"를 추가해도 작동하지 않는 것 같습니다.

전환 후 resolv.conf를 수동으로 편집하면 모든 네트워크에서 모든 것이 제대로 작동하도록 할 수 있지만 가능한 한 자동화되고 단순해지기를 원합니다. 귀하가 제공할 수 있는 도움에 진심으로 감사드립니다.

- -갱신- -

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

auto lo
  iface lo inet loopback

auto eth0
  iface eth0 inet static
  address 10.0.0.152
  netmask 255.255.255.0
  gateway 10.0.0.1
  network 10.0.0.0
  broadcast 10.0.0.255
  dns-search company.com
  dns-nameservers 10.0.0.2 10.0.0.3 10.0.0.4
  meter 100  #without this line I get RNETLINK answers: file does not exist

auto eth1
  iface eth1 inet dhcp  #assigns an address in the 192.168.0.0/24 space with 192.168.0.1 as DNS
  meter 200  #without this line I get RNETLINK answers: file does not exist

/etc/resolv.conf

nameserver 10.0.0.2
nameserver 10.0.0.3
nameserver 10.0.0.4
search company.com cable.provider.com

파일을 수동으로 편집하지 않는 한 내 resolv.conf에는 항상 eth0 연결을 위한 DNS 서버가 있고 검색 경로에 두 도메인이 모두 있습니다. 케이블 연결이 작동하려면 다른 네임서버 라인을 제거하고 192.168.0.1을 추가해야 했으며 기업 연결이 작동하도록 하려면 케이블 공급자 검색 경로만 제거하면 되었습니다.

답변1

DHCP 설정에는 게이트웨이 주소가 포함되어서는 안 됩니다 /etc/network/interfaces. 예를 들어, eth0에서 DHCP를 구성하려면 최소한 다음 줄만 필요합니다.

auto eth0
    iface eth0 inet dhcp

올바르게 구성 ifup하고 ifdown제대로 작동하면 인터페이스 상태를 변경할 때 실행하려는 스크립트를 배치할 수 있습니다 /etc/network/if-up.d. /etc/network/if-down.d그러나 DHCP 서버가 올바르게 설정된 경우 클라이언트에 DNS 구성을 제공해야 하므로 수동으로 구성할 필요가 없습니다.

편집하다

/etc/network/interfacesDNS 설정을 자동으로 변경하려면 인터페이스가 DHCP를 사용하더라도 의 각 해당 인터페이스에 필요한 구성을 추가해야 합니다 . 디렉토리의 후크 스크립트를 사용하여 호출하면
DNS 설정이 /etc/network/interfaces에 전달됩니다. resolvconfifupifdown/etc/network/if-(up|down).d

인터페이스를 사용하여 인터페이스를 열면 ifup해당 DNS 설정이 인터페이스에 연결됩니다 /etc/resolv.conf. 이것이 바로 여러분이 겪고 있는 현상입니다. 반대로, 분해 인터페이스를 사용하면 동일한 설정도 제거됩니다 ifdown. 그러나 이를 사용하더라도 ifdown정적 DNS 설정이 없으면 /etc/network/interfaces해당 인터페이스에 대한 설정은 삭제되지 않습니다 /etc/resolv.conf.

따라서 항목은 eth1다음과 같아야 합니다.

auto eth1    
    iface eth1 inet dhcp  #assigns an address in the 192.168.0.0/24 space with 192.168.0.1 as DNS
    metric 200            #without this line I get RNETLINK answers: file does not exist
    dns-search cable.provider.com

또한 & -v옵션을 사용하여 자세한 출력을 활성화하고 정확히 어떤 후크 스크립트가 실행되고 있는지 확인할 수 있습니다.ifupifdown

원천: man resolvconf man interfaces

관련 정보