212 lines
No EOL
13 KiB
HTML
212 lines
No EOL
13 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="tool" content="leanote-desktop-app">
|
||
<title>linux 路由</title>
|
||
<style>
|
||
|
||
*{font-family:"lucida grande","lucida sans unicode",lucida,helvetica,"Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}
|
||
|
||
body {
|
||
margin: 0;
|
||
}
|
||
|
||
/*公用文字样式*/
|
||
h1{font-size:30px}h2{font-size:24px}h3{font-size:18px}h4{font-size:14px}
|
||
.note-container{
|
||
width:850px;
|
||
margin:auto;
|
||
padding: 10px 20px;
|
||
box-shadow: 1px 1px 10px #eee;
|
||
}
|
||
#title {
|
||
margin: 0;
|
||
}
|
||
table {
|
||
margin-bottom: 16px;
|
||
border-collapse: collapse;
|
||
}
|
||
table th, table td {
|
||
padding: 6px 13px;
|
||
border: 1px solid #ddd;
|
||
}
|
||
table th {
|
||
font-weight: bold;
|
||
}
|
||
|
||
table tr {
|
||
background-color: none;
|
||
border-top: 1px solid #ccc;
|
||
}
|
||
table tr:nth-child(2n) {
|
||
background-color: rgb(247, 247, 249);
|
||
}
|
||
.mce-item-table, .mce-item-table td, .mce-item-table th, .mce-item-table caption {
|
||
border: 1px solid #ddd;
|
||
border-collapse: collapse;
|
||
padding: 6px 13px;
|
||
}
|
||
blockquote {
|
||
border-left-width:10px;
|
||
background-color:rgba(128,128,128,0.05);
|
||
border-top-right-radius:5px;
|
||
border-bottom-right-radius:5px;
|
||
padding:15px 20px;
|
||
border-left:5px solid rgba(128,128,128,0.075);
|
||
}
|
||
blockquote p {
|
||
margin-bottom:1.1em;
|
||
font-size:1em;
|
||
line-height:1.45
|
||
}
|
||
blockquote ul:last-child,blockquote ol:last-child {
|
||
margin-bottom:0
|
||
}
|
||
pre {
|
||
padding: 18px;
|
||
background-color: #f7f7f9;
|
||
border: 1px solid #e1e1e8;
|
||
border-radius: 3px;
|
||
display: block;
|
||
}
|
||
code {
|
||
padding: 2px 4px;
|
||
font-size: 90%;
|
||
color: #c7254e;
|
||
white-space: nowrap;
|
||
background-color: #f9f2f4;
|
||
border-radius: 4px;
|
||
}
|
||
.footnote {
|
||
vertical-align: top;
|
||
position: relative;
|
||
top: -0.5em;
|
||
font-size: .8em;
|
||
}
|
||
|
||
hr {
|
||
margin:2em 0
|
||
}
|
||
img {
|
||
max-width:100%
|
||
}
|
||
pre {
|
||
word-break:break-word
|
||
}
|
||
p,pre,pre.prettyprint,blockquote {
|
||
margin:0 0 1.1em
|
||
}
|
||
hr {
|
||
margin:2em 0
|
||
}
|
||
img {
|
||
max-width:100%
|
||
}
|
||
.sequence-diagram,.flow-chart {
|
||
text-align:center;
|
||
margin-bottom:1.1em
|
||
}
|
||
.sequence-diagram text,.flow-chart text {
|
||
font-size:15px !important;
|
||
font-family:"Source Sans Pro",sans-serif !important
|
||
}
|
||
.sequence-diagram [fill="#ffffff"],.flow-chart [fill="#ffffff"] {
|
||
fill:#f6f6f6
|
||
}
|
||
.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"] {
|
||
stroke:#3f3f3f
|
||
}
|
||
.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"] {
|
||
stroke:none
|
||
}
|
||
.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"] {
|
||
fill:#3f3f3f
|
||
}
|
||
ul,ol {
|
||
margin-bottom:1.1em
|
||
}
|
||
ul ul,ol ul,ul ol,ol ol {
|
||
margin-bottom:1.1em
|
||
}
|
||
kbd {
|
||
padding:.1em .6em;
|
||
border:1px solid rgba(63,63,63,0.25);
|
||
-webkit-box-shadow:0 1px 0 rgba(63,63,63,0.25);
|
||
box-shadow:0 1px 0 rgba(63,63,63,0.25);
|
||
font-size:.7em;
|
||
font-family:sans-serif;
|
||
background-color:#fff;
|
||
color:#333;
|
||
border-radius:3px;
|
||
display:inline-block;
|
||
margin:0 .1em;
|
||
white-space:nowrap
|
||
}
|
||
.toc ul {
|
||
list-style-type:none;
|
||
margin-bottom:15px
|
||
}
|
||
</style>
|
||
<!-- 该css供自定义样式 -->
|
||
<link href="../leanote-html.css" rel="stylesheet">
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<div class="note-container">
|
||
<h1 class="title" id="leanote-title">linux 路由</h1>
|
||
<div class="content-html" id="leanote-content"><p><br data-mce-bogus="1"></p><p>1、使用route -n命令查看Linux内核路由表</p><pre id="leanote_ace_1511429088696_0" class="brush:sh ace-tomorrow" data-mce-style="line-height: 1.5; font-size: 14px; height: 21px;">$route -n</pre><p>说明:</p><p> Destination -- 目标网段或主机</p><p> Gateway -- 网关,*表示目标是本主机所属的网络,不需要路由</p><p> Genmask -- 掩码</p><p> Flags -- 标记</p><p> U:路由是活动的</p><p> H:目标是一个主机</p><p> G:路由指向网关</p><p> R:恢复动态路由产生的表项</p><p> D:由路由的后台程序动态地安装</p><p> M:由路由的后台程序修改</p><p> !:拒绝路由</p><p> Metric -- 路由距离,到达指定网络需要的中转数</p><p> Ref -- 路由项应用次数</p><p> Use -- 此路由项被路由软件查找的次数</p><p> Iface -- 该路由表项对应的输出接口</p><p><br data-mce-bogus="1"></p><p>2、三种路由类型说明</p><p> a)主机路由</p><p> <strong>主机路由是路由选择表中指向单个IP地址或主机名的路由记录</strong>。主机路由的Flags字段为H。如下:</p><pre id="leanote_ace_1511429797876_0" class="brush:sh ace-tomorrow" data-mce-style="line-height: 1.5; font-size: 14px; height: 63px;">Destination Gateway Genmask Flags Metric Ref Use Iface
|
||
----------- ------- ------- ----- ------ --- --- -----
|
||
10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0</pre><p> b)网络路由</p><p> <strong>网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。如下:</strong></p><pre id="leanote_ace_1511429942847_0" class="brush:sh ace-tomorrow" data-mce-style="line-height: 1.5; font-size: 14px; height: 63px;">Destination Gateway Genmask Flags Metric Ref Use Iface
|
||
----------- ------- ------- ----- ----- --- --- -----
|
||
192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0</pre><p> c)默认路由</p><p> <strong>当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上</strong>。默认路由的Flags字段为G。如下:</p><pre id="leanote_ace_1511430048947_0" class="brush:sh ace-tomorrow" data-mce-style="line-height: 1.5; font-size: 14px; height: 63px;">Destination Gateway Genmask Flags Metric Ref Use Iface
|
||
----------- ------- ------- ----- ------ --- --- -----
|
||
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0</pre><p>3、配置路由route的命令</p><p> 设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:</p><pre id="leanote_ace_1511430126723_0" class="brush:sh ace-tomorrow" data-mce-style="line-height: 1.5; font-size: 14px; height: 21px;">route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]</pre><p>说明:<br> add 添加一条路由规则<br> del 删除一条路由规则<br> -net 目的地址是一个网络<br> -host 目的地址是一个主机<br> target 目的网络或主机<br> netmask 目的地址的网络掩码<br> gw 路由数据包通过的网关<br> dev 为路由指定的网络接口</p><p>4、route命令使用举例</p><pre id="leanote_ace_1511430206820_0" class="brush:sh ace-tomorrow">添加到主机的路由
|
||
# route add -host 192.168.1.2 dev eth0:0
|
||
# route add -host 10.20.30.148 gw 10.20.30.40
|
||
|
||
添加到网络的路由
|
||
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
|
||
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
|
||
# route add -net 192.168.1.0/24 eth1
|
||
|
||
添加默认路由
|
||
# route add default gw 192.168.1.1
|
||
|
||
删除路由
|
||
# route del -host 192.168.1.2 dev eth0:0
|
||
# route del -host 10.20.30.148 gw 10.20.30.40
|
||
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
|
||
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
|
||
# route del -net 192.168.1.0/24 eth1
|
||
# route del default gw 192.168.1.1 //route del default 删除所有的默认路由
|
||
|
||
添加一条默认路由
|
||
# route add default gw 10.0.0.1 //默认只在内存中生效
|
||
开机自启动可以追加到/etc/rc.local文件里
|
||
# echo "route add default gw 10.0.0.1" >>/etc/rc.local
|
||
|
||
添加一条静态路由
|
||
# route add -net 192.168.2.0/24 gw 192.168.2.254
|
||
要永久生效的话要这样做:
|
||
# echo "any net 192.168.2.0/24 gw 192.168.2.254" >>/etc/sysconfig/static-routes
|
||
|
||
添加到一台主机的静态路由
|
||
# route add -host 192.168.2.2 gw 192.168.2.254
|
||
要永久生效的话要这样做:
|
||
# echo "any host 192.168.2.2 gw 192.168.2.254 " >>/etc/sysconfig/static-routes
|
||
注:Linux 默认没有这个文件 ,得手动创建一个</pre><p>5、设置包转发</p><p> 在Linux中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能;<br> 开启Linux的路由功能可以通过调整内核的网络参数来实现,方法如下:</p><pre id="leanote_ace_1511430268923_0" class="brush:sh ace-tomorrow">临时开启路由功能:
|
||
# echo 1 > /proc/sys/net/ipv4/ip_forward
|
||
或者
|
||
# sysctl -w net.ipv4.ip_forward=1
|
||
永久开启路由功能
|
||
# vim /etc/sysctl.conf
|
||
net.ipv4.ip_forward = 1
|
||
# sysctl -p</pre><p>6、静态路由配置</p><p> 添加静态路由到路由表的语法如下:</p><pre id="leanote_ace_1511430328548_0" class="brush:sh ace-tomorrow">ip route [destination_network] [mask] [next-hop_address] administrative_distance]</pre><p>说明:</p><p> ip route 用于创建静态路由的命令。<br> Destination_network 需要发布到路由表中的网段。<br> Mask 在这一网络上使用的子网掩码。<br> Next-hop_address 下一跳路由器的地址。<br> administrative_distance 默认时,静态路由有一个取值为1 的管理性距离。在这个命令的尾部添加管理权来修改这个默认值。</p><p><br data-mce-bogus="1"></p></div>
|
||
</div>
|
||
|
||
<!-- 该js供其它处理 -->
|
||
<script src="../leanote-html.js"></script>
|
||
</body>
|
||
</html> |