하나의 네트워크 카드는 내부 네트워크용으로 사용하고 다른 네트워크 카드는 인터넷용으로 어떻게 사용합니까?

하나의 네트워크 카드는 내부 네트워크용으로 사용하고 다른 네트워크 카드는 인터넷용으로 어떻게 사용합니까?

사무실에는 인터넷 접속을 위한 무선 LAN과 인트라넷 접속을 위한 이더넷 케이블이 있습니다. 동시에 두 가지를 모두 사용할 수 있도록 노트북을 구성하고 싶지만 지금까지는 그렇게 할 수 없었습니다. 내가 찾은이것답변을 드리지만 제 상황에 적용하기에는 네트워킹 지식이 부족합니다.

두 네트워크에 모두 연결하면 인터페이스를 명시적으로 지정하지 않으면 인터넷에 액세스할 수 있지만 인트라넷에는 액세스할 수 없습니다.

작동하지 않습니다:

ping 10.158.51.11

일하다:

ping -I enp0s20u2 10.158.51.11

내 현재 구성:

~ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether c4:85:08:41:a2:6c brd ff:ff:ff:ff:ff:ff
    inet 10.161.253.58/21 brd 10.161.255.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 12964sec preferred_lft 12964sec
    inet6 fe80::ad6b:7406:af47:5b33/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
7: enp0s20u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 9c:eb:e8:0a:1a:8c brd ff:ff:ff:ff:ff:ff
    inet 10.144.96.246/22 brd 10.144.99.255 scope global dynamic noprefixroute enp0s20u2
       valid_lft 84916sec preferred_lft 84916sec
    inet6 fe80::6d66:6e10:cf2:abce/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

~ ip route
default via 10.161.248.1 dev wlp2s0 proto dhcp metric 600 
default via 10.144.96.1 dev enp0s20u2 proto dhcp metric 20100 
10.144.96.0/22 dev enp0s20u2 proto kernel scope link src 10.144.96.246 metric 100 
10.161.248.0/21 dev wlp2s0 proto kernel scope link src 10.161.253.58 metric 600

해결책

허용된 답변을 보완하기 위해 결국 모든 것이 작동하도록 작은 DNS 프록시를 작성하게 되었습니다. 완전한 솔루션은 다음과 같습니다.

상호 작용:

  • wlp2s0 인터넷용 무선 LAN
  • enp0s20f0u1 인트라넷 사용을 위한 이더넷 연결

속도:

  1. 두 개의 인터페이스 연결
  2. enp0s20f0u1의 기본 경로를 삭제합니다.sudo ip route del default via 10.144.96.1
  3. enp0s20f0u1에 대한 경로를 추가합니다.sudo ip route add 10.0.0.0/8 via 10.144.96.1 dev enp0s20f0u1
  4. 설치하다도메인 이름 확인 프로토콜
  5. 네임서버를 localhost로 변경
  6. 자신만의 구성으로 dnsrp를 시작하세요sudo dnsrp -c conf.toml

답변1

첫째, 라우팅 테이블의 일반적인 개념은 가능한 모든 호스트와 네트워크에 도달하는 방법을 지정하는 것입니다. 라우팅 테이블은 가장 구체적인 항목이 먼저 오도록 자동으로 정렬되며, 패킷의 대상 주소와 일치하는 첫 번째 항목이 해당 패킷에 사용됩니다. 가장 덜 구체적인 경로는 항상 기본 게이트웨이입니다. 이는 일종의 "지정하지 않은 모든 항목에 대해 그곳으로 보냅니다"입니다.

귀하의 경우 인트라넷에서 사용 중인 네트워크 세그먼트를 파악하고 해당 네트워크 세그먼트로 향하는 모든 트래픽을 인트라넷 측 게이트웨이로 전달하기 위한 하나 이상의 경로 항목을 지정해야 합니다.

예를 들어, 귀하의 모든 인트라넷 세그먼트가 아마도 10.* 주소 범위 내에 있을 것이라고 추측할 수 있습니다. 이 경우 다음과 같은 경로를 지정합니다.

sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.144.96.1 dev enp0s20u2

ip명령을 사용하면 동등한 구문은 다음과 같습니다.

sudo ip route add 10.0.0.0/8 via 10.144.96.1 dev enp0s20u2

무선 세그먼트에는 이미 자동 생성된 경로가 있으므로 10.161.248.0/21 세그먼트 내의 모든 항목은 메트릭이 가장 낮은 기본 게이트웨이를 포함하여 무선 인터페이스를 통해 자동으로 도착하므로 기본 인터넷 연결이 제공됩니다. 시간이 지나면 새 경로는 유선 인터페이스를 통해 다른 모든 10.* 네트워크 세그먼트에 바인딩된 트래픽을 인트라넷 게이트웨이로 보냅니다.

현재 구성된 DNS 서버가 인트라넷 측에 있고 인터넷 주소도 확인하는 경우 모든 것이 원활하게 진행됩니다. 그러나 인터넷 주소에 하나의 DNS 서버를 사용하고 인트라넷에 다른 DNS 서버를 사용해야 하는 경우 상황이 복잡해집니다.

먼저, 무선 인터페이스를 통해 인터넷 측 DNS 서버에 액세스해야 하고 서버가 10.161.248.0/21 무선 네트워크 세그먼트 내에 있지 않은 경우 이에 대한 별도의 라우팅 항목을 생성해야 합니다.

둘째, 그냥 사용할 수 없습니다 /etc/resolv.conf. 때로는 캐시 전용 구성으로 로컬 BIND 이름 서버를 설치하고 인터넷 측 DNS 서버를 기본 전달자로 지정하고 이러한 상황을 해결하려면 인트라넷 DNS 서버를 가리키는 모든 인트라넷 DNS를 구성하세요.

답변2

기본적으로 다음과 같은 두 가지 경로를 설정해야 합니다.

어떤 게이트웨이를 사용해야 할지 모르기 때문에 데이터에 있는 게이트웨이를 사용합니다.

sudo route add -net 10.144.96.0 netmask 10.144.99.0 gw 10.144.248.1 dev enp0s20u2
sudo route add -net 10.161.0.0 netmask 10.161.0.0 gw 10.161.248.1 dev wlp2s0

그렇군요 다시 배워야겠네요...

IP 라우팅이 있습니다

sudo ip route add to 10.144.96.0/21 via 10.144.248.1 dev enp0s20u2
sudo ip route add to 10.161.0.0/22 via 10.144.248.1 dev wlp2s0

나에게는 적합하지 않고 작동할 수도 있습니다... ip route이런!

관련 정보