iptables/arptables实现单IP一级二级路由
现在,事情不同了,你可以将这个唯一的IP地址配置在你的工作机上的同时,也可以让所有的其它设备使用。
步骤:
现在假设你的BOX有三个网口,分别是两个以太口:eth0,eth1以及一个WIFI口:wlan0,下面是一系列的操作:
你拥有的唯一IP及其配套配置:
地址:192.168.10.79/24
网关:192.168.10.1
1.桥接所有这些口
brctl addbf br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl addif br0 wlan0
2.为br0配置一个IP地址供WIFI使用(省略DHCP POOL以及DNS的配置过程)
接入设备数量限制一下:
ifconfig br0 172.20.1.1/28
3.可选1:为br0增加一个Secondary IP以便成功增加默认路由
ifconfig br0:0 192.168.10.255/23
注意,以上的prefix 23值得说明一下,原始的子网的掩码是255.255.255.0,现将prefix减少1位,此时你就可以使用原始网络中的broadcast地址作为一个IP地址了,这个地址不会和任何地址冲突。
route add default gw 192.168.10.1
4.可选2:使用force-onlink路由直接强制增加路由
ip route add 0.0.0.0/0 via 192.168.10.1 dev br0 onlink
5.增加地址转换规则,凡是WIFI包的源地址都转换成你唯一的那个IP地址
iptables -t mangle -A PREROUTING -m physdev --physdev-in wlan0 -j MARK --set-mark 100
iptables -t nat -A POSTROUTING -m mark --mark 100 -j SNAT --to-source 192.168.10.79
6.可选2的情况下增加arp
由于使用了force-onlink路由,意味着你的BOX上没有和192.168.10.0/24处于同网段的IP地址,那么当往192.168.10.1这个默认网关发包的时候,ARP请求将可能得不到回复,这涉及到默认网关的arp_filter或者等价配置的配置情况,因为arp请求的源是唯一的172.20.1.1这个地址,请求的是地址和它不在一个网段!
因此需要一条arptables规则:
arptables -t mangle -A OUTPUT -d 192.168.10.1 -j mangle --mangle-ip-s 192.168.10.79
事实上在可选1的情况下,你配置了一个192.168.10.255这个地址,对于原始网段来讲,它是一个广播,但是对于BOX来讲,它是一个常规IP,因此ARP请求可以发出,封装的源就是192.168.10.255,也可以正常回来,因为请求中的源是192.168.10.255,到达默认网关192.168.10.1后,与其掩码255.255.255.0相与得到192.168.10.0/24,显然属于同一个网段,检查通过,REPLY返回!
效果:
整个BOX对于你的工作机就是一个HUB,它的工作毫不受到影响!另外BOX上的WIFI独自引出了一个子网,可以让多个设备接入,当这些设备发出的数据包外出时,BOX会将其源IP地址转换为你那唯一的IP地址,ip_conntrack机制可以保证所有的这些设备相关的流的五元组不会重复。
本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1268835
iptables/arptables实现单IP一级二级路由相关推荐
- 有关于路由的基础使用(一级路由和二级路由)
一.路由 1.定义 node中的路由:web服务器根据用户输入的不同url地址,来返回不同的页面. vue中路由:路由是vue.js中的一个路由组件,需要结合组件来实现单页面应用. 2.路由的使用(一 ...
- Vue一级路由与二级路由/路由重定向
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- vue项目的一级路由和二级路由的理解
vue项目的一级路由和二级路由的理解
- 家用带宽二级路由openwrt设置ipv6
拓扑结构,中国移动家庭智能网关GS3101 + OpenWrt GCC 5.3.0 12009 GS3101 为一级主路由,是光猫直接拨号,通过GS3101到一个lan口接到openwrt的wan口. ...
- OpenWrt-DreamBox 20120201下设置二级路由
RG100A-AA刚刷的openwrt-Dreambox20120201,想使用RG100A-AA做一个二级路由,一级路由lan口使用DHCP动态分配IP. 1.使用浏览器登录管理界面,在接口中wan ...
- vlan跨交换机 udp广播_划分VLAN和接二级路由都能阻止广播风暴?两者有什么区别?...
交换机默认接口属于VLAN1属于同一个广播域,端口划分VLAN一般用于交换机隔离广播,交换机用于高速数据转发,路由器每个接口都是一个广播域,路由器主要用于路由查找,还是有一定的区别. 我从事网络管理的 ...
- 易语言单窗口单ip软件源码_梦幻西游怎样多开ip转金?十大攻略秘籍速来看
各位好!,我依然是小芝麻,近期几日总是有盆友在私聊我,"小芝麻看着你的转金专缉,那么多方式,能够 帮我建议一类,最安全可靠能用的吗?""小芝麻,你的转金攻略大全,我有点儿 ...
- vue2路由手动创建二级路由路由传参路由守卫打包上线
路由手动配置: #在@vue/cli创建的项目中,路由用法如下. 1.安装路由npm install vue-router@32:定义路由所需的组件(.vue文件)要实现页面about 和home两个 ...
- 路由器级联方式(二级路由为例)
这两天由于路由器出了点问题导致网络连接一直不顺畅.出现的问题是二级路由只能一台电脑连上.其他设备无法连上二级路由. 路由器的级联应用场景:一个网络帐号,门口有一个入口有线路由器,分出网线到各个房间.房 ...
- openwrt二级路由wan口如何设置
openwrt 跟其他一些路由系统不一样,其他一些路由系统会直接翻译为动态地址给你选择,对应就有静态地址.但openwrt 一看协议里头根本就没有什么动态地址选项给你(但还是有静态地址给你选),这时你 ...
最新文章
- js 算法排序总结
- 1.7 Appium依赖添加
- mysql st_contains实现_MySQL实现树状所有子节点查询的方法
- 2010年过年左右时的艾米果
- html中怎么让字体闪烁,HTML最简单的文字闪烁代码
- centos mysql压缩文件直接恢复_CentOS下利用mysqlbinlog恢复MySQL数据库
- 开启es6——搭建开发环境
- 5.企业安全建设指南(金融行业安全架构与技术实践) --- 安全团队建设
- android 界面布局
- AsyncTask的基本使用
- fluidsim win7版本_FluidSIM 5|FluidSIM(液压气动仿真软件)下载v5.0中文免费版 附安装教程 - 欧普软件下载...
- mysql查出同义词_在数据库mysql中存储和检索同义词的最佳方法
- 企业logo添加到word的模板制作
- 算法时间复杂度的计算:从几道题目讲起
- 解释深度学习在安全领域中的应用
- redis key过期通知
- 顺丰菜鸟大战 本质是以数据获得企业竞争壁垒
- 【硬件】美光DDR上丝印和型号对应关系
- drtek收音机使用说明_车载收音机按键图解说明,老式车载收音机说明书
- PC虚拟现实应用的性能分析与优化:从CPU角度切入