|
|
楼主 |
发表于 2022-7-29 17:17:49
|
显示全部楼层
通过 route 命令查看 Linux 内核的路由表:
5 U. b" ^& y; i8 ?; o& j/ j
( n# ^7 [) h" V V; A[root@VM_139_74_centos ~]# route
$ c7 M* h9 L+ } }# sKernel IP routing table0 o/ K$ D4 V6 V& B; @# F1 c, E
Destination Gateway Genmask Flags Metric Ref Use Iface2 o) E/ l2 K2 H! _; V* ?
default gateway 0.0.0.0 UG 0 0 0 eth0
7 y* f7 g1 C; V4 P& q10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0 C& k6 Y; g6 g# a
10.139.128.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0, O! _; x6 h6 q& S
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth03 _: R) j4 b- j
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker01 w" x) f7 o4 ^. h& _
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-0ab63c131848
( J5 [$ L5 `9 B4 {/ u- T/ t172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-bccbfb788da0
& M0 V$ ?2 B& g: x/ e& f172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-7485db25f9581 w5 i# B6 d3 o1 r
[root@VM_139_74_centos ~]# route -n
- k& {4 c6 e6 K7 m( }4 l3 wKernel IP routing table+ g2 G$ R) g3 z* E- M
Destination Gateway Genmask Flags Metric Ref Use Iface+ b3 @) ]! @& v4 s7 _% T
0.0.0.0 10.139.128.1 0.0.0.0 UG 0 0 0 eth0
* p9 j# r+ U/ ^( _5 L10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
+ }2 B. b6 x8 y9 Y10.139.128.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0
3 q K. j$ u+ r( |/ ]# M# U169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
" p' f6 W9 x3 Y3 W3 y' ]7 E172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
+ G) L B+ Q! U2 K! O9 O( a172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-0ab63c131848, o% \" p4 y: V5 F' V7 c
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-bccbfb788da0
( U/ m1 W# C# D% n6 b8 D( j172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-7485db25f9587 ^3 a" `* G1 \/ [; A
各列字段说明:
: M. c" Y0 T& n# W
( T0 `$ N% o3 M8 P5 G列 含义' z0 I7 O6 p% q8 z" y# s
Destination 目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关(这里是 10.139.128.1). _4 d$ j/ Z2 _+ b7 _
Gateway 网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关2 G- l2 C% A! A2 c8 Y
Genmask Destination 字段的网络掩码,Destination 是主机时需要设置为 255.255.255.255,是默认路由时会设置为 0.0.0.0
0 J! K. A& C8 P0 }1 IFlags 标记,含义参考表格后面的解释, Q, D& m% t* y6 `7 l' k
Metric 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在Linux内核中使用。)0 P8 ~; }! d/ |8 h4 i
Ref 路由项引用次数 (不在Linux内核中使用。)
9 R1 J! {8 ~6 q5 ]& O& uUse 此路由项被路由软件查找的次数
; h: l. _4 I+ cIface 网卡名字,例如 eth0: x* N7 _/ N5 K; X; n& U
Flags 含义:
; x' Q1 v/ v% H+ G$ C0 n7 E% ^! w. o
U 路由是活动的6 Y: |) T( U0 G7 O, E& Y0 N
H 目标是个主机
8 _5 V7 i$ M8 t. r$ g0 iG 需要经过网关2 i! U% `8 w9 v2 H/ i
R 恢复动态路由产生的表项; J5 q: ^( ~6 S4 M1 ^
D 由路由的后台程序动态地安装, }: x# l) I [! n5 E: a
M 由路由的后台程序修改9 i) o: ~# U/ e0 R5 m& ~
! 拒绝路由
" _& _' j& _: w" W2 @; |# `, oLinux 内核的路由种类) ~* `3 q( N6 Y% ?0 ?
主机路由8 x6 q4 {2 k+ S9 Q# a
路由表中指向单个 IP 地址或主机名的路由记录,其 Flags 字段为 H。下面示例中,对于 10.0.0.10 这个主机,通过网关 10.139.128.1 网关路由:
3 P$ R d( A/ p: l( E
4 N. j: n; a' G9 ~( f* O8 j[root@VM_139_74_centos ~]# route -n
: e P' i7 P6 H eKernel IP routing table
, a) P' g$ E; c5 P* ADestination Gateway Genmask Flags Metric Ref Use Iface
9 o, p0 ?" U7 l T7 E& c10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
& f+ G4 W% q5 U- G...
0 {% _$ j, \ F% @( j网络路由
' \+ {+ u/ R1 V8 a2 A主机可以到达的网络。下面示例中,对于 10.0.0.0/24 这个网络,通过网关 10.139.128.1 网关路由:
1 O% o2 W6 ~. p4 @) ^& c
( }' }( P3 N# L: `3 E& W/ f* e[root@VM_139_74_centos ~]# route -n$ h1 q& f+ T% U) G; o
Kernel IP routing table
5 T1 n& ?1 j5 X6 T- SDestination Gateway Genmask Flags Metric Ref Use Iface
2 O% l7 {" X X- N0 h10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth0- \6 o" f- r+ d4 K" ]4 G5 f
默认路由* ]5 E6 R% o5 f: @
当目标主机的 IP 地址或网络不在路由表中时,数据包就被发送到默认路由(默认网关)上。默认路由的 Destination 是 default 或 0.0.0.0。. Z; a# \# K! ^
( k. }7 Q% }) V4 _
[root@VM_139_74_centos ~]# route7 _2 v4 [6 R- P, @# ~: N) |
Kernel IP routing table
3 d K0 u- q2 p6 @- o. KDestination Gateway Genmask Flags Metric Ref Use Iface
+ r. |- S# C; j4 y2 Q( h# Vdefault gateway 0.0.0.0 UG 0 0 0 eth01 {5 K: P$ k9 y y" F8 f6 E
route 命令8 ?( o0 o- ?4 ?! S8 u- e
route 命令可以显示或设置 Linux 内核中的路由表,主要是静态路由。2 s+ V6 p, Z f- [5 E7 ?& A- a1 |
' g- [, Q* X' l& }* e
对于局域网中的 Linux 主机,要想访问 Internet,需要将局域网的网关 IP 地址设置为这个主机的默认路由。在命令行中通过 route 命令添加的路由在网卡重启或机器重启后失效。可以在 /etc/rc.local 中添加 route 命令来保证路由设置永久有效。. H5 v* P" @! h4 n
9 m4 j/ N4 Q6 x* @; }2 Y
选项:
8 E6 P! Y8 e# M2 H& h0 k( S1 l" V T; t. l' `7 E) D
-A:设置地址类型$ x" V, A) i) I! Z5 }
-C:打印 Linux 内核的路由缓存* [( |( W/ L; W+ U1 ~
-v:显示详细信息
. o# C1 }: f7 q+ T% [0 g/ i" c-n:不执行 DNS 反向查找,直接显示数字形式的 IP 地址
9 Q J O* H1 O-e:netstat 格式显示路由表1 L' I0 c P6 z0 H7 k
-net:到一个网络的路由表8 m5 n) n" K* O O B' Y, w
-host:到一个主机的路由表
) u+ [. J5 O$ N参数:
& I% |- X9 U6 d( q t
: H- a: R, b/ e. J: d; }add:增加路由记录' w9 Z/ @3 y" E* o( X# m
del:删除路由记录
8 X; R. }4 F) l% f5 \' Z& ttarget:目的网络或目的主机
- E$ p7 U( g4 i, zgw:设置默认网关" w& {2 ^- {9 ?- W
mss:设置TCP的最大区块长度(MSS),单位MB! N! C8 I, v2 S+ T4 e) j
window:指定通过路由表的TCP连接的TCP窗口大小/ b: |: e7 ~2 x9 }. n; W
dev:路由记录所表示的网络接口
5 G0 _$ l" B, A" M2 n, H添加路由 add
2 R k+ V6 t. Q Z/ ?* ?+ }可以添加一条可用路由,或添加一条要屏蔽的路由。* i4 ~$ Q' m% I
4 m5 a0 I9 | }0 @6 Q2 M# u添加路由# e4 Y: C4 @; D; U4 ?, J
添加主机路由, O% a6 I. k; m) h
添加主机路由时,需要指定网络 ID 和主机 ID,此时需要设置 netmask 255.255.255.255:
' ^0 q/ c$ \9 y' U4 c) @+ ?2 @ `. B6 @% t+ I, x' W. c$ j7 l. ]
[root@VM_139_74_centos ~]# route add -net 10.0.0.10 netmask 255.255.255.255 gw 10.139.128.1 dev eth03 K/ a% t6 D9 ^8 [( J
[root@VM_139_74_centos ~]# route -n
! o) \& r% U' S4 d/ r* lKernel IP routing table
; S: @* w0 @) |1 }, pDestination Gateway Genmask Flags Metric Ref Use Iface
. ?+ R; M4 v+ \! d! \10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
4 Y/ r4 v4 n( U, r3 T) ~, V...
, u) _- _9 O0 y9 l8 C2 ?添加网络路由
+ w1 i3 A' x0 u- }( I; c p9 ?添加网络路由时,只需指定网络 ID,通过 netmask 设置掩码长度:
. c& {8 v4 f0 a$ ?# N
8 Z S! c/ l7 F# H1 V6 O[root@VM_139_74_centos ~]# route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.139.128.1 dev eth0
- ]: a0 X$ m5 k% Z[root@VM_139_74_centos ~]# route -n1 L- |! _8 N: E$ k. b5 } V
Kernel IP routing table, s" Z$ m6 w0 d2 {3 W
Destination Gateway Genmask Flags Metric Ref Use Iface% r, J- b0 n) v1 [5 ?: u
10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth0
. F& j, a# m9 u...7 M3 ^7 h) T1 Y5 t, F* C5 U; R$ {
添加添加同一个局域网的主机2 t6 m) J+ o4 m/ Z# R/ ?
不指定 gw 选项时,添加的路由记录不使用网关:
5 C7 Y C/ q3 e4 F% h$ B- |! G$ a2 y1 q3 T% L, m2 [) c0 Z& ~
[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
9 ^# D, @& u! C. O[root@VM_139_74_centos ~]# route -n% a) w$ n7 g4 l
Kernel IP routing table
' m0 f. v J1 h! L! T' Z9 RDestination Gateway Genmask Flags Metric Ref Use Iface/ h5 M, H" _* d+ ~, I9 {
224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0. G" J. Y* {+ [) B9 E o+ ?& c
...& {# R. l ~& q# Y3 }, t( k
屏蔽路由
6 x% ?7 {) Z7 G7 P4 g; P1 R, P$ h3 N[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
, ?% r: t8 [7 x& Z9 p$ i9 U[root@VM_139_74_centos ~]# route -n
/ R7 l& L( x1 Q. jKernel IP routing table
+ T" _9 g- Q0 ] c/ ?; z4 UDestination Gateway Genmask Flags Metric Ref Use Iface
' a# D/ ~! D9 a# U' V/ E; x3 e. {6 i224.0.0.0 - 240.0.0.0 ! 0 - 0 -
3 \. E3 H/ O4 H* p+ [" v. `...$ T* N5 i- d5 h
删除路由记录
9 U# c5 G; g/ }' |- x跟添加路由类似,可以删除一条可用路由,或删除一条屏蔽的路由。
: h6 S$ k# h" t1 [* J
% x+ K) Y D F删除可用路由
& Z) H. V8 |, P7 ^# ]' `* A& F4 vroute del -net 224.0.0.0 netmask 240.0.0.0
9 {6 o6 Q0 w. z' M! K) b! S3 {删除屏蔽的路由
/ I$ l( }2 U' J* o8 Z" aroute del -net 224.0.0.0 netmask 240.0.0.0 reject
# Q2 o. A# M4 E' y. g, V) A删除和添加设置默认网关+ `. }' w. h* H5 w# l: [
添加或删除默认网关时,Linux 会自动检查网关的可用性:6 t. x. C- {7 _# D' M$ @# B4 {
; I3 p% f% o9 k" R, t# d[root@VM_139_74_centos ~]# route add default gw 192.168.1.1* d0 e# e. o8 r
SIOCADDRT: Network is unreachable* L. _4 [1 {- c4 G. z: K# J( j
[root@VM_139_74_centos ~]# route del default gw 192.168.1.1+ S7 O; k$ S* D* I
SIOCDELRT: No such process |
|