시스템 경로 표를 어떻게 관리 합 니까?
1. 경로 원리
그림 에서 알 수 있 듯 이 시스템 경로 표 의 세 가지 실체 가 있다.
routed
route
netstat
명령 netstat
명령 은 경로 정보 만 읽 을 수 있 고 시스템 경로 표를 직접 조작 할 수 없다.루트 테이블 정 보 를 추가 삭제 하면 루트 수호 프로그램
routed
과 루트 명령 route
에서 만 제공 할 수 있 습 니 다.둘 의 차 이 는:데 몬
routed
은 동적 경로 관리 기능 을 제공 합 니 다. 즉, 실제 네트워크 상황 을 통 해 동적 경로 정 보 를 조작 합 니 다.경로 명령
route
은 시스템 관리자 가 정적 경로 정 보 를 수정 할 수 있 는 인 터 페 이 스 를 제공 합 니 다.다음은
linux
시스템 과 mac
시스템 에 대해 명령 비교 소 개 를 한다.2 루트 테이블 조회
2.1 Linux
# netstat
$: netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.16.15.253 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
...
# ip route
$: ip route list
default via 172.16.15.253 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002
172.16.0.0/20 dev eth0 proto kernel scope link src 172.16.5.102
...
ip
명령 은 매우 강력 한 네트워크 관리 명령 으로 경로 표 만 조작 하 는 것 이 아니다.더 많은 기능 은 man ip
또는 tldr ip
을 참조 하 시기 바 랍 니 다.2.2 MacOS
$: netstat -rn
이 시스템 은
ip
명령 을 지원 하지 않 습 니 다.3 루트 테이블 조작
3.1 Linux
# 格式: ip route { add | del | change | append | replace } ROUTE
# add
$: ip route add 192.168.0.0/24 via 172.16.15.253 dev eth0
# del
$: ip route del 192.168.0.0/24 via 172.16.15.253 dev eth0
# get 指定目的IP的路由信息
$: ip route get 172.18.0.10
172.18.0.10 dev br-6e39d6696d98 src 172.18.0.1
cache
3.2 MacOS
ip
명령 을 지원 하지 않 고 독립 적 인 route
명령 을 제공 합 니 다.더 많은 도움말 참조 man route
# add
$: sudo route add -net 192.168.0.0/24 192.168.255.9
# del
$: sudo route del -net 192.168.0.0/24 192.168.255.9
# get 指定目的IP的路由信息, 支持域名查询
$: route get www.google.com
route to: 74.125.24.105
destination: default
mask: 128.0.0.0
gateway: 192.168.255.5
interface: utun1
flags:
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 0
4 루트 규칙
우리 가 흔히 말 하 는 시스템 경로 표 외 에 시스템 에는 경로 규칙
route rule
의 개념 도 있다.IP Rule 서브 명령 은 주로 ip 을 관리 하 는 경로 규칙 을 제어 하 는 데 사 용 됩 니 다.이른바
rule
은 더욱 table
처럼 보인다.이 규칙 은 주로 루트 테이블 [IP Route Table] 을 관리 하고 제어 합 니 다.즉, 경로 규칙 이란 경로 표 이다.
기본 적 인 상황 에서 시스템 에 어떤 경로 가 있 는 지 먼저 살 펴 보 자.
$: ip rule [list]
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
기본 적 인 상황 에서 시스템 은
local
, main
, default
세 장의 경로 표를 제공 했다.이 세 장의 경로 표 의 구체 적 인 경로 정 보 를 살 펴 보 자.
local
경로 표 는 주로 로 컬 을 기록 했다.$: ip route list table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 172.17.0.0 dev docker0 proto kernel scope link src 172.17.0.1
...
main
경로 표,$: ip route list table main
default via 192.168.0.253 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
...
ip route
의 출력 과 비교 해 보면 ip route
명령 은 기본 출력 main
경로 표 정보 임 을 알 수 있다.다시
default
루트 표를 보면 기본적으로 이 시 계 는 비어 있 음 을 알 수 있다.ip rule
하위 명령 은 루트 표를 관리 하 는 규칙 으로서 어떤 구체 적 인 의미 가 있 습 니까?구체 적 인 경로 표 의 경로 정 보 는 어떻게 경로 가 있 습 니까?다시 한 번
ip rule list
의 수출 을 보면 이 세 장 路由表
을 발견 하기 어렵 지 않 고 路由规则
이 라 고도 부른다.다만 路由规则
은 路由表
의 기초 위 에서 优先级
의 개념 을 증가 시 켰 다.优先级
구체 적 路由表
조 의 현재 숫자 에서 나 올 수 있다.숫자 가 낮 을 수록 우선 순위 가 높다.4.1 사용자 정의 경로 규칙
이 규칙 에 따라 우 리 는 자신의
路由规则
를 증가 시 킬 수 있다. 각자 의 요구 에 따라 우선 순위 와 구체 적 인 경로 표를 설정 할 수 있다.실제 작업
ip rule
을 할 때 우 리 는 패 킷 을 태그 처리 하고 해당 하 는 표 시 를 통 해 해당 하 는 경로 표를 설정 합 니 다.4.1.1 패 킷 에 표 시 를 한다.
예 를 들 어 저 희 는 기계 에 더 블 네트워크 카드, eth 0 과 eth 1 이 있 습 니 다. 저 희 는 모든 서비스 프로 세 스 가 보 낸 패 킷 에 대해 구체 적 인 서비스 와 일치 하 는 포트 번 호 를 표시 합 니 다. 다음 과 같은 예 입 니 다.
모든 원본 포트 가 8080 인 데이터 출력 패 키 지 를 태그 처리 하고 태그 2 를 설정 합 니 다.
$: iptables -t mangle -A OUTPUT -p tcp --sport 8080 -j MARK --set-mark 2
4.1.2 표 시 된 패 킷 에 대한 사용자 정의 경로
패 킷 에 표시 가 있 는 이상 태그 에 따라 경로 규칙 을 설정 할 수 있 습 니 다.위의 예 와 같이 우 리 는 먼저 경로 규칙 을 추가 합 니 다.
# 标记2的数据包按照2号路由规则表路由
$: ip rule add priority 10000 fwmark 2 table 2
2 번 루트 규칙 표 에 구체 적 인 루트 정 보 를 추가 합 니 다.
//取 eth1 的默认网关地址
$: gateway=`netstat -rn | grep eth1 | grep H | awk '{print $2}'`
// 添加一条默认路由,使用该规则的包,默认通过网卡eth1进行路由
$: ip route add default via $gateway dev eth1 table 2
4.2 경로 규칙 정보 보기
$: ip route list table 2
더 많은 글 은 개인 BLOG: GitDiG. com 을 직접 방문 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.