网站首页 > 精选文章 正文
我们在内网的环境中,如果只有一台机器能够能外网,那么我们把这台机器做成一个网关gateway,从而实现其他机器的联网。如下图所示:
网关上面有两个网卡,其中eth0(192.168.0.1)连接内网网段,eth1(198.51.100.1)连接公网。

原理非常简单: 通过网关iptables的SNAT,将内网流量的源IP地址统一修改成网关对外IP地址(eth1的IP)。具体操作如下:
网关配置
首先需要配置我们的网关,确保内网流量都走eth0网络
ip route add 192.168.0.0/16 dev eth0
然后开启网络转发并通过SNAT将IP改成对外IP。
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING ! -d 192.168.0.0/16 -o eth1 -j MASQUERADE
注意上面,我并没有直接使用SANT,而是采用MASQUERADE。MASQUERADE可以理解成动态的SNAT,如果eth1网卡地址发生变化后,会动态更新源地址。如果使用SNAT,当然在本例中也是可以跑通的,如下所示
iptables -t nat -A POSTROUTING ! -d 192.168.0.0/16 -o eth1 -j SNAT --to-source 198.51.100.1
但如果修改了eth1的地址后,就需要重新设置。
其他内网节点配置
最后将内网中其他机器的网关指定到网关节点即可
ip route add default via 192.168.0.1 dev eth0
这样就完成了一个网关的配置。这个原理非常简单,但如果熟悉OpenStack的用户就会发现,OpenStack里面的网关的原理就是利用这种方式实现。
- 上一篇: 如何将linux 做成一台路由器
- 下一篇: ecmp等价路由
猜你喜欢
- 2024-12-17 CentOS7 设置静态路由
- 2024-12-17 ecmp等价路由
- 2024-12-17 如何将linux 做成一台路由器
- 2024-12-17 linux网络虚拟化:network namespace之间的通信
- 2024-12-17 怎么用ip命令在linux中添加路由表项?
- 2024-12-17 route add 在服务器通过静态路由配置双网关案例
- 2024-12-17 Linux route命令用法(重写)
- 2024-12-17 【Linux】你必须掌握的Linux网络配置常用基础命令
- 2024-12-17 给主机的一个网卡设置多个IP的思路
- 2024-12-17 linux的网络地址的配置
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)