linux – iptables不适用于长命名的网络接口吗?

linux – iptables不适用于长命名的网络接口吗?,第1张

概述我曾经配置iptables来在muli-network-interface-server上的不同网络接口之间转发包. 这么长时间,它工作正常,直到我将我的服务器更新到Ubuntu 1604. Ubuntu 1604附带新的核心,重命名网络接口(Predictable Network Interface Names) 假设这台服务器将两个子网连接在一起: >接口enp3s0与ip 192.168.1 我曾经配置iptables来在muli-network-interface-server上的不同网络接口之间转发包.

这么长时间,它工作正常,直到我将我的服务器更新到Ubuntu 1604.

Ubuntu 1604附带新的核心,重命名网络接口(Predictable Network Interface Names)

假设这台服务器将两个子网连接在一起:

>接口enp3s0与ip 192.168.1.155,连接到网络
192.168.1.0/24,
>接口enxa0cec80f64f3与ip 10.1.1.1连接到网络
10.1.1.0/24.

如下!

Terminal1(10.1.1.2/24,gateway10.1.1.1)                                 ||                                 ||                                 \/                   +---------------------------+                   | enxa0cec80f64f3(10.1.1.1) |                   |                           |                   |           Server          |                   |                           |                   |   enp3s0(192.168.1.155)   |                   +---------------------------+                                 /\                                 ||                                 ||    Host1(192.168.1.111/24,route to 10.1.1.0/24 via 192.168.1.155)

为了使2个网络中的主机能够自由地相互通信,服务器上的iptables被配置为

$sudo iptables -S-P input ACCEPT-P FORWARD ACCEPT-P OUTPUT ACCEPT-A FORWARD -m conntrack --ctstate RELATED,ESTABliSHED -j ACCEPT-A FORWARD -s 10.1.1.0/24 -d 192.168.1.0/24 -i enxa0cec80f64f3 -o enp3s0 -m conntrack --ctstate NEW -j ACCEPT-A FORWARD -s 192.168.1.0/24 -d 10.1.1.0/24 -i enp3s0 -o enxa0cec80f64f3 -m conntrack --ctstate NEW -j ACCEPT

转发无法正常工作.

> Host1 Ping 192.168.1.155,SUCCEED;
> Host1 Ping 10.1.1.1,SUCCEED;
> Host1 Ping Terminal1(10.1.1.2),Failed;
>服务器Ping Terminal1,SUCCEED

当我使用tcpdump检查服务器时,来自enp3s0端的数据包未被转发. (出于某种原因,我不能只检查来自另一方的数据包)

也许iptables不能用于长命名的网络接口,如enxa0cec80f64f3?

解决方法 正确的转发测试是,在一个接口上出现的数据包是否会在另一个接口上出现,并且正确的测试方法就像tcpdump一样.这是正确的转发;内部接口上的流量:
[me@router ~]$sudo tcpdump -n -n -i em2 icmp [...]07:03:55.490295 IP 178.18.x.139 > 178.18.123.145: ICMP echo request,ID 56423,seq 1,length 6407:03:56.491899 IP 178.18.x.139 > 178.18.123.145: ICMP echo request,seq 2,length 64

同时在外部:

[me@router ~]$sudo tcpdump -n -n -i em1 icmp[...]07:03:55.490588 IP 178.18.x.139 > 178.18.123.145: ICMP echo request,length 6407:03:56.492255 IP 178.18.x.139 > 178.18.123.145: ICMP echo request,length 64

如果你没有看到,在你没有看到的情况下,首先要检查的是iptables.但正如迈克尔汉普顿指出的那样,你的规则只有ACCEPTs,所以这不是问题所在.您还被建议检查Big Kernel Forwarding Switch

[me@router ~]$cat /proc/sys/net/ipv4/ip_forward1

在您的情况下返回0 – 意味着没有启用转发.通过更改/etc/sysctl.conf中的相关行并运行sysctl -p来纠正此问题已解决此问题.

总结

以上是内存溢出为你收集整理的linux – iptables不适用于长命名的网络接口吗?全部内容,希望文章能够帮你解决linux – iptables不适用于长命名的网络接口吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1036700.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存