모든 기본 게이트웨이를 제거하는 방법


13

사용자 정의 빌드 Linux 시스템을 실행 중이므로 모든 Linux 명령을 사용할 수있는 것은 아닙니다 .
네트워크 관련 명령을 실행하므로 명령을 실행하기 직전에 기본 게이트웨이설정 한 다음 바로 해당 게이트웨이를 제거해야합니다.

그렇게하려면 모든 명령을 한 줄로 실행하십시오.

/sbin/route add default gw 10.10.10.10;my command;/sbin/route del default gw 10.10.10.10;

문제는 어떤 이유로 한 번 같은 컴퓨터에서 2 개의 기본 게이트웨이를 발견했기 때문에 테스트를 실행하기 전에 기본 게이트웨이를 설정해도 여전히 엉망이되어 테스트를 실행할 수 없기 때문에 모든 명령이 실패했습니다.

하나의 명령으로 모든 기본 게이트웨이제거 하는 방법이 있습니까? 나는 많은 양의 머신을 가지고 있으며 모든 머신에 스크립트를 설치하는 것은 실용적이지 않습니다. 다음과 같은 간단한 명령이 필요합니다 .

/sbin/route del all default;set my default gw;mycommand;/sbin/route del all default;

지금까지 내가 찾은 것은 기본 게이트웨이 를 제거하는 명령 이지만 전부 /sbin/route del default작동하지는 않습니다.

/sbin/route help는 다음을 표시합니다

/sbin/route --help

Usage: route [{add|del|delete}]

Edit the kernel's routing tables

Options:
        -n      Don't resolve names
        -e      Display other/more information
        -A inet Select address family

답변:


17

ip대신에 를 사용 route하면 간단하게 실행할 수 있습니다.

ip route del 0/0

나는 그것이 모든 기본 경로를 잡는다고 생각합니다.


감사하지만 여전히 하나의 기본 게이트웨이 만 제거합니다.
Muhammad Gelbana

4
그런 다음 첫 번째 제거가 모든 경로를 제거한다고 가정하지 않고 모든 기본 경로를 반복하여 제거해야합니다. 코드가 어떻게 든 깨져서 하나 이상의 기본 경로를 추가하는 것처럼 들립니다. 이것은 정상적인 상황이 아닙니다.
jsbillings

나는 내 코드가 어느 시점에서 깨지는 것에 동의하지만 내가 가지고 있지 않은 많은 시간을 낭비하는 대신 GW를 수정하여 신속하게 해결할 수있을 것입니다. 도와 주셔서 정말로 고맙습니다.
Muhammad Gelbana

이것은 현대 리눅스 전용입니다.
jordanm


2

코드가 여러 개의 기본 게이트웨이로 중단되면 장치 당 여러 개의 IP 주소를 찾아야합니다.

이미받은 것처럼 여기에 대한 대답은 또 다른 방법은 당신이해야 같다 결코 당신이 / 실행 스크립트를 테스트 할 이유만으로 시스템의 구성을 변경하지 않습니다. 대신 네트워크 네임 스페이스를 사용하는 것은 어떻습니까. NS (네임 스페이스)에 가상 장치를 추가하는 방법에 대한 간단한 소개는 http://code.google.com/p/coreemu/wiki/Namespaces 를 참조 하십시오 .

test라는 네임 스페이스를 만들고이 네임 스페이스에서 명령을 실행하려면 다음을 실행하십시오.

ip netns add test
ip netns exec test COMMAND

여기서 COMMAND는 예를 들어 쉘 또는 서버 스크립트 일 수 있습니다.


2

모든 대답은 훌륭하지만 다른 접근 방식을 사용 하여이 문제를 해결했습니다. 명령을 사용하여 하나의 기본 게이트웨이 만 추가했지만 이미있는 경우 실패합니다. 따라서 결국 명령 끝에 잘못된 게이트웨이를 제거하십시오. 이것은 두 번째 isa에서 작동해야합니다.

ip route add default via my-gateway ip route del default

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.