【route】Linux上静态路由的添加

一、背景知识


在日常的使用中,或者在服务器中,有多个网卡配置多个地址,访问不同的网络段,这种情况是非常常见的现象,但是,我们需要额外的添加路由表来决定发送的数据包经过正确的网关和interface才能正确的进行通信 。

在哪种情况下,为什么,需要在Linux服务器上添加静态路由?


 route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。

实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。


如果Linux服务器有多网卡,需要有些网卡走指定的路由,就需要单独设置静态路由。

服务器有多网卡,需要访问内网的另一个网段,不能通过默认网关访问,此时就需要添加静态路由

Linux系统在一个局域网中,局域网有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。

注意:直接在命令行下执行route命令来添加路由,只是临时生效,当网卡或者机器重启之后,该路由条目就失效了。


说明:

 其中Flags为路由标志,编辑当前网络节点的状态

 ·U   up代表路由当前为启动状态

 ·H   host表示此网关为一个主机

 ·G   gateway此网关为一个路由器

 ·R   reinstate route使用动态路由重新初始化的路由

 ·D    dynamically,此路由是动态写入的

 ·M   modified是有路由守护程序或导向器修改

 ·! 此路由当前为关闭状态


代理ARP:路由下一跳是接口还是IP设备的最大区别就是ARP表的区别:下一跳是IP设备的话,外LAN数据包毫无疑问交给了IP网关,但是如果下一跳只是接口的话这个是需要单独对目标ip做arp解析的,如果IP网关上没有开启接口的proxy arp feature的话是不会响应这个arp请求的。


二、静态路由的添加方式


方式一


静态路由的添加


# route add -net  192.168.0.0/24   gw 192.168.0.1

#   route del  -net   192.168.0.0/24   gw 192.168.0.1  dev eth0

#   route add  -net  192.168.0.0  netmask 255.255.255.0   gw 192.168.0.1 

#   route add  -net  192.168.0.0  netmask 255.255.255.0   gw 192.168.0.1  dev eth0


# route add -host 192.168.1.1   dev  eth0


######################################################################

route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.25.230.1 dev eth3

route add -net 100.0.0.0 netmask 255.0.0.0 gw 10.25.230.1 dev eth3

iptables -t nat -A PREROUTING  --dport  8443 -j DNAT --to-destination 192.168.1.120

iptables -t nat -A POSTROUTING --dport 8443 -j MASQUERADE

#######################################################################



静态路由的删除

# route del  192.168.0.0/24   gw 192.168.0.1

#   route del  -net   192.168.0.0/24   gw 192.168.0.1  dev eth0

#   route del  -net  192.168.0.0  netmask 255.255.255.0   gw 192.168.0.1

#   route del  -net  192.168.0.0  netmask 255.255.255.0   gw 192.168.0.1  dev eth0


# route del -host 192.168.1.1   dev eth0


增加默认路由

#  route  add  default  gw 192.168.0.1

注:添加默认网关地址, 也就是默认路由的下一跳,默认路由一条就够了。


说明:

add 增加路由

del 删除路由

-net 设置到某个网段的路由

-host 设置到某台主机的路由

gw  出口网关的IP地址

dev 出口网关物理设备名


方式二


添加路由

ip route add 192.168.0.0/24 via 192.168.0.1

ip route add  192.168.1.1 dev eth0


删除路由

#  ip route del 192.168.0.0/24 via 192.168.0.1

ip route del  192.168.1.1 dev eth0


说明:

add 增加路由

del 删除路由

via 网关出口 IP地址

dev 网关出口 物理设备名


增加默认路由

#   ip route add default via 192.168.0.1 dev eth0

注:  via 192.168.0.1  指向默认路由器


开启 路由转发:

# echo  "1"   >  /proc/sys/net/ipv4/ip_forward 

# echo  "net.ipv4.ip_forward=1"   >>  /etc/sysctl.conf


三、如何在Linux中添加永久路由


我们直接在命令行下执行route命令来添加路由,只是临时生效,当网卡或者机器重启之后,该路由条目就失效了。

怎么实现路由添加的永久生效呢?


1、写入/etc/rc.loacl

可以将上面提到的命令写入/etc/rc.local文件中,这样在系统启动的时候会自动加入相关的路由设置。

不过这种方法有一个缺点:如果某个系统服务,比如说是NFS服务,这个服务是在启动network服务之后,在执行rc.local之前,如果你设置的有自动挂载的nfs,那么,这里链路的不通畅,会造成挂载的失败。

另外一个就是如果你重启了网络服务,那么路由就失效了,这个时候你不得不重新加载这个文件,但是如果你是远程操作的呢?

如果你的应用对网络要求比较特殊,不建议使用此方法。


2、写入/etc/sysconfig/static-routes文件


默认在/etc/sysconifg目录中是没有这个文件的,需要我们手工创建,对这个文件的调用在network服务的启动脚本中。

# vim /etc/init.d/network

#  vim  /etc/sysconfig/static-routes 

#################################################

any net 192.168.1.0/24 gw 192.168.1.1

any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1

#################################################

注: 务必注意 /etc/sysconfig/static-routes 文件中路由添加的语法。

这种方式的话,和rc.local比较而言,比较实用,比如nfs,这个路由的生效时间是在网络服务network启动的时候生效的,而其他的一些网络相关服务都是在网络服务启动成功之后再启动的,所以能够保证网络链路的通畅。

如果重启了网络服务,这个脚本是在网络服务启动脚本里面调用的,所以也会自动添加上相关的路由设置。




四、参考


Linux添加静态路由表,重启继续生效

http://blog.sina.com.cn/s/blog_67be3b450101de43.html


Linux 重启网络服务后路由表丢失问题的解决方案

https://www.iteye.com/blog/yjy110-2205338


Linux 添加静态路由

https://blog.csdn.net/moreorless/article/details/5397427


设置EIP网卡可见模式

https://help.aliyun.com/knowledge_detail/98641.html?scm=20140722.184.2.173


Linux下永久添加静态路由

https://www.cnblogs.com/wanghuaijun/p/8059664.html


关于while 中ignore 的用法

https://blog.51cto.com/552627/1910619

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351