我正在Linux2.6.26中配置一个GRE隧道,我一直面临一个非常奇怪的问题,我找不到任何解决方案。
我已经创建了一个名为gre0的GRE隧道,但是无论我做什么,我都无法删除这个隧道。命令ip tunnel del gre0在响应ioctl: Operation not permitted中失败。任何更改隧道地址的尝试也会失败。
以下命令说明了这个问题:
# ip tunnel del gre0
ioctl: Operation not permitted
# ip tunnel change gre0
# ip tunnel change gre0 remote <some addr
Linux现在支持轻量级隧道https://lwn.net/Articles/650778/,这意味着在路由上配置隧道(因此不需要通过隧道设置一个接口)。
但不幸的是,我没有找到很多关于它们的文档。在上面链接的补丁系列中,语法是ip route add 40.1.1.1/32 encap vxlan id 10 dst 50.1.1.2 dev vxlan0。
但是在我当前的iproute-5.2.0中,没有encap vxlan,只有encap ip id ... (使用mpls、bpf、seg6.)。它看起来像外壳类型是自动检测根据设备。所以不要做
$ ip link add dev
如何使用netplan创建GRE隧道?以前在/etc/网络/接口中,我会这样做。
iface gr0 inet manual
pre-up ip tunnel add gr0 mode gre remote 10.10.10.10 local 10.20.10.10 dev ens33 ttl 255
post-down ip tunnel del gre0
如何将其转化为网络计划?
对于端到站点VPN,即设备(VPN客户端)负责封装GRE数据包的情况下,是否可以将一些自定义数据与GRE数据包一起发送到仅超出标准有效载荷的范围。
例如,VPN客户端组装的GRE数据包:
| IP header | GRE Header | Standard Payload |
使标准有效载荷看起来像:
|Orignal IP Header| Orignal Payload|
理论上,如果我想将一些额外的数据(自定义数据)附加到GRE数据包有效负载中,例如IP地址以外的VPN客户端的某些标识符,那么数据包看起来如下:
|IP header| GRE Header | Custom Data +
我有两台debian机器位于不同的位置,并希望通过GRE在两个内部子网之间启用路由。
我的一般路由已经开始工作了,这意味着任何内部机器都会将流量引导到通过GRE连接的两台机器,并且流量也会通过隧道发送,但是当接收到该通信量时,它将不再被转发到本地子网。
我在这两台机器上的配置(不使用实际的IP):
东道国A (172.19.0.1):
ip tunnel add tun0 mode gre remote 172.20.0.1 local 172.19.0.1
ip addr add 10.10.10.1/24 dev tun0
ip link set tun0 up
东道B (172.20.0
我一直在到处寻找解决这个问题的方法,但却一无所获。我想知道是否可以通过OpenVPN连接转发诸如80之类的端口?我使用的是带有预装OpenVPN Debian 8发行版的OVH。客户端端口到服务器或类似的东西。任何帮助都将不胜感激。
编辑:这是一个糟糕的图表,但它总比没有好!单击以查看图表在关系图上,webserver在server1上,我的坏。
把这个改成了GRE隧道。我在两头架设隧道,但我不能用它。在服务器1上执行的命令:
ip tunnel add gre1 mode gre remote 66.xxx.xx.xx local 158.xx.xxx.xxx ttl 255
ip link
我正试图在两个Ubuntu之间配置一个gre隧道:第一个带有wlan1接口192.168.1.51,第二个使用wlan2 192.168.1.2。
PC1:
ip link add gre1 type gretap remote 192.168.1.2 local 192.168.1.51
ip link set dev gre1 up
gre1@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc pfifo_fast state
UNKNOWN mode DEFAULT group default qlen 1000
l
我就是这么做的。
服务器(公共互联网为222.x.x.x):
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
iptunnel add gre1 mode gre local 222.x.x.x remote 115.x.x.x ttl 255
ip add add 192.168.168.1/30 dev gre1
ip link set gre1 up
iptables -t nat -A POSTROUTING -s 192.168.168.0/30 -j SNAT --
使用轻型隧道允许将相同(隧道)设备用于许多目的地(除其他事项外)。对于vxlan/ipv4 4,它可以工作;
ip link add vxlan4 type vxlan dstport 4789 dev eth1 ttl 4 external
ip link set dev vxlan4 up
ip route replace 220.0.0.0/24 dev vxlan4 encap ip id 100 dst 192.168.2.221
但是相同的配置不适用于IPv6;
ip -6 link add vxlan6 type vxlan dstport 4789 dev eth1 ttl 4
我试图在linux中使用IPV6地址添加一个使用GRE作为报头的传输GUE隧道,如下所示:
ip -6 link add name gue1 type ip6gre remote $REMOTE_IPV6 local $LOCAL_IPV6 dev eth0 encap gue encap-dport 42424
$REMOTE_IPV6和$LOCAL_IPV6都是有效的IPV6地址。但是我不断地发现这个错误:
RTNETLINK answers: Invalid argument
如果我删除了encap gue,那么它不会给出这个错误,因为它会默认为none类型。然而,来自ip link h
我试图在GRE隧道上创建IP,但我没有这样的设备:
ip tunnel add gre0 mode gre remote 192.168.152.22 local 192.168.152.21 ttl 255
ioctl: No such device
我在内核中编译了GRE支持:
CONFIG_NET_IPGRE_DEMUX=y
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y
当通过gre0显示接口时,没有ifconfig -a接口,在这里我看到了所有可用的网络接口(也包括那些尚未升级的接口)。
我的内核版本是2.6.30.9,iproute2