linux开启内部路由转发、关闭ICMP重定向功能

本文介绍如何在Linux系统中进行路由转发配置,并详细解释了IPv4与IPv6的不同配置方式。此外还介绍了如何关闭ICMP重定向,确保网络通信的稳定性。

一、开启路由转发

转自http://blog.51cto.com/zouqingyun/1697571

一组内部机器需要连接外网,则需要找一台机器,即可以连接外网,内网机器也可以连接。

因此将这台外网机器当做路由器,做路由转发

1、在需要做路由转发的机器上执行下面命令

1

 [root@shx ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

若是ipv6则执行

echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

但一般不建议,下次开机它又会变为0

修改它的配置文件,把net.ipv4.ip_forward = 1

1

2

3

4

5

6

7

8

9

[root@shx-web150 ~]# vim /etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux

#

# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and

# sysctl.conf(5for more details.

# Controls IP packet forwarding

net.ipv4.ip_forward = 1

# Controls source route verification

net.ipv4.conf.default.rp_filter = 1

若是ipv6,则添加net.ipv6.conf.all.forwarding=1 配置项的值

让它立即生效,就执行

1

[root@shx-web150 ~]# sysctl -p

2、紧接着我就把内网机器网关指向A的内网IP地址,结果,还是不能连接到外网,纠结许久。后面想到,才想起要在A做一个NAT转发

1

[root@shx-web150 ~]#iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -j MASQUERADE

若是ipv6,则使用ip6tables

可参考https://blog.youkuaiyun.com/hcancientmoon/article/details/40158969 

ipv6相关信息可参考https://www.cnblogs.com/xiangxisheng/p/6415568.html

二、关闭ICMP重定向

ipv4:

# 关闭 icmp 的重定向

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects

ipv6:

echo 0 > /proc/sys/net/ipv6/conf/all/accept_redirects

echo 0 > /proc/sys/net/ipv6/conf/default/accept_redirects

echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_redirects

linux内核相关可参考:https://blog.youkuaiyun.com/l0605020112/article/details/42837093?locationNum=7&fps=1

 

永久生效(未验证):

ipv4:

# vim /etc/sysctl.conf
net.ipv4.conf.eth0.send_redirects= 0
net.ipv4.conf.eth1.send_redirects= 0
net.ipv4.conf.lo.send_redirects= 0
net.ipv4.conf.default.send_redirects= 0
net.ipv4.conf.all.send_redirects= 0

或者是accept_redirects 。

ipv6:

# vim /etc/sysctl.conf
net.ipv4.conf.eth0.accept_redirects= 0
net.ipv4.conf.eth1.accept_redirects= 0
net.ipv4.conf.lo.accept_redirects= 0
net.ipv4.conf.default.accept_redirects= 0
net.ipv4.conf.all.accept_redirects= 0

参考:https://blog.youkuaiyun.com/u010391029/article/details/46441811

 

疑问:accept_redirects和send_redirects的区别。

为什么v6里面只有accept_redirects,而v4里面两者都有,两者作用分别是什么。

<think>好的,我现在要帮用户解答关于ICMP路由重定向的工作原理、配置和解决方案的问题。首先,我需要回顾一下自己对这个主题的了解,确保信息准确。ICMP路由重定向是当路由器发现主机使用的不是最优路径时,发送ICMP重定向报文告知主机更佳的路由。这个过程有助于优化网络流量,但也可能带来安全风险,比如攻击者伪造重定向报文导致流量被截获。 接下来,我需要结合用户提供的引用内容。引用[1]提到了一个实验,验证重定向对数据转发的影响,以及关闭后的效果。引用[2]则讨论了策略路由中结合NQA测试例来实现动态重定向。这些引用中的信息可以帮助我举例说明配置方法和实际应用场景。 用户的问题包括工作原理、配置步骤、常见问题解决方案,以及相关应用场景。需要结构清晰,分点回答。首先解释工作原理,然后配置方法,接着常见问题及处理,最后应用场景。同时,用户要求生成相关问题,我需要考虑哪些问题可能对用户有帮助,比如安全风险、配置命令、与策略路由的区别等。 需要注意的是,用户可能是在学习网络配置或者备考相关认证,因此需要详细但不过于技术化的解释。同时,确保使用中文,LaTeX格式正确,数学表达式用$...$,独立公式用$$...$$。不过当前内容中可能数学公式不多,但如果有的话需要正确应用。 在回答中,要引用用户提供的引用内容,比如在配置步骤中提到关闭重定向功能的命令,或应用场景中结合NQA联动的情况。需要自然地添加引用标识,如[^1][^2]。 最后,检查是否覆盖了所有用户需求:工作原理、配置、解决方案、应用场景,以及相关问题是否相关。确保语言口语化,避免使用专业术语过多,必要时举例说明。</think>### ICMP路由重定向工作原理与配置详解 #### 一、工作原理 ICMP路由重定向路由器向源主机发送的一种控制报文(Type=5, Code=0-3),用于通知主机**更优的下一跳路径**[^1]。其触发条件为: 1. 路由器收到数据包的接口与转发出口为**同一物理接口** 2. 数据包的源IP与最优路径下一跳IP属于**同一网段** 例如当主机A默认网关为R1,但发送到目标B的数据经过R1转发时,R1发现最佳路径应通过R2,则会发送重定向报文告知主机A后续直接发往R2的IP地址。 #### 二、配置方法 以华为/H3C设备为例: ```bash # 查看重定向状态 display icmp redirect # 开启/关闭接口重定向功能(默认开启) interface GigabitEthernet0/0/1 icmp redirect send enable # 华为 undo ip redirects # H3C ``` #### 三、常见问题解决方案 | 问题现象 | 排查步骤 | 解决方案 | |---------|---------|---------| | 主机未响应重定向 | 1. 检查主机ICMP处理配置<br>2. 抓包验证路由器是否发送报文 | 主机需启用ICMP重定向接收功能Linux: `sysctl -w net.ipv4.conf.all.accept_redirects=1`)| | 网络环路风险 | 1. 检查路由表收敛状态<br>2. 验证重定向路径可达性 | 配置NQA联动检测路径有效性[^2] | | 安全攻击风险 | 1. 分析可疑重定向源<br>2. 检查路由认证配置 | 关闭非必要接口的重定向功能 | #### 四、典型应用场景 1. **企业网多出口优化**:当分支机构存在多条出口链路时,通过重定向动态调整流量路径 2. **SDN网络调度**:结合控制器实现集中式路径优化(如最短时延路径选择) 3. **故障切换**:配合BFD/NQA实现毫秒级故障检测与路径切换[^2] $$ \text{重定向决策公式:} \quad \text{if } \exists R_j \text{ s.t. } \text{Cost}(R_i \rightarrow R_j \rightarrow D) < \text{Cost}(R_i \rightarrow D) \text{ then send Redirect} $$
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值