|
|
楼主 |
发表于 2022-7-29 17:17:49
|
显示全部楼层
通过 route 命令查看 Linux 内核的路由表:
/ i$ B! Y3 v0 G; }7 r ?; k% L7 X0 `5 N+ m u
[root@VM_139_74_centos ~]# route
$ p$ [7 I& f) z/ x) EKernel IP routing table
$ B5 a: N7 C9 K, Z L3 R' PDestination Gateway Genmask Flags Metric Ref Use Iface
8 c z( P$ J7 y( b% ?) ]! Rdefault gateway 0.0.0.0 UG 0 0 0 eth02 E4 w% L% u, K6 u2 F& z8 G; P
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0- o( X2 O! \# \" w9 M, }
10.139.128.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0
0 n* c) E2 J+ n. K* w2 Glink-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
7 }6 E0 f: `( Y7 F. @172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
$ i5 ]' W' |3 Z! T1 o5 Z& ]* o172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-0ab63c131848
! x$ F4 o8 D" R; `; f* Q/ i. A172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-bccbfb788da0# `5 N6 [* ^7 w% Q
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-7485db25f9580 F: y6 M8 K8 b1 Q, y" }% q
[root@VM_139_74_centos ~]# route -n
% v4 O0 i$ q* W+ w" DKernel IP routing table
: G! I( K3 Z, G" gDestination Gateway Genmask Flags Metric Ref Use Iface
( `) H' I- \7 _! l* `0.0.0.0 10.139.128.1 0.0.0.0 UG 0 0 0 eth0
* ~( r' d- c, i+ u% o& T" y% ~$ A10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
& O$ k! J w! |7 @' x4 ]' c10.139.128.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0
% K! i' B4 g0 {- ~( `0 T$ f! k169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
! H! b- m7 u; f% S; t2 T172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0" f K6 b. q; L& @/ W: `; X' Z6 _
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-0ab63c131848& u! h2 ^1 {& H5 n8 r7 c
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-bccbfb788da0$ i) c" P# y5 r3 p2 ~
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-7485db25f9582 @, g, v1 s4 t r
各列字段说明:. ~6 _3 u; i. D6 E% _
. p1 e$ D: a8 j# Q, Y列 含义
# V6 t# T- p% Z# x3 P' SDestination 目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关(这里是 10.139.128.1)
; c" ~4 a. r( a* _: y6 }$ SGateway 网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关! i% ] Z3 q$ S1 z( [) k
Genmask Destination 字段的网络掩码,Destination 是主机时需要设置为 255.255.255.255,是默认路由时会设置为 0.0.0.0" I2 r& U5 U( d$ b B" Q
Flags 标记,含义参考表格后面的解释
: B8 I* \8 W6 a" W: i& x3 y- b8 p: CMetric 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在Linux内核中使用。)" o, w" O! Y" z1 @( T% S# X# ~
Ref 路由项引用次数 (不在Linux内核中使用。)
2 H7 `# C9 j: iUse 此路由项被路由软件查找的次数
0 P8 v6 a7 b% `Iface 网卡名字,例如 eth0# j( i* Q! @; f
Flags 含义:
, f ^& o6 q* K6 G! L! m& h
( V' r, U6 p5 B6 l) {U 路由是活动的7 _+ c/ t" v2 v& F, T
H 目标是个主机6 q- u. H5 r8 x8 O+ C/ c8 l1 N
G 需要经过网关
6 w% @0 R s4 LR 恢复动态路由产生的表项: ?+ K: |! S* x& e& u
D 由路由的后台程序动态地安装( {) n8 j: E7 e% V1 ~" k0 H
M 由路由的后台程序修改
9 y; r( e0 s6 W0 |5 {+ `% w3 X! 拒绝路由
, m. i0 s: F7 ]7 T u2 }' U( SLinux 内核的路由种类" W" g' N- J6 ^
主机路由
8 g5 W1 P9 z% }4 W( s' g4 b路由表中指向单个 IP 地址或主机名的路由记录,其 Flags 字段为 H。下面示例中,对于 10.0.0.10 这个主机,通过网关 10.139.128.1 网关路由:
1 X3 ]& Y) e4 t% F0 \5 B! c. _* z: ~) r5 k s8 ^5 d" c
[root@VM_139_74_centos ~]# route -n
9 F3 Y z o* R% qKernel IP routing table
, U; @) q( Y) v$ D0 I# sDestination Gateway Genmask Flags Metric Ref Use Iface$ |, `* g$ b3 {/ g% j, W8 n
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth08 q; e- K4 z$ o$ M/ H& @! }
...
- n4 }3 r. S& y0 {3 \. f网络路由
) C" m7 A$ r7 i* ]0 F7 F" _. H5 f主机可以到达的网络。下面示例中,对于 10.0.0.0/24 这个网络,通过网关 10.139.128.1 网关路由:6 m/ i2 N7 Z; P" v$ y9 R
, Q& _% L3 o$ E4 }[root@VM_139_74_centos ~]# route -n
& U \1 p+ ~3 C) ~Kernel IP routing table
( \0 d" n' ^& cDestination Gateway Genmask Flags Metric Ref Use Iface
, o$ l# v* I6 P: M3 P10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth04 }7 k6 J, d4 ^5 C
默认路由 n' t# b0 w$ s- y
当目标主机的 IP 地址或网络不在路由表中时,数据包就被发送到默认路由(默认网关)上。默认路由的 Destination 是 default 或 0.0.0.0。# X1 x7 u- W- ]
' [2 v, [( F1 }; c[root@VM_139_74_centos ~]# route$ w' i# [$ h/ O0 \
Kernel IP routing table) ]3 g+ D4 g) M6 u
Destination Gateway Genmask Flags Metric Ref Use Iface$ C) e0 g u( Y9 e. }* N
default gateway 0.0.0.0 UG 0 0 0 eth0/ b( [: k* ~0 F; J8 X
route 命令9 e" V' `! L% a+ E6 F/ q
route 命令可以显示或设置 Linux 内核中的路由表,主要是静态路由。: W$ t2 x I2 H9 P' G8 U! G
5 s3 D2 k( H% h0 Y5 o5 @# `& I
对于局域网中的 Linux 主机,要想访问 Internet,需要将局域网的网关 IP 地址设置为这个主机的默认路由。在命令行中通过 route 命令添加的路由在网卡重启或机器重启后失效。可以在 /etc/rc.local 中添加 route 命令来保证路由设置永久有效。) H& G p6 I+ |1 u p
6 a q8 S# h1 J6 q, O
选项:; |, Y8 }: J Z7 g5 K
) I. A4 q) B! Z. I+ Z-A:设置地址类型; d* Y) }/ m$ p4 N7 e( d( p/ U
-C:打印 Linux 内核的路由缓存4 O3 a, s- m$ R9 ^- ?0 M8 \" K
-v:显示详细信息$ B, u- M7 R4 }' D, ^6 K
-n:不执行 DNS 反向查找,直接显示数字形式的 IP 地址
" J" m' a0 l/ t& a7 N$ ^- v-e:netstat 格式显示路由表- Q$ j, t0 i% F4 z9 E4 L! d- A
-net:到一个网络的路由表
* {( Y1 _/ f1 _-host:到一个主机的路由表, J% k9 W$ H" H- r
参数:
7 P) I! G$ D2 Y' j0 X3 @. r* [ J3 ^' w" p) ~% _
add:增加路由记录( Z, K, j6 P3 b( z
del:删除路由记录9 b; X* x' C% @1 D* F
target:目的网络或目的主机
8 W$ W5 X G' G7 Ogw:设置默认网关 T* h! g! m- t8 ]3 [5 m" f
mss:设置TCP的最大区块长度(MSS),单位MB
4 q% E+ g* Z1 U) ^; `window:指定通过路由表的TCP连接的TCP窗口大小. I8 [6 z3 u$ u2 g: H/ u- P A3 q( a
dev:路由记录所表示的网络接口
" j' D0 y( U/ n$ E% B" f添加路由 add
1 N$ f0 m3 f s ~6 a& @1 Q: _可以添加一条可用路由,或添加一条要屏蔽的路由。& [! U# C0 H, I
! m# C4 m3 ]0 h$ G$ Z- @" w
添加路由
- E: M" e t$ M; t/ l: J添加主机路由* i0 f) R* a8 x/ j& j" B
添加主机路由时,需要指定网络 ID 和主机 ID,此时需要设置 netmask 255.255.255.255:& x. w; w+ u8 d9 J% P2 u4 x
1 ^& b' Z5 T0 }% k[root@VM_139_74_centos ~]# route add -net 10.0.0.10 netmask 255.255.255.255 gw 10.139.128.1 dev eth03 Y4 |- s1 \8 y d/ c m$ y
[root@VM_139_74_centos ~]# route -n
+ T( N" } F" H E8 Q- n+ \7 p) @Kernel IP routing table* E0 ~( ~- R- X* M% ?/ [( U/ t
Destination Gateway Genmask Flags Metric Ref Use Iface l& Z! k) w( s5 M" P2 J; p1 r
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
& N' }# F' ^; _! A8 @9 T9 }# Q' d...% Y! G+ I8 M. h+ R. ~( L$ r* m J* _
添加网络路由
9 {) Y: z; _2 i$ \+ }添加网络路由时,只需指定网络 ID,通过 netmask 设置掩码长度:
: Y7 g8 U* c( Y3 l0 ~, Q3 q
6 |5 l( i7 R/ ^[root@VM_139_74_centos ~]# route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.139.128.1 dev eth0
\3 n2 K4 d. x3 K' Z. n[root@VM_139_74_centos ~]# route -n
9 P/ Y/ E8 a7 F$ a; O+ qKernel IP routing table5 U- X4 H, I- O1 L' g0 r( }5 @
Destination Gateway Genmask Flags Metric Ref Use Iface8 j4 J0 C1 N) t# Z( _7 K; }* z
10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth0
0 ]- t2 r3 P$ x. a* V...9 s! H1 V2 R" d; `3 J. |, @
添加添加同一个局域网的主机' L) Q) {4 q. n" T
不指定 gw 选项时,添加的路由记录不使用网关:
1 M6 ]* h$ [, r
/ j) ~+ u1 [# }2 F[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
- \0 C0 Q8 T% S6 Z[root@VM_139_74_centos ~]# route -n
: r" A1 k9 k4 k( R- C0 a0 @# JKernel IP routing table: U/ I9 C1 s! c |8 x
Destination Gateway Genmask Flags Metric Ref Use Iface
' W- L' x: I- ~+ @; K" @# D224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0
$ P: O) k9 M7 k q1 @, ^8 y..., E6 Z) s) G3 N8 i; \* s( @5 B
屏蔽路由
+ K+ q/ O1 r, \3 j8 r: h: [& [[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
) O( |3 L1 q( V) F[root@VM_139_74_centos ~]# route -n
" ?2 R+ d% s* B3 V1 R- ^Kernel IP routing table
5 M; Y& C1 _' W9 ^5 ~6 m6 XDestination Gateway Genmask Flags Metric Ref Use Iface5 w+ e" v. F0 Z! M3 F' y
224.0.0.0 - 240.0.0.0 ! 0 - 0 -2 Q! S) j+ A) e) Z) L; H% P8 c5 l1 f+ H
...7 J# D2 m6 j" Y' f" E
删除路由记录5 T0 F" n1 I. u) G
跟添加路由类似,可以删除一条可用路由,或删除一条屏蔽的路由。
. a- s( o/ T! g1 L7 L% o0 Z0 J. f+ z, V- \; Q+ N/ X$ X
删除可用路由
7 Z1 q7 X: @5 Q6 E, v9 s3 Zroute del -net 224.0.0.0 netmask 240.0.0.0
; t7 R$ n2 J3 w7 O4 d- u9 f* [5 l删除屏蔽的路由
* D2 ?8 I- [# Y; W- Iroute del -net 224.0.0.0 netmask 240.0.0.0 reject
- r! A8 Z( B0 ?7 {7 q/ ^删除和添加设置默认网关
) Y- c+ V+ _" X: U; n8 `- ?( H/ e添加或删除默认网关时,Linux 会自动检查网关的可用性:7 v- s$ t/ D8 O0 ]2 a. Z: E- _
) V6 L4 D i$ K6 R3 i6 g8 {" M: N( L
[root@VM_139_74_centos ~]# route add default gw 192.168.1.1
# N+ ?! Z. @# z4 _3 nSIOCADDRT: Network is unreachable }, Q9 ?" o4 W& E* i( s
[root@VM_139_74_centos ~]# route del default gw 192.168.1.1
; b. e, {- \: v/ j" ZSIOCDELRT: No such process |
|