linux路由服务

本文介绍怎样使用linux创建一台简单的路由server。

主要包含几个參数的设置:ip_forward和rp_filter。

1.开启IP forwarding

# 重新启动后失效
$ echo "1" > /proc/sys/net/ipv4/ip_forward

或者
编辑/etc/sysctl.conf,做例如以下改动
net.ipv4.ip_forward = 1

# sysctl用于在内核工作时直接改动内核參数
$ sysctl -p
   

2. 关闭rp_filter

echo "0"> /proc/sys/net/ipv4/conf/<device>/rp_filter 
或者
echo "0"> /proc/sys/net/ipv4/conf/all/rp_filter

默认情况下,为了防止IP欺骗(spoofing)攻击,假设收到packet的源地址,和接收网卡的网络不一致。那么packet将被丢弃。


当跨两个网络通信时。会出现这个问题。例如以下图:
Host_A <192.168.1.10>
                     |
              <192.168.1.1>
                 Router_A
               <192.168.2.1>
                       |
                <192.168.2.254>
                Router_B 
               <192.168.3.254>
                       |
Host_B<192.168.3.10>

主机A发送packet给主机B时。packet<src:192.168.1.10, dst:192.168.3.10>到达Router_B时,因为源地址(192.168.1.10)和Router接收网卡(192.168.2.254)不在一个网络,将被直接丢弃。




posted on 2016-03-24 17:09  gcczhongduan  阅读(236)  评论(0编辑  收藏  举报