有人能解释一下这个命令在传输和接收多播流量方面的确切含义吗
route add -net 224.0.0.0 netmask 240.0.0.0 eth0
Run Code Online (Sandbox Code Playgroud) 我的目的是通过多个 NAT 后面的远程机器路由所有 Internet 流量。ISP 的 NAT 服务器不在我的控制之下。我确实控制了我自己的 NAT 服务器,它是一个本地路由器。服务器和客户端都运行 Windows 7(客户端 - x64 和服务器 - x86)。
为此,我设置了 SoftEther VPN 服务器并通过 SoftEther VPN 客户端连接到它。服务器配置为使用 VPN Azure,因为它无法在我的 ISP 的 NAT 中“打孔”。这排除了在客户端使用内置 IPSec/L2TP VPN 的可能性,因为它不理解 VPN Azure。
然而,通过运行一些测试,我发现,通过这种设置,我客户端的 Internet 流量仍然通过本地 Internet 网关。我研究了客户端上的路由表,发现 SoftEther 只为一些远程 LAN IP 设置了路由,而不是所有 Internet IP。我试图通过手动添加新路线来解决这个问题:
route add 0.0.0.0 mask 0.0.0.0 0.0.0.0 metric 2 if 22
Run Code Online (Sandbox Code Playgroud)
其中 22 - 是 SoftEther 客户端创建的接口。但是,服务器似乎丢弃了所有未寻址到远程 LAN 的数据包(我不确定这一点)。
如何配置 SoftEther 客户端为所有 IP 和 SoftEther 服务器自动创建路由以通过远程网关路由所有 Internet 数据包?或者是否有针对此类任务的替代解决方案?
PS 我试过使用 NAT32,但它似乎以某种方式与服务器上的 Internet 连接混合在一起,使其无法供本地用户使用。
我想了解什么是本地路由表。
如果我使用以下命令在其中添加一个随机地址:
sudo ip route add to local <any-ip-address> dev <network interface>
Run Code Online (Sandbox Code Playgroud)
现在我可以 ping 这个地址,但是 ifconfig 列出的接口没有使用这个地址。
例子:
$ ping 192.168.22.22 -w 1
PING 192.168.22.22 (192.168.22.22) 56(84) bytes of data.
--- 192.168.22.22 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
$ sudo ip route add to local 192.168.22.22 dev wlp2s0
$ ping 192.168.22.22 -w 1
PING 192.168.22.22 (192.168.22.22) 56(84) bytes of data.
64 bytes from 192.168.22.22: icmp_seq=1 ttl=64 time=0.018 ms
64 bytes from 192.168.22.22: icmp_seq=2 …Run Code Online (Sandbox Code Playgroud) 我有多个 VPN 连接使用相同的网关 IP(我无法更改它,因为它不受我的控制)。这些 VPN 都提供对不同网络的访问,并且网络至少在上游一两跳,因此在所有情况下都需要网关 IP。使用 Linux,要路由到网络,我可以简单地执行以下操作:
ip route add $destination_1 via $gateway_ip dev $interface_1
ip route add $destination_2 via $gateway_ip dev $interface_2
ip route add $destination_3 via $gateway_ip dev $interface_3
Run Code Online (Sandbox Code Playgroud)
等等。
然后 Linux 会将每个目标网络的流量放置到正确的接口上,前往正确的网关,因此每个接口的网关 IP 是否相同都没有关系。
我的问题是,如何在 OpenBSD 中实现这一目标?我尝试过但失败了。我的发现是,对于特定目的地,我可以:
但我不知道如何指定两者。
我最近注册了 SMTP2GO (smtpcorp)。我已经在其中一台 EC2 服务器上设置了 postfix 并将其指向我的 smtp2go 帐户:
relayhost = [smtpcorp.com]:2525
Run Code Online (Sandbox Code Playgroud)
现在我所有的邮件都通过 SMTP2GO 路由,但问题是,由 cron 作业等生成的 1000 多封电子邮件正在使用电子邮件地址发送到 SMTP2GO:
root@ec2-46-51-151-256.eu-west-1.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
我的问题是,阻止所有这些“本地”电子邮件被路由到 SMTP2GO 的最佳方法是什么?
谢谢
马丁
我的主要.cf:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = ec2-46-51-151-256.eu-west-1.compute.amazonaws.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = ec2-46-51-151-256.eu-west-1.compute.amazonaws.com, localhost.eu-west-1.compute.internal, localhost
relayhost = [smtpcorp.com]:2525
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:account:password
smtp_sasl_security_options = noanonymous …Run Code Online (Sandbox Code Playgroud) 我有 ip route add 的问题。令人惊讶的是,我可以添加路由然后更改它,但我不能直接添加它:
# ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
RTNETLINK answers: No such process
Run Code Online (Sandbox Code Playgroud)
但:
# ip route add 192.168.0.0/16 dev eth0
# ip route change 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
Run Code Online (Sandbox Code Playgroud)
我的接口文件是:
iface lo inet loopback
auto eth0
iface eth0 inet static
address 178.xxx.xxx.xxx
netmask 255.255.255.192
network 178.xxx.xxx.xxx
broadcast 178.xxx.xxx.xxx
gateway 178.xxx.xxx.xxx
auto eth0:1
iface eth0:1 inet static
address 192.168.1.101
netmask 255.255.0.0
Run Code Online (Sandbox Code Playgroud)
我有点失落,我必须说。我可以添加然后更改,但不明白为什么它分两步工作而不是直接工作并不令人满意。我一直在阅读手册页而不理解。
在答案的帮助下更新:
我现在在eth0和上有一个网关eth0:0,但是由于我希望除 之外的所有流量都192.168.0.0/16标记为来自我的178.xxx.xxx.xxx地址,因此我添加了一个路由规则。也许eth0 …
我是不是做错了什么,或者 AWS VPC ec2 实例是否无法访问任何 AWS 托管服务 (s3/sns/sqs),而路由表中没有到 Internet 网关的公共路由?
我在这里被告知CloudFormation 中的 Aws vpc 默认路由表,AWS VPC默认路由表默认没有公共路由,因此它可以“保护”VPC。
但是,如果我没有公共路由就无法访问 AWS 服务......那只会违背目的,因为我实际上会向所有路由表添加公共路由?
我正在尝试packets根据他们的进行路由source address,并添加了以下内容:
# ip rule add from 10.10.10.0/16 dev eth0 table foobar
# ip route add default via 100.100.100.1 dev eth0 table foobar
Run Code Online (Sandbox Code Playgroud)
然而,测试路由给了我错误的via地址:
# ip route get 4.3.2.1 from 10.10.10.1
4.3.2.1 from 10.10.10.1 via 100.0.0.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
为什么这不被尊重?
这是我的常客 routes
# ip route list
default via 100.0.0.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
和
# ip route show table foobar
default via 100.100.100.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
和
# ip rule list
0: from all lookup local
32765: from …Run Code Online (Sandbox Code Playgroud) 我有一堆带有多个(3)网卡和相关网络接口的 Linux 服务器。我被一个奇怪的路由问题绊倒了,应该使用默认路由的流量不是,结果路由失败。这是我的路由表的样子:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.31.96.1 0.0.0.0 UG 0 0 0 em3
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 em1
10.31.96.0 0.0.0.0 255.255.252.0 U 0 0 0 em3
10.31.96.0 0.0.0.0 255.255.252.0 U 0 0 0 em4
# ip route list
default via 10.31.96.1 dev em3 proto static
10.0.0.0/8 dev em1 proto kernel scope link src 10.0.0.100
10.31.96.0/22 dev em3 proto kernel scope link src 10.31.97.100
10.31.96.0/22 …Run Code Online (Sandbox Code Playgroud)