컴퓨터가 있고 모든 트래픽이 기본 게이트웨이를 통과하도록 강제하고 싶습니다. 로컬 네트워크의 트래픽도 마찬가지입니다.
해당 인터페이스에 대해 자동 생성된 경로를 제거하여 작동하게 했지만 이것이 네트워크 스크립트를 통해 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"
.