AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[ip-forwarding](server)

Martin Hope
jwbensley
Asked: 2021-11-18 13:15:07 +0800 CST

不能将多个网络命名空间链接在一起

  • 0

问题陈述

使用以下配置,在默认/主网络命名空间和名为ns1.

该配置还创建了第二个 veth 对: veth2 在 netns 中ns1, veth3 在 netns 中ns2,这加入ns1了ns2创建链:default netns-veth0 <-> veth1-ns1-veth2 <-> veth3-ns2。

sudo ip link add veth0 type veth peer name veth1
sudo ip -6 addr add CCFF::0/127 peer CCFF::1/127 dev veth0
sudo ip link set up dev veth0

sudo ip netns add ns1
sudo ip link set veth1 netns ns1
sudo ip -n ns1 -6 addr add CCFF::1/127 peer CCFF::0/127 dev veth1
sudo ip -n ns1 link set up dev veth1
sudo ip -n ns1 -6 route add default via CCFF::0

sudo ip link add veth2 type veth peer name veth3
sudo ip link set veth2 netns ns1
sudo ip -n ns1 -6 addr add CCFF::2/127 peer CCFF::3/127 dev veth2
sudo ip -n ns1 link set up dev veth2
sudo ip -n ns1 -6 route add CCFF::/64 via CCFF::3

sudo ip netns add ns2
sudo ip link set veth3 netns ns2
sudo ip -n ns2 -6 addr add CCFF::3/127 peer CCFF::2/127 dev veth3
sudo ip -n ns2 link set up dev veth3
sudo ip -n ns2 -6 route add default via CCFF::2

sudo ip -6 r add CCFF::/64 via CCFF::1

从默认的 netns 我可以 ping 同一个 netns 中的 veth0。从默认的 netns 我可以 ping veth1 和 veth2,它们都在ns1. 从默认的 netns 中,我无法识别ns2.

如果我按如下方式扩展更改,通过添加 veth4 inns2和 veth5 inns3我有同样的问题。我可以从任何接口 ping 到 中ns1的任何接口ns2,但无法到达 中的任何接口ns3。

sudo ip link add veth4 type veth peer name veth5
sudo ip link set veth4 netns ns2
sudo ip netns exec ns2 ip -6 addr add CCFF::4/127 peer CCFF::5/127 dev veth4
sudo ip netns exec ns2 ip link set up dev veth4
sudo ip netns exec ns2 ip -6 route add CCFF::/64 via CCFF::5

sudo ip netns add ns3
sudo ip link set veth5 netns ns3
sudo ip netns exec ns3 ip -6 addr add CCFF::5/127 peer CCFF::4/127 dev veth5
sudo ip netns exec ns3 ip link set up dev veth5
sudo ip netns exec ns3 ip -6 route add default via CCFF::4

看来我只能在直接“相邻”/“连接”的网络中 ping 一个接口到我正在 ping 的那个。我无法通过一系列网络名称空间 ping 通。路由全部有效;默认 netns 可以 ping 任何接口,ns1但不能进一步,interfaces inns1可以 ping 默认 netns 中的任何接口,ns2但不能 ping 任何接口ns3,并且ns3可以 ping 任何东西,ns2但不能 pingns1默认 netns 之外的任何接口。

这是网络命名空间的限制吗?

故障排除

IPv6 转发已启用,ip6tables 只是设置为“全部允许”,我不确定还要检查什么。

$ip -6 r
ccff::1 dev veth0 proto kernel metric 256 pref medium
ccff::/127 dev veth0 proto kernel metric 256 pref medium
ccff::/64 via ccff::1 dev veth0 metric 1024 pref medium
fe80::/64 dev veth0 proto kernel metric 256 pref medium

$sudo ip -n ns1 -6 r
ccff:: dev veth1 proto kernel metric 256 pref medium
ccff::/127 dev veth1 proto kernel metric 256 pref medium
ccff::3 dev veth2 proto kernel metric 256 pref medium
ccff::2/127 dev veth2 proto kernel metric 256 pref medium
ccff::/64 via ccff::3 dev veth2 metric 1024 pref medium
fe80::/64 dev veth1 proto kernel metric 256 pref medium
fe80::/64 dev veth2 proto kernel metric 256 pref medium
default via ccff:: dev veth1 metric 1024 pref medium

