특정 대상 IP에 대해 특정 인터페이스를 어떻게 사용할 수 있나요?

특정 대상 IP에 대해 특정 인터페이스를 어떻게 사용할 수 있나요?

두 개의 인터페이스가 있는데 그 중 하나는 Android 휴대폰의 공유 인터넷 USB 연결입니다.

  • enp0s31f6: 이더넷 인터넷 연결(기본값)
  • enp0s20f0u1:연결 공유 안드로이드

enp0s20f0u1인터페이스를 사용하여 SSH를 통해 하나의 IP에만 액세스 하고 싶습니다 . 즉, (외부/인터넷 IP)에 연결된 모든 것이 A.B.C.D이 인터페이스를 거쳐야 한다는 뜻입니다. 다른 사람은 없습니다.

센토스7을 사용하고 있습니다.

  • A.B.C.D대상 IP가 있는 모든 패킷을 소비 인터페이스로 어떻게 라우팅합니까 enp0s20f0u1?

  • 꼭 사용해야 하나요 ip route, 아니면 iptables충분합니까? 왜?

저는 "ip 라우팅"을 처음 사용합니다. 답변을 설명해 주세요.

세부 사항:

enp0s20f0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.42.174  netmask 255.255.255.0  broadcast 192.168.42.255

enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.128.1.21  netmask 255.255.254.0  broadcast 10.128.1.255

내가 뭘 한거지:

$ip 라우팅:

default via 10.128.0.1 dev enp0s31f6  proto static  metric 100 
default via 192.168.42.129 dev enp0s20f0u1  proto static  metric 101 
10.128.0.0/23 dev enp0s31f6  proto kernel  scope link  src 10.128.1.21  metric 100 
10.136.80.66 via 10.128.0.1 dev enp0s31f6  proto dhcp  metric 100 
192.168.42.0/24 dev enp0s20f0u1  proto kernel  scope link  src 192.168.42.174  metric 100 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1

내 인터페이스의 IP는 192.168.42.174이고 이 인터페이스의 게이트웨이는 입니다 192.168.42.129.

두 번째 줄을 제거했습니다 dirkt. default via 192.168.42.129 dev enp0s20f0u1 proto static metric 101

$ip 라우팅

default via 10.128.0.1 dev enp0s31f6  proto static  metric 100 
10.128.0.0/23 dev enp0s31f6  proto kernel  scope link  src 10.128.1.21  metric 100 
10.136.80.66 via 10.128.0.1 dev enp0s31f6  proto dhcp  metric 100 
A.B.C.D via 192.168.42.129 dev enp0s20f0u1 
192.168.42.0/24 dev enp0s20f0u1  proto kernel  scope link  src 192.168.42.174  metric 100 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1

나는 이 인터페이스를 ABCD 이외의 용도로 사용하고 싶지 않습니다. 삭제해야 하나요?

192.168.42.0/24 dev enp0s20f0u1  proto kernel  scope link  src 192.168.42.174  metric 100

또한? 내 인터페이스의 LAN 네트워크인 것 같습니다.

via실수를 해서 게이트웨이 대신 인터페이스의 IP를 사용했습니다 .

이제 모든 것이 잘 작동하고 있습니다. 더 명확합니다.

부가 질문이해하자면, 지금은 포트 22만 리디렉션하고 다른 모든 포트는 차단하고 싶습니다. 대상 IP가 ABCD인 모든 것을 거부하고 포트 22만 허용하려면 iptables/firewallD가 필요하다고 생각합니다.

답변1

라우팅은 가장 구체적인 대상을 선택하여 작동합니다. 이것은 당신이 필요하다는 것을 의미합니다

  • 각 인터페이스 뒤에는 네트워크 세그먼트에 대한 경로가 하나 있습니다.
  • 하나의 기본 경로(여러 경로 대신)
  • ABCD 목적지까지의 특별한 경로입니다 ssh.

따라서 출력은 ip route다음과 같아야 합니다.

default via 10.128.0.1 dev enp0s31f6  proto static  metric 100 
10.128.0.0/23 dev enp0s31f6  proto kernel  scope link  src 10.128.1.21  metric 100 
192.168.42.0/24 dev enp0s20f0u1  proto kernel  scope link  src 192.168.42.65  metric 100 
A.B.C.D/32 dev enp0s20f0u1  ...

마지막 것을 추가하려면 다음을 수행하십시오.

ip route add A.B.C.D/32 dev enp0s20f0u1 via 192.168.42.129

현재 게이트웨이는 어디에 192.168.42.129있습니까(상수일 필요는 없음).

사용

ip route del default via 192.168.42.129 dev enp0s20f0u1

ABCD 및 링크 로컬 패킷 이외의 패킷이 이 인터페이스를 통과하지 못하도록 하려면 두 번째 기본 경로를 수동으로 제거하십시오. 현재 구성된 방식에서는 첫 번째 인터페이스가 어떤 이유로 다운되면 모든 트래픽이 해당 인터페이스를 사용합니다.

출력에는 10.136.80.66DHCP를 통해 하나가 추가되었습니다. 왜 추가되었는지는 모르겠지만 인프라에 어떤 이유로 필요할 가능성이 높습니다.

시스템 구성 방법(네트워크 관리자? /etc/network/interfaces) 에 따라 이 설정을 자동화하는 다양한 방법이 있습니다.

주석에 제안된 대로 태그가 지정된 패킷을 사용하는 것은 iptables어리석은 생각입니다. 라우팅은 태그를 설정하지 않고 직접 작동합니다. 이것이 바로 라우팅의 목적입니다.

for /24대신 하나의 답변에서 제안된 넷마스크를 사용하면 여러 대상 주소(실제로는 256)로 라우팅되므로 그렇게 하지 마십시오./32A.B.C.D

답변2

enp0s20f0u1인터페이스를 사용하여 SSH를 통해 하나의 IP에만 액세스 하고 싶습니다 . 즉, ABCD(외부/인터넷 IP)에 연결된 모든 것은 이 인터페이스를 거쳐야 한다는 뜻입니다. 다른 사람은 없습니다.

enp0s20f0u1이것은 간단해 보입니다. 트래픽을 특정 인터페이스 로 라우팅하려는 경우 , 이것이 바로 라우팅 테이블이 수행하는 작업입니다.

ip route A.B.C.D/32 192.168.42.xx

xx사용하려는 다음 홉 IP 주소의 마지막 옥텟은 어디에 있습니까?

관련 정보