|
楼主 |
发表于 2020-6-10 22:45:14
|
显示全部楼层
回楼上:
这里用一个简单的图表示下,虽然不正确,就委屈下了。
目前大部分家庭用户都是用路由器的pppoe拨号,然后采用nat方式分享上网,不知道朋友说的这种情况是否适用局端dhcp模式呢?就是局端直接分配给客户端公网ip(假设局端没有采用nat)
假设路由器包括 wan ------cpu(内核)------lan 三种粗略的部门
如果内网用户没有主动发起访问外网(图上蓝色),仅仅是外面的数据要访问内网(只讨论第一次数据,不包含建立连接的往返过程),那么这个是不是FORWARD? 常说的端口映射不是这个么?
如果内网用户主动访问外网(图上绿色),似乎不是单纯的forward,数据在内核处理前后,是不是对应有forward和postrouting两个过程?
如果内网用户访问内网(图上红色),真的不经过forward吗? 还是经过了,内核压根不处理这种数据?
我也是业余玩家,我认为iptables仅仅是个代理工具,目的就是方便人类去配置机器代码,真正处理这些的应该是内核部分的功能,以前读过内核关于这个的东西,好像是什么netfilter。这就导致表面上对input数据进行drop而有效果,实际内部代码把所有相对“进入”的数据都处理了。
我赞成朋友把这个过程比喻为快递,虽然路由器上有wan和lan口,实际上确实是一个洞,洞里的数据有进有出,相对来说是不是可以形容为wan进 经过内核数据处理后从lan出?
然后用户数据从lan入 经过内核处理数据后 又从wan出呢?
进和出都是相对说的,一条公路,具备双向车道而已。公路一头是wan口,一头是lan口,中间有个虚拟抽象的处理中心。
我一直主观认为dnat是管理用户数据 从lan入 到 wan出这个过程,而snat 恰好相反的这个过程,一旦建立连接后既有dnat又有snat了。
而描述处理中心的行为是不是PREROUTING、FORWARD、POSTROUTING这3种呢?处理动作有方向性,分为OUTPUT,INPUT呢? 处理方法又分为ACCEPT,DROP,REJECT 等呢?
这种偏书面的东西,有时隔一阵子就会混乱,还期待朋友给详细讲解下。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|