- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图用一台虚拟机和 2 个虚拟路由器构建一个虚拟网络。
VM -> Router1 -> Router2 -> External network
Router1 执行 SNAT 并且运行良好。 Router2 预计会进行 ip 转发,但不起作用。
这是我检查过的 Router2 的详细信息。 (Router2位于netns d3dcb2df-f3ca-4079-a434-491b23f84b5a内部。)
NIC 和地址
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: qr-70aabff6-c8@if60: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:29:3b:ea brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.1.1/24 brd 192.168.1.255 scope global qr-70aabff6-c8
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe29:3bea/64 scope link
valid_lft forever preferred_lft forever
3: qg-30c10598-27@if63: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:fc:1b:5b brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.10.52.82/24 brd 10.10.52.255 scope global qg-30c10598-27
valid_lft forever preferred_lft forever
inet 10.10.52.158/32 brd 10.10.52.158 scope global qg-30c10598-27
valid_lft forever preferred_lft forever
inet 10.10.52.73/32 brd 10.10.52.73 scope global qg-30c10598-27
valid_lft forever preferred_lft forever
inet 10.10.52.68/32 brd 10.10.52.68 scope global qg-30c10598-27
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fefc:1b5b/64 scope link
valid_lft forever preferred_lft forever
路线规则
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a ip route
default via 10.10.52.1 dev qg-30c10598-27
10.10.52.0/24 dev qg-30c10598-27 proto kernel scope link src 10.10.52.82
192.168.1.0/24 dev qr-70aabff6-c8 proto kernel scope link src 192.168.1.1
转发已开启
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a sysctl net.ipv4.conf.qr-70aabff6-c8.forwarding
net.ipv4.conf.qr-70aabff6-c8.forwarding = 1
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a sysctl net.ipv4.conf.qg-30c10598-27.forwarding
net.ipv4.conf.qg-30c10598-27.forwarding = 1
iptables规则已清除
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a iptables -t mangle -F
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a iptables -t nat -F
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a iptables -t filter -F
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a iptables -t mangle -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain neutron-l3-agent-FORWARD (0 references)
target prot opt source destination
Chain neutron-l3-agent-INPUT (0 references)
target prot opt source destination
Chain neutron-l3-agent-OUTPUT (0 references)
target prot opt source destination
Chain neutron-l3-agent-POSTROUTING (0 references)
target prot opt source destination
Chain neutron-l3-agent-PREROUTING (0 references)
target prot opt source destination
Chain neutron-l3-agent-float-snat (0 references)
target prot opt source destination
Chain neutron-l3-agent-floatingip (0 references)
target prot opt source destination
Chain neutron-l3-agent-mark (0 references)
target prot opt source destination
Chain neutron-l3-agent-scope (0 references)
target prot opt source destination
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain neutron-l3-agent-OUTPUT (0 references)
target prot opt source destination
Chain neutron-l3-agent-POSTROUTING (0 references)
target prot opt source destination
Chain neutron-l3-agent-PREROUTING (0 references)
target prot opt source destination
Chain neutron-l3-agent-float-snat (0 references)
target prot opt source destination
Chain neutron-l3-agent-snat (0 references)
target prot opt source destination
Chain neutron-postrouting-bottom (0 references)
target prot opt source destination
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a iptables -t filter -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain neutron-filter-top (0 references)
target prot opt source destination
Chain neutron-l3-agent-FORWARD (0 references)
target prot opt source destination
Chain neutron-l3-agent-INPUT (0 references)
target prot opt source destination
Chain neutron-l3-agent-OUTPUT (0 references)
target prot opt source destination
Chain neutron-l3-agent-local (0 references)
target prot opt source destination
Chain neutron-l3-agent-scope (0 references)
target prot opt source destination
最后,当我从虚拟机 ping 8.8.8.8 时,路由器只能看到收到的数据包,没有转发的数据包。
[root@controller ~]# ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a tcpdump -i any -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
14:00:37.138271 IP 10.10.52.140 > 8.8.8.8: ICMP echo request, id 9616, seq 10258, length 64
14:00:38.139298 IP 10.10.52.140 > 8.8.8.8: ICMP echo request, id 9616, seq 10259, length 64
14:00:39.140488 IP 10.10.52.140 > 8.8.8.8: ICMP echo request, id 9616, seq 10260, length 64
感谢您的帮助。
最佳答案
感谢上帝。在深入研究内核源码后,我终于找到了答案。有一个小开关“rp_filter”告诉内核丢弃“坏”数据包。以下是内核文档的完整描述:
rp_filter - INTEGER
0 - No source validation.
1 - Strict mode as defined in RFC3704 Strict Reverse Path
Each incoming packet is tested against the FIB and if the interface
is not the best reverse path the packet check will fail.
By default failed packets are discarded.
2 - Loose mode as defined in RFC3704 Loose Reverse Path
Each incoming packet's source address is also tested against the FIB
and if the source address is not reachable via any interface
the packet check will fail.
Current recommended practice in RFC3704 is to enable strict mode
to prevent IP spoofing from DDos attacks. If using asymmetric routing
or other complicated routing, then loose mode is recommended.
The max value from conf/{all,interface}/rp_filter is used
when doing source validation on the {interface}.
Default value is 0. Note that some distributions enable it
in startup scripts.
在我的情况下,像这样关闭它很好:
ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a sysctl net.ipv4.conf.all.rp_filter=0
ip netns exec qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a sysctl net.ipv4.conf.qr-70aabff6-c8.rp_filter=0
关于linux - ip 转发在 CentOS7 上的 netns 内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50207886/
我在正在构建的应用程序中集成了转发系统,但很难弄清楚在同一流中检索帖子和转发的逻辑。 我有一个 post_reblog 数据透视表来存储 post_id 和 user_id - 转发该帖子的用户的 I
好的,由于阅读了数百本手册和说明页但仍然没有得到它,我正处于某个时刻,我觉得自己非常愚蠢。我希望你能帮帮我! 我有一台运行 Ubuntu Server 的服务器。在服务器上,我正在运行 ddclien
我在我的项目中使用嵌入 jetty 并提出了一些问题。我有这两页: íindex.jsp 结果.jsp 这两个 servlet: 上传 搜索 在 íindex.jsp 中有一个用于上传文件的表单,上传
我正在使用 c# asp.net 创建一个基于 Web 的电子邮件客户端。 令人困惑的是,各种电子邮件客户端在回复电子邮件时似乎以多种不同方式添加原文。 我想知道的是,是否有某种标准化的方式来消除这个
我正在开发一个评估系统,让考生尝试参加考试。因此,呈现问题及其选择的页面是带有 iframe 的页面,在该页面中呈现问题。包含 iframe 的页面包含 JavaScript 计时器。 因此,当问题在
QOTD(每日问题)的 Twilio 新手。我认为这应该是非常基本的,但我似乎找不到答案。 我成功地将一个电话号码转发到我的手机上……很简单……但问题是我经营着几家公司,我想将号码转发到我的手机上。问
我正在尝试在 pod 上公开一个端口 8080,这样我就可以直接从服务器获取 wget。使用端口转发一切正常(kubectl --namespace jenkins port-forward pods
我想转发一个 url,这样如果你在地址栏中输入 www.example.com,你就会被转发到 www.test.com/test.php。 我所做的是在我的区域文件中添加了一个 cname 记录。
我正在尝试在构建 docker 镜像时克隆一个私有(private) github 存储库。我安装了 docker 18.09.2 并根据 Build secrets and SSH forwardi
Grails 2.2.0 我正在探索grails和ajax,也许我是一个狂热的ajax适配器,但是我确实认为它是一个改变游戏规则的人,所以我要走在前面。 数据模型是主要细节(1:n)。客户端中的一个表
Tumblr API似乎不支持帖子的某些细节:评论、转发或点赞的数量。 真的没有办法从每个帖子的 Tumblr API 获取这个吗? 最佳答案 tumblr API 在报告笔记的方式上非常有限。它可以
我正在制作一个greasemonkey脚本,我想要一个链接来前进并修改当前的html并允许用户单击返回以转到原始页面。 我该怎么做?使用jquery+greasemonkey+javascript。主
我的包含文件有一个小问题,我已经对我的问题做了一个简化的模型。假设我正在编译一些需要名为的头文件的源代码 header.h 里面有: #ifndef HEADER_INCLUDED #define H
我遇到了一个奇怪的问题。我有一个自定义组件来为我处理 UICollectionView 的布局。该代码是用 Swift 编写的。 class MyCustomCollectionViewHandler
有什么方法可以导出命令输出的颜色吗? 让我们用一个小例子来解释它: ls -alh --color=auto 将打印目录的彩色内容,而 ls -alh --color=auto | cat 不会打印一
我希望能够转发 url,例如 http://external_url.com/auth => http://internal_url.com:8080/app/auth https://externa
我有一个在 nginx 中混合运行 PHP 和 Tomcat 的域。这是它的样子。我在这个站点上有一个域 example.com 我安装了 Wordpress。这完全没有问题。现在我想要的是,当您导航
我在一种模板化的层次结构中有一堆相关的指标,看起来像 template struct index{ index w; int x, y; }; template <> struct
我之前发布了有关使用Processing与Leap Motion的文章https://www.leapmotion.com/为了构建一个可以检测手颤的应用程序。我相信我需要执行 FFT 才能实现此目的
Peer 必须能够转发数据,以便在点对点覆盖(例如 Chord)中进行广播。当每个节点(对等体)接收到数据时,它会将数据转发到其路由表中的所有其他节点,然后这些节点将再次转发相同的数据,直到环中的所有
我是一名优秀的程序员,十分优秀!