모든 네트워크 트래픽이 기본 게이트웨이를 통과하도록 강제

모든 네트워크 트래픽이 기본 게이트웨이를 통과하도록 강제

컴퓨터가 있고 모든 트래픽이 기본 게이트웨이를 통과하도록 강제하고 싶습니다. 로컬 네트워크의 트래픽도 마찬가지입니다.

해당 인터페이스에 대해 자동 생성된 경로를 제거하여 작동하게 했지만 이것이 네트워크 스크립트를 통해 RHEL/Centos에서 이 작업을 영구적으로 수행하는 방법입니까?

기본 라우팅 테이블은 다음과 같습니다.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

하지만 네트워크를 다시 시작한 이후에 이루어지길 원합니다.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

답변1

최소한 게이트웨이에 대한 경로는 직접적이어야 합니다.

Kernel IP routing table
Destination     Gateway         Genmask           Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0           UG    0      0        0 eth0
192.168.1.1     0.0.0.0         255.255.255.255   U     0      0        0 eth0

/24 = 255.255.255.0가장 좋은 방법은 로컬 네트워크의 넷마스크(from to) 를 수정 /32 = 255.255.255.0하고 네트워크 주소를 "192.168.1.1"로 설정하는 것입니다. 그러면 모든 트래픽이 게이트웨이를 통과해야 합니다.

답변2

네트워크 스크립트를 통해 원하는 경로를 제거할 수 있는 방법은 없는 것 같습니다. 나는 이것이 매우 일반적인 사용 사례는 아니라고 생각하지만 실제로는 동일한 네트워크에 있는 서버가 서로 통신할 수 있는 것을 원하지 않습니다.

하지만 네트워크가 초기화된 후에 실행되는 스크립트를 찾았습니다.

이 스크립트는 /etc/sysconfig/network-scripts/ifup-post존재하는 경우 마지막에 호출됩니다./sbin/ifup-local

그래서 다음 내용으로 하나를 만들었습니다.

#!/bin/bash
ip route delete 192.168.1.0/24

네트워크를 다시 시작한 후에는 이 로컬 네트워크 경로가 없었습니다.

답변3

rhel/centos에서 변경 사항을 유지하려면 /etc/sysconfig/static-routes키워드로 시작하는 줄 any과 그 뒤에 제공한 인수가 있는 파일을 생성하세요 route add.

파일에서 /etc/sysconfig/network-scripts/ifcfg-<interface>한 줄을 바꾸거나 추가합니다 DEFROUTE="no".

관련 정보