linux路由服务
2016-03-24 17:09
477 查看
本文介绍怎样使用linux创建一台简单的路由server。
主要包含几个參数的设置:ip_forward和rp_filter。
$ echo "1" > /proc/sys/net/ipv4/ip_forward
或者
编辑/etc/sysctl.conf,做例如以下改动
net.ipv4.ip_forward = 1
# sysctl用于在内核工作时直接改动内核參数
$ sysctl -p
或者
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)不在一个网络,将被直接丢弃。
主要包含几个參数的设置: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)不在一个网络,将被直接丢弃。
相关文章推荐
- linux kernel arm 的dma zone
- LINUX下动态链接库的使用-dlopen() dlsym() dlclose() dlerror()
- Linux多线程pthread_key_create
- Linux修改SSH端口和禁止Root远程登陆
- 阿里云ECS服务器(linux)挂载硬盘
- linux命令---find
- linux系统调用---getrlimit()与setrlimit()
- CentOS 7 安装mysql(在线安装版)
- linux下多个cpp文件的Makefile编译
- Linux设备驱动之——I2C总线
- CentOS 7下的软件安装方法及策略
- Linux下TFTP的安装,配置和操作
- 程序包管理工具yum
- Linux中find常见用法示例
- linux 查看文件内容的命令
- Android Linux Kernel 移植流程
- linux命令---sort
- Android Linux内核编译调试
- python调用linux命令
- 每天一个linux命令(60):scp命令 【转】