networking - 如何从外部访问内部?
问题描述
我在一个节点上有两个网络接口。一种是内网,一种是外网。内部网络是192.168.50.0/255.255.255.0
(内部网络)。而外网是192.168.0.0/255.255.255.0
。Kubernetes 由192.168.50.0/255.255.255.0
. 我想在不使用内部网络接口的情况下从另一个本地节点访问内部网络。我怎么解决这个问题?
解决方案
没有子网掩码,我不明白它们是如何不同的网络。
但是,无论如何,您需要启用从一个接口到另一个接口的路由数据包。我假设你在 Linux 节点上,你可以在那里启用 ip-forwarding。
echo 1 >> /proc/sys/net/ipv4/ip_forward
然后在 iptables 中设置一些规则来执行 natting 和 forwarding:
示例规则:
# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT
# We allow traffic from the LAN side
iptables -A INPUT -i eth0 -j ACCEPT
######################################################################
#
# ROUTING
#
######################################################################
# eth0 is LAN
# eth1 is WAN
# Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# fowarding
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
https://serverfault.com/questions/453254/routing-between-two-networks-on-linux
推荐阅读
- flutter - VSCode - URI 目标不存在:'package:english_words/english_words.dart'
- javascript - 如何在 React js 中验证具有 api 值的文本字段?
- installation - Inno 设置中的绿线
- python - 如何在 CSV 中组合类似的行来填充缺失的数据?
- javascript - 将 useState setter 传递给孩子以更新父母状态是否正确?
- python - python 应用程序,它具有 gui 以及用于用户交互的控制台
- python - 我的代码中第 7 行的语法有什么问题?它说我的打印语句的语法无效,我无法弄清楚?
- android - StaggeredGridLayoutManager 中错误的项目布局方向取消 RecyclerView Android
- ios - iOS Swift:在字符串中查找匹配单词的范围
- database - 迁移数据库时显示错误语法错误或访问冲突:1067 'domain_status' 的默认值无效