网络结构如图,
Linux路由器这台
计算机标识为A,它与三个网段相连,192.168.1.0/24,10.0.0.0/8,172.16.0.0/16。
0 y& s* \ ~$ j, M8 p: i& j8 Z! n |/ f6 h0 D
% R5 t; z7 G; y! D! g8 }# j3 U; N" `2 W
/ T2 @& o- {' P$ J1 z. ?# R: S8 M/ J0 r4 f9 K5 L& D
{* O. c3 D: u7 H$ i2 @
/ w: B$ W1 X c. s. g A计算机必须拥有三块
网卡,分别与三个网段相连。
+ u7 \9 ?4 V; N 假设:
4 R' k8 Q" I. z" u2 V eth0与172.16.0.0相连,
/ g I& N$ [& h5 _
eth1与10.0.0.0相连,
# _/ B3 w f/ T0 l; B" B1 U
eth2与192.168.1.0相连。
1 M) a1 g& o$ f# P2 ` 首先来配置eth0。给这个网络接口分配地址172.16.1.1,运行下列命令:
; g7 \( a7 r( b% a[color=#FFFFFF']
) s, \: c# h& d* M; z
4 o8 T$ } t1 N& q' M #ifconfigeth0172.16.1.1netmask255.255.0.0
1 x! S4 f+ g- U( @1 d# A 为了使这个地址不再计算机重新启动后消失,
编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改为如下格式:
1 A& A* N8 v; w+ ], q: B
[color=#FFFFFF']
h0 n2 h" J( W* S2 T% X! Y- F3 e8 Y
& M" L( i: }9 y: u5 B) l# V/ C2 g+ o5 v DEVICE=eth0
9 ^/ f1 c3 M- f8 x ONBOOT=yes
3 @7 G& A$ G L6 w# @3 y. M
BROADCAST=172.16.255.255
" \3 m7 |3 Y" I6 L/ P! l9 G NETWORK=172.16.0.0
. [: q6 w' q8 k6 R3 S NETMASK=255.255.0.0
& E4 w( R0 S0 @: Q+ J; [
IPADDR=172.16.1.1
3 C" d! X1 q1 g$ R7 B 增加一条静态路由:
1 I& A( k M, G
#routeadd-net172.16.0.0netmask255.255.0.0
) m T) H& m5 e; f/ H5 h 这样
系统中就增加了一条静态路由:
2 K- t O8 N, I% G$ e6 v
#routeKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface
$ `: S8 ] |. Y% F* B# W
172.16.0.0*255.255.0.0U000eth0
; ^9 A7 k3 S* {2 X4 k. ?% g6 U
接下来,配置eth1,eth1与10.0.0.0网段相连,分配给它的地址是10.254.254.254,使用ifconfig命令为它配置参数:
! l4 r* F9 j: {) _% c. s #ifconfigeth110.254.254.254netmask255.0.0.0
0 F; c( m, G# c5 H: D
同样编辑/etc/sysconfig/network-scripts目录下的ifcfg-eth1文件,内容如下:
* _4 U7 B" r+ q4 M. \
DEVICE=eth1
& h k& Y, D- ^% N' _/ j: o( B ONBOOT=yes
5 g' g) K' M8 m- ?7 L; A
BROADCAST=10.255.255.255
; k2 d/ P8 L" b; _ NETWORK=10.0.0.0
. \; `5 g# B& a) c NETMASK=255.0.0.0
9 J+ d; q5 M' m! T0 g
IPADDR=10.254.254.254
1 I2 ?) N$ F0 f, |再增加一条静态路由:
% G/ n7 a6 V3 }' Z9 V
4 m f0 h/ \; @
#routeadd-net10.0.0.0netmask255.0.0.0
; B# }2 x! w3 }& x5 z) m3 b" w
, ]9 t/ X- s/ B0 D, z9 y+ q 网络中当前的路由表为
" p) V$ W. u6 T& j9 R* d. i0 |) h8 \/ _( Y6 w2 N/ f
#routeKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface
4 ~% q3 r, p8 b1 ^6 ^. U6 t: y
4 U* I" Z. z/ O- O2 H `
; v; x' v; @* @1 |0 R+ R
172.16.0.0*255.255.0.0U000eth0
6 Q$ N9 M7 c# i6 A
10.0.0.0*255.0.0.0U000eth1
& \: V) w* T5 |8 R
: ~& c$ z4 u0 f, \! l5 c* x4 t' ? 最后配置eth3,它连接192.168.1.0网段,分配的IP地址是192.168.1.254,执行下列命令:
, m* t3 N8 a" T' p7 \& q4 P5 N# D9 ?/ o
#ifconfigeth2192.168.1.254netmask255.255.255.0
' z# p0 u4 H# R1 A7 V
" h0 X( c/ E9 ]' x6 m
编辑/etc/sysconfig/network-scripts目录下的ifcfg-eth2文件,内容如下:
. m# o4 u4 ^: X( w& Z3 m8 Z5 H7 q. l/ |0 N' l
DEVICE=eth2
, G8 r0 n) L6 }
ONBOOT=yes
" a% C% y( G: x4 l9 L
BROADCAST=192.168.1.255
! S# V% L7 K: e* h! |
NETWORK=192.168.1.0
! x/ @5 H5 P, K9 Z0 Y; V& K1 ~ NETMASK=255.255.255.0
( U) p5 { t) S+ H' k; r IPADDR=192.168.1.254
4 j$ M3 X+ d" C& T& _( @; A
/ A: v4 Y' x; d 再增加一条静态路由:
; k/ @/ S2 b- \; X9 N4 U5 h0 F) v* V
! \/ C, l" Z* g# v& P' X5 `$ S #routeadd-net192.168.1.0netmask255.255.255.0
* o- C0 ?( N; ?0 }+ V+ d; t7 u
* {+ l$ r# R* }
这样网络中就有三条静态路由记录了:#routeKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface
$ N! S& C1 V3 G) ^8 \
, b! u+ \# B$ f0 ]
172.16.0.0*255.255.0.0U000eth0
% Y5 a" B3 m7 x" i/ ]& {5 l) {+ J
10.0.0.0*255.0.0.0U000eth1
1 v. Z, e% n1 v( E+ z7 c# Z 192.168.1.0*255.255.255.0U000eth2
4 {/ M; x: D# d2 h7 V
; d: A6 F! a& X( e
还要为系统增加一条缺省路由,因为缺省的路由是把所有的
数据包都发往它的上一级网关(假设地址是172.16.1.100,这个地址依赖于使用的网络而定,由网络
管理员分配),因此增加如下的缺省路由记录:
) y; D7 t9 `* Z6 f- `2 j6 ]# t9 _. L
$ Q# i2 k3 ^% U; U: Y" W
#routeadddefaultgw172.16.1.100
' r& l6 G- Q+ Q! @, B' B
/ N5 m' P1 P0 ^ b 这样系统的静态路由表建立完成,它的内容是
- |* C+ m# l4 M# B- L1 e
) g0 _1 r9 r: _2 D" _' [4 Q5 R/ N #routeKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface
( b }% M$ Y) e+ G2 k; `% N. i, N
172.16.0.0*255.255.0.0U000eth0
! y2 a2 O+ L4 S
10.0.0.0*255.0.0.0U000eth1
% a7 q! [& o9 V* E0 S0 t 192.168.1.0*255.255.255.0U000eth2
5 y. P+ }1 v K3 i {& V& N9 E
default172.16.1.1000.0.0.0UG000eth0
1 m, w: p/ ^5 D3 C
r- l9 ~4 _3 M4 \ 最后一步,要增加系统的IP转发
功能。这个
功能由/proc/sys/net/ipv4目录下的ip_forward文件控制,执行如下命令打开ip转发
功能:
3 J' u1 Y( w H' F6 K
; ?! c! ]' t d1 S
echo1%26gt;/proc/sys/net/ipv4/ip_forward
2 N x3 n7 ^/ B: q* w( n
( b% H" ?" q) F# f: u
这样我们的路由器基本上是配置好了
6 A' _, C0 ]# p2 ~3 ^3 G
$ F7 C5 F* F, T/ H8 J 测试路由器的工作情况。
% E; p4 f6 ^8 E/ A1 \5 x( o0 ~( m- x( |) \
在linux路由器上测试:
- w* v; ~ o7 [1 z6 [4 s
! r" L2 t* W; h0 F 第一步,测试自身网络是否工作正常,执行如下命令
; n% A4 M8 ~" u0 t
- S/ A+ R; R* r0 _ ping172.16.1.1
9 e- D& N/ _; N7 v- h- x ping192.168.1.254
0 ]$ D7 k# S. z3 L9 M7 q% D( F1 F ping10.254.254.254
( K7 t) J7 T# V$ ~0 S
; Z& D$ n; P& [* K! |' s$ t
如果这些地址都能ping通,则第一步通过,否则查找原因,排除错误。
' y( Z7 j8 ^7 W- V* N6 ?; P9 E+ |
第二步,测试与上一级网关之间是否连通
0 h1 O6 N# t" l- `
7 \# V! G! [/ X$ f$ T ping172.16.1.100
1 P/ E% |6 y3 g N" Y7 S1 I' N5 N# x$ i6 l: {
如果通畅,则正常;否则查找错误原因。
/ p! I4 g( Q" |0 J* b2 R
& y: P$ |% ~( j: V$ M& A u
在192.168.1.0网络内测试,假设它的地址是192.168.1.1,
: g1 d6 e+ L1 {9 H0 d; D0 C
5 t) P& B# I7 z3 T" c6 s. _ 第一步,测试自身是否工作正常,ping192.168.1.1
) C; j# F/ E# K" C5 D8 Q
第二步,测试与网关是否连通,ping192.168.1.254
^& x! r! P1 `2 B 第三步,测试与10.254.254.99是否连通,这是10.0.0.0网段内的一台计算机ping10.254.254.99
9 g0 p/ Y t; C
第四步,测试与外网地址是否连通ping172.16.1.100如果连通了,表示路由器配置正确,否则,查找原因,并排除之。