我不明白我的处境。我有一个网络实验室就像照片上一样。我不能从192.168.1.2中选择192.168.5.1,那么192.168.5.1就像默认网关一样。
Linux# ip route
default via 192.168.4.2 dev eth1 proto static src 192.168.4.1 metric 90
default via 192.168.5.2 dev eth2 proto static src 192.168.5.1 metric 91
还有逆流。那么默认网关是192.168.5.2,我不能平192.168.4.1。但在这两种情况下,我都可以在接口上看到ic
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
我有10.1.1.1和10.2.2.2绑定到eth0。
# ip address show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 04:01:05:ff:42:01 brd ff:ff:ff:ff:ff:ff
inet 10.2.2.2/24 brd 10.2.2.255 scope global eth0
inet 10.1.1.1/32 scope global eth0
我必须配置NAT,并在连接到Linux盒的两个网关之间手动拆分internet流量。
如果每个网关都有特定的IP地址,则没有问题。我可以通过iproute2做到这一点:
ip route add default via 192.168.1.1 dev eth1
ip route add 2.3.4.5 via 192.168.0.1 dev eth0
ip route add 8.9.4.5 via 192.168.0.1 dev eth0
但我的问题太简单了!我无法更改网关地址和网络ids。我只需要使用两个来自Linux机器的地址相同的互联网网关,内核3.2.0和更高版本。
我正在尝试根据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
但是,测试路由会给出错误的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
为什么这件事得不到尊重?
这是我的常规routes
# ip r
如果Linux机器中的两个NIC使用外部电缆直接连接,那么是否有可能通过该电缆在这两个NIC之间启动IP连接?
我用IP地址eth2和eth3分别配置了10.10.123.2/24和10.10.123.3/24两个NIC。然后,我从local表中删除了与这两个接口关联的所有规则:
# ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
# ip route show table local | grep -E "eth2|eth3
我正在使用一个具有蜂窝接口的LTE路由器。
我有一个专用局域网(/24掩码),所以我使用NAT来转换我的私有子网,以便使用我的提供者分配给我的蜂窝接口的外部公共IP。这个IP是动态的,下面是我使用的内容:
ip access-list extended NAT
permit ip 192.168.0.0 0.0.0.255 any
ip nat inside source list NAT interface Cellular0 overload
ip route 0.0.0.0 0.0.0.0 Cellular0 100
interface Cellular0
ip nat outs
在Linux上,可以使用AF_PACKET创建一个套接字来接收来自套接字的原始数据,并在应用程序中进行IP过滤。但是OSX中的手册页没有这样的内容:
PF_LOCAL Host-internal protocols, formerly called PF_UNIX,
PF_UNIX Host-internal protocols, deprecated, use PF_LOCAL,
PF_INET Internet version 4 protocols,
PF_ROUTE In
我正在向远程发送UDP数据包,我想知道将用于此的本地接口的IP。在一个壳中,我会运行:
ip route get 192.168.1.54
它的回答是:
192.168.1.12 dev wlan0 table local_network src 192.168.1.1
我对获得src:192.168.1.1感兴趣。
我可以这样调用exec:
Runtime.getRuntime().exec("ip route get 192.168.1.54")
但这似乎不太优雅,我不知道哪些设备支持这种功能(它可以在其中一些设备上工作,而另一些设备则返回一个错误代码"1“,尽