我的网络是这样设置的。 http://docs.google.com/Doc?docid=0AZ1YxuLE4djaZGhqN2s1NmRfMjhjNjc0Ym1meg&hl=en
一句话:我有一台机器(Calcium,运行 Arch Linux),它有两个网络接口。eth0 连接到路由器,并且是千兆位。Eth1 直接连接到超过 10 兆位的大学网络。路由器的上行也连接到大学网络,也是10兆。
目前(我相信)Calcium 上的所有流量都通过 eth0,通过路由器,无论是内部的还是外部的。(我如何确认这一点?)
理想情况下,发往内部网络 (192.168.10.0/24) 的流量将通过 eth0 传输到路由器,以及它要去的任何地方。所有其他流量都应该通过 eth1。
我正在设置一个 Debian 机器作为 4 个子网的路由器。为此,我在连接 LAN 的 NIC 上定义了 4 个虚拟接口 ( eth1)。
eth1 Link encap:Ethernet HWaddr 94:0c:6d:82:0d:98
inet addr:10.1.1.1 Bcast:10.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::960c:6dff:fe82:d98/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6026521 errors:0 dropped:0 overruns:0 frame:0
TX packets:35331299 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:673201397 (642.0 MiB) TX bytes:177276932 (169.0 MiB)
Interrupt:19 Base address:0x6000
eth1:0 Link encap:Ethernet HWaddr 94:0c:6d:82:0d:98
inet addr:10.1.2.1 Bcast:10.1.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x6000
eth1:1 Link encap:Ethernet HWaddr …Run Code Online (Sandbox Code Playgroud) 我的家庭服务器有两个主要接口,eth1(一个标准的互联网连接)和tun0(一个 OpenVPN 隧道)。我想iptables用来强制 UID 1002 拥有的本地进程生成的所有数据包通过 退出tun0,所有其他数据包通过 退出eth1。
我可以轻松标记匹配的数据包:
iptables -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 11
Run Code Online (Sandbox Code Playgroud)
现在,我想在 POSTROUTING 链(可能是 mangle 表的)中放置一些规则来匹配标有 11 的数据包并将它们发送到tun0,然后是匹配所有数据包并将它们发送到 的规则eth1。
我找到了 ROUTE 目标,但这似乎只是重写了源接口(除非我读错了)。
iptables 有这个能力吗?我是否必须弄乱路由表(通过ip route或仅使用旧route命令)?
编辑:我想也许我应该提供更多信息。我目前没有其他iptables规则(虽然我可能会创建一些规则来执行不相关的任务)。此外,输出ip route为:
default via 192.168.1.254 dev eth1 metric 203
10.32.0.49 dev tun0 proto kernel scope link src 10.32.0.50
85.17.27.71 via 192.168.1.254 dev eth1
192.168.1.0/24 dev eth1 …Run Code Online (Sandbox Code Playgroud) 我多次遇到此错误,但尚未找到有关错误含义或导致问题的原因的解释。
我没有发布我的配置或我尝试添加的特定路线,因为我不想有人告诉我这次我做错了什么,我想了解错误的含义(什么是RTNETLINK 开始),以及此错误的常见/已知原因是什么,以便我可以在这次和下次自己解决它。
# ip route add .....
RTNETLINK answers: No such process
Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能在运行内部跟踪路由时显示Dell Powerconnect 2848交换机。这将有助于诊断问题,并使查看问题发生的位置变得更加容易。
根据数据表,此特定交换机具有第 2 层和第 3 层感知能力。我不完全确定这意味着什么。
这可能吗?
我明白如私有地址10.0.0.0/8,172.16.0.0/12并且192.168.0.0/16是不可路由的。但是,究竟是什么阻止了这些地址的可路由性?ISP 是否实施了阻止这些网络路由的 ACL,还是更高层的东西?
另外,这个设计是由 IANA 设计的吗?
我最近遇到了一种情况,我需要将同一子网上的两个 IP 地址分配给一台 Linux 主机,以便我们可以运行两个 SSL/TLS 站点。我的第一种方法是使用 IP 别名,例如使用 eth0:0、eth0:1 等,但我们的网络管理员有一些相当严格的安全设置,从而粉碎了这个想法:
在交换机配置上可能有解决这些问题的方法,但为了与网络管理员保持良好的关系,我试图找到另一种方法。拥有两个网络接口似乎是下一个合乎逻辑的步骤。幸运的是,这个 Linux 系统是一个虚拟机,所以我能够轻松添加第二个网络接口(无需重新启动,我可能会添加 - 非常酷)。几次击键后,我启动并运行了两个网络接口,并且都从 DHCP 中提取了 IP 地址。
但问题来了:网络管理员可以(在交换机上)看到两个接口的 ARP 条目,但只有我提出的第一个网络接口会响应 ping 或任何类型的 TCP 或 UDP 流量。
经过大量的挖掘和戳,这就是我想出的。它似乎有效,但对于看起来应该很简单的事情来说,它似乎也需要做很多工作。有什么替代想法吗?
步骤 1:在所有接口上启用 ARP 过滤:
# sysctl -w net.ipv4.conf.all.arp_filter=1
# echo "net.ipv4.conf.all.arp_filter = 1" >> /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)
来自 …
在 Linux 中,命令
ip address add [...]
Run Code Online (Sandbox Code Playgroud)
有一个scope论点。手册页说范围是“此地址有效的区域范围”。遵循法律范围列表:
这个“有效性”的“领域”指的是什么?
我是否遗漏了什么,但是否无法通过 CloudFormation 将路由添加到随 VPC 预配的默认路由表?
routing amazon-web-services amazon-route53 amazon-cloudformation
在多宿主 Linux 机器上,如何找出将使用哪个网络接口将数据包发送到特定主机?我需要以编程方式执行此操作,而我不想自己解析和解释路由表。