linux下能否实现特殊的NAT功能,请白老师指点
在路由器中可以实现对一个地址段的NAT,还能实现在这个段中单独挑出一个ip不NAT,
举例如下假设我有实ip若干,我将实ipNAT成一个ip出外网(保密需求)如202.199.118.0/24
所有的都转化成218.10.19.129,我还有一个202.199.118.6 (刚才NAT那个地址段中的一个或几个)这个ip不想NAT,即直接访问外网
路由器上很容易实现,不知道linux能否实现?利用iproute和iptables可以实现么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
具体到实例来说,我们将部分教育网ip,nat成网通ip,因为不nat网通ip话,即便使用策略路由使数据包从网通出去,回来还是会从教育网绕圈回来,所以才实ip与实ip之间做地址转换的!
能否实际说一下你的需求?现在看来有些抽象
学校接双链路,教育网和网通,想访问网通走网通链路,就把教育网的ip nat成网通出口地址
这样可以从网通出,从网通回(不做nat从网通出,跳到教育网回来了,做策略路由可以把数据包送到网通出口,但回来时交换源ip为教育网 和目的ip为网通,此时的目的ip为教育网,会直接甩到教育网),如一个地址段1-254均nat成网通ip,这个可以用snat很容易实现,现在这个地址段有部分机器想以教育网实ip直接访问外网,即在这个地址段内,还不想做nat转换,如果是硬件路由器可以很容易实现,即做一个访问控制列表,把不想nat转换的deny掉,permit想转换的ip地址就能够实现。
不知道如何用linux实现上述功能。
那么现在与网通和教育网对接的方式是怎样的?
若不想做 NAT 的话,是否意思是说直接用教育网给的 IP 做内网教育网 IP 的路由子机?
若内网全部都是私网 IP,那么不跑 NAT 之跑 routing 的话教育网会不会针对你的 IP 做回指路由?
我的提议是,不做 SNAT,而是做 MASQUERADE,默认走网通,个别 IP 做高级策略路由走教育网,源 IP 自动由 MASQUERADE 做 “路由后选择”
具體情形我還沒去深入分析,但感覺上跟規則順序有關。
一般來說,先將範圍小的規則放在前頭 ACCEPT 掉,然後範圍大的放在下面 NAT 。
如:
iptables -t nat -A POSTROUTING -s 202.199.118.6 -j ACCEPT
iptables -t nat -A POSTROUTING -s 202.199.118.0/24 -j MASQUERADE
這只是簡單的 sample,還沒照顧到其他規則以及路由上的處理。