$sudo ip -n ns2 -6 r
ccff::2 dev veth3 proto kernel metric 256 pref medium
ccff::2/127 dev veth3 proto kernel metric 256 pref medium
ccff::5 dev veth4 proto kernel metric 256 pref medium
ccff::4/127 dev veth4 proto kernel metric 256 pref medium
ccff::/64 via ccff::5 dev veth4 metric 1024 pref medium
fe80::/64 dev veth3 proto kernel metric 256 pref medium
fe80::/64 dev veth4 proto kernel metric 256 pref medium
default via ccff::2 dev veth3 metric 1024 pref medium

$sudo ip -n ns3 -6 r
ccff::4/127 dev veth5 proto kernel metric 256 linkdown pref medium
default via ccff::4 dev veth5 metric 1024 linkdown pref medium

$cat /proc/sys/net/ipv6/conf/all/forwarding 
1

$cat /proc/sys/net/ipv6/conf/default/forwarding 
1

$sudo ip6tables-save
# Generated by ip6tables-save v1.8.4 on Wed Nov 17 22:02:48 2021
*filter
:INPUT ACCEPT [76565:173401906]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [50440:6536664]
COMMIT
# Completed on Wed Nov 17 22:02:48 2021

$lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:    20.04
Codename:   focal

$uname -a
Linux l13-ubuntu 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Tue Oct 26 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
linux ipv6 network-namespace ip-forwarding
  • 2 个回答
  • 249 Views
Martin Hope
fiedl
Asked: 2021-10-08 05:46:51 +0800 CST

使用网关主机通过 IPSec 隧道路由流量

  • 1

考虑到strongswan wiki,这似乎是一个标准问题,但我无法让它正常工作。

网络布局

网络布局

本地站点 ( clientand gateway) 在我的控制之下,远程站点 ( remote gatewayand remote server) 不在。IPSec 隧道是一个拆分隧道,因此只有对10.10.0.0/16子网的请求通过 IPSec 隧道发送。

目标

我希望与client进行通信remote server,例如创建一个ssh或一个smb连接。

我已经做过的

  • gateway我已经在和之间建立了 IPSec 隧道remote gateway。

  • 我已在以下位置启用 ip 转发gateway:

    sysctl net.ipv4.ip_forward=1
    
  • 我在以下位置创建了一个 NAT gateway:

    iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT
    iptables -t nat -A POSTROUTING -j MASQUERADE
    
  • 在client我已经通过以下方式路由流量gateway:

    ip route del default
    ip route add default via 192.168.144.4
                           # 192.168.144.4 is the gateway
    

有什么作用

  • IPSec隧道已建立且稳定。
  • 登录后,我gateway可以成功。我也可以。我可以。pingremote gatewayremote serverpingclientping google.com
  • 登录后client,我可以,ping google.com我可以。随着on the我看到from the正在通过.pinggatewaytcpdump icmpgatewayping google.comclientgateway

什么不起作用,但

我不能ping从它remote server的clientIP 中获取。

client$ ping -c 1 10.10.12.7
PING 10.10.12.7 (10.10.12.7): 56 data bytes

--- 10.10.12.7 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss

从tcpdump开始gateway,看起来ping是发送的,但不是通过隧道转发的:

gateway$ tcpdump icmp
13:19:18.122999 IP 192.168.144.7 > 10.10.12.7: ICMP echo request, id 15, seq 0, length 64
13:19:18.123038 IP gateway > 10.10.12.7: ICMP echo request, id 15, seq 0, length 64
13:19:18.127534 IP ac5.nue3.m-online.net > gateway: ICMP net 10.10.12.7 unreachable, length 36
13:19:18.127556 IP ac5.nue3.m-online.net > 192.168.144.7: ICMP net 10.10.12.7 unreachable, length 36

