|
|
楼主 |
发表于 2022-7-29 17:17:49
|
显示全部楼层
通过 route 命令查看 Linux 内核的路由表:
4 Q: h) z3 a& E5 i3 [
; S8 [& T( o5 H: I4 i7 R% o& ?[root@VM_139_74_centos ~]# route
7 w% v- }1 A; X& ]Kernel IP routing table
. f" n, `" \' ]. c9 WDestination Gateway Genmask Flags Metric Ref Use Iface
$ c. I ^; o( m' Kdefault gateway 0.0.0.0 UG 0 0 0 eth0$ T8 U0 F- l! [$ h# d; B- y
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth00 u6 | T& A% ?! ?7 t/ w
10.139.128.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0+ p0 C1 }1 N0 x2 H c
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth03 a* m# C% O! W' j
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
3 n( L2 k- L; o" P' C; ]% M172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-0ab63c131848, D% I4 W2 b9 c, c# S& ?; O U
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-bccbfb788da09 `/ c) D) S- \9 X3 N
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-7485db25f9585 L f1 e! g! l. ]
[root@VM_139_74_centos ~]# route -n
8 ^1 K9 ?% `# |Kernel IP routing table
+ B" K: `! ? BDestination Gateway Genmask Flags Metric Ref Use Iface
0 ~3 ]8 F0 g" _3 Q$ I0.0.0.0 10.139.128.1 0.0.0.0 UG 0 0 0 eth0+ }2 o0 k5 y2 {$ `. C
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
$ R/ d; w9 U6 H; _( `/ G4 q10.139.128.0 0.0.0.0 255.255.224.0 U 0 0 0 eth08 f9 ^* z+ h) P( @+ h: x, |% y# k
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0 a5 p& \8 y. P K A172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0) q- p& V* _" R0 L
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-0ab63c1318487 j) @) ]( j& [% ~' g! C
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-bccbfb788da0
) ~* f+ L) r9 ]5 z( f" h# ^172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-7485db25f958# O& r. n B% W- G$ H+ h
各列字段说明:
+ n& D( k7 f! ^; O) ?) N
r8 v/ ~6 W9 A1 o% E2 o列 含义' g; O& ]2 f$ G `, D- R }0 w
Destination 目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关(这里是 10.139.128.1)
/ R( w4 p: q$ F) b! c* l. O: |( ^' MGateway 网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关
5 S. o: i$ V4 D8 \+ d* [) A ^Genmask Destination 字段的网络掩码,Destination 是主机时需要设置为 255.255.255.255,是默认路由时会设置为 0.0.0.0. s, @: f) q+ c7 r% R+ n% g1 t
Flags 标记,含义参考表格后面的解释
! P& M& d# m# S _Metric 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在Linux内核中使用。)& _: S& l* N0 d2 w
Ref 路由项引用次数 (不在Linux内核中使用。)
; d9 a& {! Q" |" h7 SUse 此路由项被路由软件查找的次数
- J6 b+ G& g F) c1 ~0 hIface 网卡名字,例如 eth0; N0 i; A: ^2 {
Flags 含义:
) E1 z3 r; M; o7 @ O8 V$ B5 G4 D
2 j+ n$ d- d" ]% h! z7 F2 s& [U 路由是活动的
3 C) j5 {* r7 e: u( r1 N: l, iH 目标是个主机
$ P+ j4 o# \" Q* U" ^7 ?3 TG 需要经过网关2 S6 A. Y9 o: C( R
R 恢复动态路由产生的表项
* g5 G% [* N& J% R1 eD 由路由的后台程序动态地安装
: W5 B+ g) |% m* d: OM 由路由的后台程序修改1 w8 x& A4 T$ Y$ Y% w
! 拒绝路由
, x3 j, @- I2 vLinux 内核的路由种类
/ D9 u) K, }0 Q* X* k3 D8 H a主机路由) _- [0 M y) }+ s+ G
路由表中指向单个 IP 地址或主机名的路由记录,其 Flags 字段为 H。下面示例中,对于 10.0.0.10 这个主机,通过网关 10.139.128.1 网关路由:' T$ y" f+ s; A# m/ ~4 V6 F; m
, E u+ ?/ j8 n0 Q |
[root@VM_139_74_centos ~]# route -n n: U, F6 x6 {" z: u
Kernel IP routing table
3 l, J. J% p6 pDestination Gateway Genmask Flags Metric Ref Use Iface* X! _" b5 c5 m/ a" m* |8 Z# L
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
* ^2 l( {& ?3 y3 b...0 [ s: |( G7 Y! s0 Y! E) d
网络路由0 b5 N% @1 F8 g
主机可以到达的网络。下面示例中,对于 10.0.0.0/24 这个网络,通过网关 10.139.128.1 网关路由:
7 H: z. Q: A7 U, g, L% F1 K$ T- K! E; Z+ P" p7 ]( @5 v, L
[root@VM_139_74_centos ~]# route -n
. U2 q% P, ~! m" M5 PKernel IP routing table
5 C4 A; ^$ M" d6 QDestination Gateway Genmask Flags Metric Ref Use Iface" i: W% J& C8 ?% `
10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth0' T" `$ ]" X2 ?
默认路由
& ?, o& h8 s* `当目标主机的 IP 地址或网络不在路由表中时,数据包就被发送到默认路由(默认网关)上。默认路由的 Destination 是 default 或 0.0.0.0。6 [! h! I; [, F6 S# J
, S& y" ?7 W0 C# S[root@VM_139_74_centos ~]# route
z* q& ~, [: T' o+ \/ c! [Kernel IP routing table
* _1 Z( }9 a8 r$ e' NDestination Gateway Genmask Flags Metric Ref Use Iface
W; ~( X% e# u9 d- W q. O; K: |default gateway 0.0.0.0 UG 0 0 0 eth0
9 W7 K" ]* m7 uroute 命令
7 Y5 F1 w. x' D) O6 a( Groute 命令可以显示或设置 Linux 内核中的路由表,主要是静态路由。0 F. i5 b$ t% [7 x0 z. }
" Q! ]8 F. q) i" S对于局域网中的 Linux 主机,要想访问 Internet,需要将局域网的网关 IP 地址设置为这个主机的默认路由。在命令行中通过 route 命令添加的路由在网卡重启或机器重启后失效。可以在 /etc/rc.local 中添加 route 命令来保证路由设置永久有效。2 B' d) Z n7 s6 \3 S1 ^( i
6 C2 z! ~5 j3 M0 Y% K5 U! }
选项:7 W% C9 z7 d: Y8 q
$ X& H/ [6 F+ H/ R6 I
-A:设置地址类型5 z$ K) a* D- C" A0 S0 k/ F F
-C:打印 Linux 内核的路由缓存- a# ^" S% @9 R7 {) s4 t" z
-v:显示详细信息
" [$ S8 {6 u2 A. l* E-n:不执行 DNS 反向查找,直接显示数字形式的 IP 地址
' D' |* h2 F* d |-e:netstat 格式显示路由表* R* L6 |, `7 S( S$ k6 u
-net:到一个网络的路由表
3 K4 v: P( A- M-host:到一个主机的路由表
2 M1 L* ^* m7 X+ l8 B! [. J# c5 K4 b, X. K参数:. {, ]2 Y0 r# p9 O+ J# u; i8 @
6 W2 O8 R. P, r! d. b m
add:增加路由记录
' ~; M$ ?- K+ q4 o/ Pdel:删除路由记录
! V; b5 o3 f5 h1 @, Xtarget:目的网络或目的主机' c$ o9 n( h& D. C+ ~1 V; B7 _
gw:设置默认网关
; R0 g, Q+ Y- u$ D+ _% u4 Nmss:设置TCP的最大区块长度(MSS),单位MB
' o, C2 Q2 m: zwindow:指定通过路由表的TCP连接的TCP窗口大小 R4 K0 Y. @4 I- ?6 K9 O3 ]/ x
dev:路由记录所表示的网络接口1 K& i( r; K* U( H8 s4 ~, e4 {6 g
添加路由 add
. B1 b$ v# q) \* k: o6 y( ^, |可以添加一条可用路由,或添加一条要屏蔽的路由。" R8 ~- J1 Y; v7 S' W
3 f8 W: n, o. h9 d添加路由
& y- g9 W7 P+ n添加主机路由
6 x/ b- O- H: n添加主机路由时,需要指定网络 ID 和主机 ID,此时需要设置 netmask 255.255.255.255:6 r" y% Z: X. ^- d J9 t
% m. t1 M, _: X8 E# V. H) e[root@VM_139_74_centos ~]# route add -net 10.0.0.10 netmask 255.255.255.255 gw 10.139.128.1 dev eth0
. u2 n* k6 s4 k0 ]7 d[root@VM_139_74_centos ~]# route -n# L2 H% s8 E. e# U; Y. P( @
Kernel IP routing table
* w/ p/ r9 \2 J& sDestination Gateway Genmask Flags Metric Ref Use Iface h# R" D7 Y; k x1 _" c( S
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0* G- X1 @3 M$ c% w4 q. |6 n5 I
...6 ]# s, _) l1 k( s
添加网络路由
! u8 B0 H: ^9 K* O3 T2 b- I添加网络路由时,只需指定网络 ID,通过 netmask 设置掩码长度:
/ @# V6 q1 ?. z. u9 v
3 ~# r: Y, Y( R7 r2 m S- c' G[root@VM_139_74_centos ~]# route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.139.128.1 dev eth09 S! ?- t: N2 _0 E- r& |
[root@VM_139_74_centos ~]# route -n
, I& N2 B) [2 D, {4 |8 uKernel IP routing table
' t( x! b& Q( D# _/ iDestination Gateway Genmask Flags Metric Ref Use Iface
+ C1 @, H3 D* f4 e/ j10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth04 b; b% ~5 ?$ \' L# G
...
" ~2 Z3 [ c% Q& P* z1 c/ |添加添加同一个局域网的主机( R# d4 }; A4 u5 H% a$ {, }2 r( a$ \
不指定 gw 选项时,添加的路由记录不使用网关:
) E- z1 C$ o O) r3 @0 ^ K& l8 H* t) T5 o- @2 g
[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth09 Y* c3 O$ C% A
[root@VM_139_74_centos ~]# route -n! q2 K% P! n6 q$ W$ D, j
Kernel IP routing table$ M+ o6 p1 r' o1 P
Destination Gateway Genmask Flags Metric Ref Use Iface
4 Q+ l+ F1 k' L5 ~6 a. t" @224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth05 J8 H) X r: h- z6 j" k4 @
...
' [: G; d; H% w, y+ |屏蔽路由
) n2 N) B; s+ A* r+ C7 z+ o[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
; Q5 l' d O3 f" R$ _' f6 \- y[root@VM_139_74_centos ~]# route -n( a& ^0 H/ m& b/ F) T' [2 e
Kernel IP routing table
' e2 T- \' O% n- o6 I9 r- Q( IDestination Gateway Genmask Flags Metric Ref Use Iface
' r# `) l1 O* H, |6 ~+ r3 _& K7 M224.0.0.0 - 240.0.0.0 ! 0 - 0 -6 o( I& H4 ]' g2 ?1 Z, G
...
+ s; |% q$ K1 N$ b. ]* V- b% ?删除路由记录
5 A; t g' G: R" s7 m跟添加路由类似,可以删除一条可用路由,或删除一条屏蔽的路由。
( d, Y- L. i- b- B C0 p/ [: m3 V9 ], ~$ K2 W
删除可用路由: n6 d- t9 j4 Q$ d5 N8 H+ W6 C3 U+ O
route del -net 224.0.0.0 netmask 240.0.0.0! y- G) M& Z. I( f' N. Q
删除屏蔽的路由
9 }, F: E- H$ o* [+ {( l- proute del -net 224.0.0.0 netmask 240.0.0.0 reject
0 k# b& [ X* O- u删除和添加设置默认网关
' |8 }* G# a8 M5 Z P: D" W/ v" |添加或删除默认网关时,Linux 会自动检查网关的可用性:: P/ w* Q r( c" y
% A( {- N* ?! I. U[root@VM_139_74_centos ~]# route add default gw 192.168.1.1
& X: X7 \7 \; e) G+ }8 @SIOCADDRT: Network is unreachable, m; C% X5 d9 C0 T9 a% C/ O
[root@VM_139_74_centos ~]# route del default gw 192.168.1.1
- k( T: @' A) p' c1 T* Q- RSIOCDELRT: No such process |
|