假设如下:
||netns2|<-kernel routing-> netnsRoot| <-network routing-> |remote server|
网络2
- 是网络命名空间
- 有一个客户端连接到 UDP/5060 上的 UDP 服务器
网络根目录
- 是根网络命名空间(即:典型的 Linux 路由)
- 有一个客户端连接到 UDP/5060 上的 UDP 服务器
- 已启用 ip_forward 并具有针对 netns2 的 Masquerade 规则
服务器
- 仅看到来自 netnsRoot 外部接口的流量
Masquerade 在 netnsRoot 中如何表现?我预计它会转发数据包,netns2
但客户端netnsRoot
会首先接收所有消息。这不是我认为我看到的情况,相反,我看到的是netns2
NAT 冲击并接管端口一段时间。
这种行为有记录吗?
答案1
好吧,我决定自己量化一下
||netna|<-kernel routing-> |netnsr|<-kernel routing->|netnb||
- netnsb 有到 netnsa 的路线
- netnsr 已启用 ip 转发
伪装和 netnsb 客户端
启用 Masquerade netnsr
,并让netnsb
客户端从 5060 连接到netnsa
5060 上的服务器,表明 5060 正在使用退出netnsr
化装舞会和两个客户
在 中启用 Masquerade netnsr
,让netnsb
客户端从 5060 连接到netnsa
5060 上的服务器,并让同一个客户端在 中运行,netnsr
结果显示:
- netnsr 客户端在 5060 上与外部对话
- netnsb 客户端正在与 29683 进行外部对话
conntrack 条目证实了这一点
udp 17 119 src=10.216.210.2 dst=10.216.100.2 sport=5060 dport=5060 src=10.216.100.2 dst=10.216.100.1 sport=5060 dport=29683 [ASSURED] mark=0 use=1
udp 17 119 src=10.216.100.1 dst=10.216.100.2 sport=5060 dport=5060 src=10.216.100.2 dst=10.216.100.1 sport=5060 dport=5060 [ASSURED] mark=0 use=1