与ac5.nue3.m-online.net本地站点的互联网服务提供商一样,我认为数据包不是通过 IPSec 隧道路由的,而是gateway通过remote server. (如果我将 IPSec 隧道设为完整隧道而不是拆分隧道,我会得到相同的结果。)

任何帮助或见解将不胜感激!

编辑:ipsec statusall在gateway

gateway > ipsec statusall
Status of IKE charon daemon (strongSwan 5.8.2, Linux 5.4.0-88-generic, x86_64):
  uptime: 7 minutes, since Oct 08 08:18:24 2021
  malloc: sbrk 3112960, mmap 0, used 1081456, free 2031504
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
  loaded plugins: charon test-vectors ldap pkcs11 tpm aesni aes rc2 sha2 sha1 md5 mgf1 rdrand random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl gcrypt af-alg fips-prf gmp curve25519 agent chapoly xcbc cmac hmac ctr ccm gcm ntru drbg curl attr kernel-netlink resolve socket-default connmark farp stroke updown eap-identity eap-aka eap-md5 eap-gtc eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap eap-tnc xauth-generic xauth-eap xauth-pam tnc-tnccs dhcp lookip error-notify certexpire led addrblock unity counters
Listening IP addresses:
  192.168.144.4
Connections:
example-ipsec:  %any...vpn1.example.com  IKEv2, dpddelay=300s
example-ipsec:   local:  [example@example.com] uses pre-shared key authentication
example-ipsec:   remote: [example@example.com] uses pre-shared key authentication
example-ipsec:   child:  dynamic === 0.0.0.0/0 TUNNEL, dpdaction=clear
Security Associations (1 up, 0 connecting):
example-ipsec[1]: ESTABLISHED 7 minutes ago, 192.168.144.4[example@example.com]...<public-ip-of-the-remote-gateway>[example@example.com]
example-ipsec[1]: I: 9d7c74f670bbda86_i* c12b3b4a236b7018_r, pre-shared key reauthentication in 2 hours
example-ipsec[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
example-ipsec{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cf66ad72_i af3c9348_o
example-ipsec{1}:  AES_CBC_256/HMAC_SHA2_256_128, 442 bytes_i (4 pkts, 434s ago), 485 bytes_o (6 pkts, 433s ago), rekeying in 38 minutes
example-ipsec{1}:   10.10.102.235/32 === 0.0.0.0/0

这是在ipsec statusall将fromgateway发送到. from不会更改输出中的“字节” 。输出中的“字节”对应于我从 发送到.pingclientremote serverpinggatewaypinggatewayremote server

编辑:/etc/ipsec.conf在gateway:

# /etc/ipsec.conf

conn example-ipsec
  left = %defaultroute
  leftsourceip = %config
  leftid = "example@example.com"
  right = vpn1.example.com
  rightid = "example@example.com"
  rightsubnet = 0.0.0.0/0
  leftfirewall = yes
  installpolicy = yes
  keyexchange = ikev2
  type = tunnel
  auto = start
  leftauth = psk
  rightauth = psk
  dpdaction = clear
  dpddelay = 300s
iptables ipsec ip-forwarding
  • 1 个回答
  • 316 Views
Martin Hope
Alan
Asked: 2021-07-29 04:31:19 +0800 CST

使用 Ubuntu 作为接入点时,DNS 查找不起作用

  • 1

我有一个 Ubuntu 系统,通过有线连接到路由器,并通过 iPhone 连接到 4G 互联网。我希望能够将其他客户端连接到路由器并通过 4G 链接访问互联网。我已按照此处的步骤iptables 在两个接口之间转发,它成功路由 ping 请求,并且似乎连接到站点,前提是我使用站点的 IP 地址而不是“名称”。我迷失的地方是,一旦我连接到路由器,并在 4G 上将 nslookup 与 DNS 服务器一起使用,就会返回正确的结果,但是如果没有明确给出服务器地址,它似乎无法做到这一点。我已经将此服务器设置为路由器中的DNS服务器,并尝试在客户端上设置它,但都不起作用。有没有人有任何建议我可能会错过什么?

ubuntu domain-name-system ip-forwarding
  • 1 个回答
  • 153 Views
Martin Hope
DR. Congo
Asked: 2021-02-06 14:04:46 +0800 CST

在 Google Cloud Platform 上使用 pfSense 的 OpenVPN 是否可以进行 IP 转发?

  • 0

我有一个在 GCP 上使用 pfSense 机器(子网 xx0.0)的场景,具有 10 个站点到站点的 IPSEC vpn 工作正常,但 OpenVPN 不是,困难在于通过 OpenVPN 网络(xx10.0)路由数据包和在 GCP 端访问 LAN。

我已经按照教程并试图找到解决此问题的方法,我认为 IP Forward 是罪魁祸首,因为它默认情况下已停用,但现在我正在寻找一种替代方法来避免处理另一台机器的创建。

另一个问题是:有没有办法在 GCP 中分离和重新附加外部和内部 IP?

我知道我可以在不杀死机器的情况下在 AWS 中更改 IP 转发,IP 操纵也是如此,但在 GCP 中我不知道该怎么做。(也许我不能?)

openvpn google-compute-engine pfsense ip-forwarding
  • 1 个回答
  • 244 Views
Martin Hope
Nikša Baldun
Asked: 2020-11-06 23:29:46 +0800 CST

启动时未为以太网接口启用内核 IP 转发

  • 0

要在 Debian 启动时启用 IP 转发,请将以下内容放入 /etc/sysctl.conf:

net.ipv4.ip_forward=1

我已经完成了数千次,并且它始终可以正常工作。但是有一台 Debian Buster 机器,它为除以太网接口之外的所有接口启用了转发。在 /proc/sys/net/ipv4/conf/ 我有以下内容:

dr-xr-xr-x 1 root root 0 Nov  6 08:07 all
dr-xr-xr-x 1 root root 0 Nov  6 08:07 default
dr-xr-xr-x 1 root root 0 Nov  6 07:53 enp0s25
dr-xr-xr-x 1 root root 0 Nov  6 08:07 lo
dr-xr-xr-x 1 root root 0 Nov  6 08:07 tun-mega

所有文件的内容都是1,除了enp0s25,它是0。所以在我手动启用之前转发不起作用。我尝试在 /etc/sysctl.conf 中专门启用它:

net.ipv4.conf.enp0s25.forwarding=1

但这没有什么区别。我注意到文件 enp0s25 具有不同的时间戳,因此这可能是了解正在发生的事情的关键。

debian-buster ip-forwarding
  • 1 个回答
  • 402 Views
Martin Hope
Bojan Vukasovic
Asked: 2020-11-02 03:14:57 +0800 CST

静态路由 - 未使用网关

  • 1

我正在尝试使用网关地址10.10.121.10通过这台机器转发 TCP 流量。我想让来自我的机器的流量超过10.10.121.10并且该机器10.200.32.107认为它来自10.10.121.10而不是我的机器。似乎无论我在 Windows 中设置什么 - 它都不关心设置网关地址。

以下是未设置静态路由的状态:

在此处输入图像描述

这是我所期望的 - 没有设置路由10.200.32.107,我无法到达该 IP。

但是当我在这里添加这个静态路由时

在此处输入图像描述

目的地是可到达的,但不能通过10.10.121.10。似乎这个Gateway地址在这里无关紧要——即使我在这里放随机IP(例如我试过1.1.1.1)它也可以工作。

我期望的是流量按照图像上的绿色步骤定向:

  1. 我想到达10.200.32.107,所以使用路线10.200.32.0 255.255.255.0
  2. 网关是10.10.121.10,所以使用路由10.10.121.10 255.255.255.255
  3. 网关就是192.168.24.1这样去那里并将流量转发到10.10.121.10TAP-Windows 适配器 V9 (VPN)
routing static-routes ip-forwarding
  • 2 个回答
  • 677 Views
Martin Hope
Polizi8
Asked: 2020-09-20 15:59:54 +0800 CST

NFTables:是否可以在不伪装的情况下转发流量?

  • 0

我有一个远程服务器(B),它将某些传入流量转发到不同服务器的另一个端口(A,dest)。
使用“伪装”,我只能看到来自转发服务器 (B) 的流量,是否可以看到来自原始来源 (C) 的流量?如果我将“伪装”替换为“接受”,我将无法再到达目的地 (A) 的 8080 端口。

草图:

C -> B:25 -> A:8080
# A receives C requests as if B made them
# Unfortunately this breaks some implementations like SPF

NFTables 配置:

# define destination address
define dest = 10.0.0.2

# table for smtp forwarding
table ip smtp {
 chain pre {
  type nat hook prerouting priority -100
  tcp dport 25 dnat to $dest:8080
 }
 chain post {
  type nat hook postrouting priority 100
  ip daddr $dest masquerade
 }
}
smtp port-forwarding nftables masquerade ip-forwarding
  • 1 个回答
  • 1294 Views
Martin Hope
Rodrigo Ortiz
Asked: 2020-03-18 23:19:44 +0800 CST

如何使用 nginx 将 http 转发/重定向到公共 IP?

  • 1

我有一个域 example.com 的 DNS A 记录指向公共 ip xxxx
我需要从该服务器获取所有 http 和 https 请求并将该流量转发到另一个公共 ip yyyy
关于如何实现这一点的任何想法?
我一直在阅读有关 Nginx 重定向的信息,但我不知道这是否是正确的方法以及是否可以完成。
PD。我有一个指向 yyyy 的 www.example.com 的 DNS A 记录,问题出在 example.com,因为我无法将 DNS 记录更改为指向 ip yyyy,因为这会干扰来自具有 xxxx 地址的服务器的邮件服务.

debian redirect nginx forwarding ip-forwarding
  • 2 个回答
  • 375 Views
Martin Hope
rul3s
Asked: 2017-02-24 03:38:51 +0800 CST

两个接口之间的第 3 层 IP 转发/NAT

  • 1

我有一个奇怪的配置,让我们看看你是否可以给我一些建议:)

我有两个网络(10.X/24 和 20.X/24),它们之间由一台 linux 机器连接。这个 linux 有两个接口,每个接口都连接到其中一个网络。连接到这些网络的设备没有网关,我无法更改,也无法安装 vpn 等附加软件……我也无法更改子网掩码。

我想要的是通信每个网络的一个设备,我想配置一个类似 IP FORWARDING 但改变 SRC 和 DST 的东西,我认为这更像是一个 NAT。这样做的想法是,如果我从 20.50(来自网络 A 的设备)ping 到 20.254(不存在),它会将这个数据包重定向到 10.50,将 src 更改为 10.254。这有点像虚拟IP。

主要思想是做这个翻译:

输入 eth0(网络 A)SRC 20.50 DST 20.254 --> 输出 eth1 SRC 10.254 DST 10.50

输入 eth1(网络 B)SRC 10.50 DST 10.254 --> 输出 eth0 SRC 20.254 DST 20.50

请记住,地址 10.254 和 20.254 不存在,我使用它们与其他网络联系,因为我无法设置网关来询问未知网络,也无法添加静态路由。

让我们看看是否有人可以给我最好的方法来做到这一点。

谢谢!

nat iptables ip-forwarding
  • 1 个回答
  • 1804 Views
Martin Hope
rul3s
Asked: 2016-12-22 08:58:54 +0800 CST

连接我无法更改其 netconfig 的不同网络的客户端

  • 0

我有两个客户

Android 手机做热点 (192.168.43.1/24) 另一个具有静态 ip 的设备 (192.168.1.10/24) 我无法更改任何人的网络配置,首先是因为 android 热点内部是硬编码的(可以使用 root,但它不是有效的解决方案)和其他暂时无法更改 IP 的工业设备。

我需要做的是在它们之间进行通信,例如简单的 ping。我知道使用网络掩码这很容易,但正如我所说,不可能更改网络配置的任何内容。

你会如何解决这个问题?我的想法是在它们之间放置另一个设备,例如树莓派并捕获到 network1 的 ip 并将它们修改为 network2 的 ip。这是一个可能的解决方案吗?

谢谢

redirect iptables forwarding ip-forwarding
  • 1 个回答
  • 88 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve