我正在通过调查一个VPN来慢慢学习更多关于IP路由和ip工具集的知识。 当我启动一个特定的VPN客户端后, ip route show显示的(新)路由之一是 128.0.0.0/1 via 10.144.1.8 dev ppp0 proto none metric 1 我想知道,这是什么意思 ? 我相信我明白(但纠正我错在哪里) 128.0.0.0/1是CIDR “匹配左边的第一位的所有地址” via 10.144.1.8表示将所有的stream量(目标地址匹配为128.0.0.0/1 ) 128.0.0.0/1到IP#= 10.144.1.8 dev ppp0意味着使用interface = ppp0 (推测使用点对点协议 )将所有stream量路由到该主机。 proto none表示没有路由协议适用于这条路由。 不确定在这种情况下会有什么影响。 metric 1意味着“ 优先select此路由到任何其他路由,但metric = 0的路由除外”。 所以, IIUC ,这个路由有这样的语义:“如果我收到一个包含最左边一位的目标IP地址的数据包,我将把它发送到IP = 10.144.1.8上,我的接口= ppp0 … 除非我得到一个路由匹配相同的目标IP地址, metric=0 ,在这种情况下,我将使用其他路由。 那是对的吗? 如果不是,我错在哪里? 如果正确:VPN客户端为什么要设置此路由? 这可能是为了什么用途呢?
有了ifconfig,我们可以用下面的方法改变networking掩码: ifconfig eth0 netmask <new netmask> 我们如何用命令ip做到这一点? 我知道ifconfig被弃用,这主要是为什么我想做iproute2的方式。 我的目标是将我们当前的networking从一个/ 24个扩展到一个/ 21个,而不会干扰我们的服务器上运行的服务。 作为一个解决方法,我现在简单地添加一个新的路由到/ 21,最终计划的networking重启将官方化这个改变。 它的工作原理,但我想知道是否有更好的方法。 谢谢,
我有两台机器。 一个运行拱Linux和另一个运行的Fedora。 arch使用iproute2。 所以我需要从路由iproute2转换。 这个命令将默认的接口设置为ppp0。 我已经search了文档,但我仍然没有线索。 在iproute2中如何做到这一点 route add default ppp0
我的networking中有一个Centos服务器充当NAT。 该服务器有一个外部(稍后的ext1)接口和三个内部(稍后int1,int2和int3)。 出口stream量来自用户通过int1和MASQUERADE通过ext1后。 入口stream量来自ext1,MASQUERADE,并根据静态路由通过int2或int3。 | ext1 | xxxx/24 +———|———————-+ | | | Centos server (NAT) | | | +—|——|—————|—–+ | | | int1 | | int2 | int3 10.30.1.10/24 | | 10.30.2.10/24 | 10.30.3.10/24 ^ vv 10.30.1.1/24 | | 10.30.2.1/24 | 10.30.3.1/24 +—|——|—————|—–+ | | | | | | | vv | | ^ -Traffic […]
我想限制Linux盒子的传入(下载)速度。 configuration的盒子和stream量来源(HTTP服务器)都连接到同一个交换机,如果没有configuration整形,下载速度是30MBps 我使用tc根据http://lartc.org/lartc.html ########## downlink ############# # slow downloads down to somewhat less than the real speed to prevent # queuing at our ISP. Tune to see how high you can set it. # ISPs tend to have *huge* queues to make sure big downloads are fast # # attach ingress policer: /sbin/tc qdisc add […]
我需要知道如何列出所有路由表的ID。 例如,我可以运行: ip rule add fwmark 2 table 104 ip route add dev eth0 default via 192.168.3.7 table 104 ip rule list调用显示: 0: from all lookup local 32765: from all fwmark 0x2 lookup 104 32766: from all lookup main 32767: from all lookup default 而对ip route show table 104的呼叫显示: default via 192.168.3.7 dev eth0 如果我然后调用ip […]
我正在尝试configuration一个为几百个用户提供Internet的路由器。 该路由器configuration有4个基本电缆上行链路,全部使用DHCP,容量大约为10/1 Mbps。 路由器有3个接口: eth0连接到pipe理networking,192.168.A.0 / 24(可以忽略) eth1连接到用户networking,192.168.B.0 / 23 eth2连接到VLAN交换机,调制解调器位于4个不同的VLAN上。 IP路由,IP规则和iptables的细节可以在这里find : http : //pastebin.com/Qi3KBR79 VLAN编号为24〜27,对应的路由表中编号相同。 每个路由表都包含eth0,eth1和eth2.X的链接级别条目,以及DHCP服务器给出的默认路由。 请注意,有可能是2个调制解调器在同一个子网上。 我使用CONNMARK和IP规则来标记连接并将它们redirect到调制解调器特定的路由表。 我也有一个dhclient挂钩,负责在DHCP租约更新时更新这些辅助路由表。 对于INPUT和FORWARD,缺省的iptables策略是DROP,而对于OUTPUT则是ACCEPT。 请注意,ip规则部分将fwmarks 3和4redirect回到调制解调器1和2,但这是暂时的,因为其他2个调制解调器仍然在传递来自用户的stream量(我们不能完全断开它们…) 现在所有这些说,这个解决scheme有点作用,但展品约50%的数据包丢失,无论select的上行链路: – /有人能告诉我什么是我做错了? 我一直在这个问题上捅了好几个小时,现在变得非常沮丧… 在此先感谢 – 托马斯
我的最终目标是在Linux中实现虚拟路由和转发(VRF)。 似乎被广泛接受的方法是设置不同的networking名称空间(每个单独的路由表一个),并为每个名称空间/路由表运行一个Quagga或BIRD守护进程。 我没有结婚这个方法,所以如果有人有任何其他的build议,请让我知道。 有问题的机器在VMware工作站12中运行Debian 7(wheezy)。它一直是一个路由器,并且在我开始重新configuration之前已经成功路由了一段时间,所以我知道一般的路由设置是好的。 目前的问题是我无法通过我的networking名称空间进行通信。 也就是说,veth1(这是在我的名字空间如下)只能ping veth0,没有别的。 veth1和它下面的networking之间没有networking通信 – 甚至没有ARP。 如果我不知道更好的话,我会说有人从交换机上拔下了电缆(但在虚拟环境中很难做到这一点)。 是的,我检查了vmnets设置正确。 路由器在恢复到旧configuration时工作。 这只是在这个新的configuration不起作用。 任何人有任何想法如何获得veth1沟通? 甚至是完全不同的方法来获得VRF在Linux上的工作? 提前致谢。 我build立了新的configuration如下: 添加命名空间 ip netns add nsx 添加虚拟接口 ip link add veth0 type veth peer name veth1 创造一座桥梁 ip link add name vbr0 type bridge 将eth1和veth1添加到桥 ip link set dev eth1 master vbr0 ip link set dev veth1 […]
我有一个Raspberry Pi(运行Raspbian)与三个networking接口(一个以太网和两个USB无线网卡)。 我想实现的是这样的:我有两个WAN连接到互联网(DSL + Cable),我想设置RasPi的方式是提供两个默认网关。 我想让我的本地networking中的特定客户端使用一个或另一个网关。 以下是我想要实现的概述: 通常情况下,你不可能有两个默认的网关,但是我发现,使用iproute2你可以做到这一点,并使用多个路由表(从而默认网关),这是由规则应用。 (请参阅下面的configuration的详细信息) 以太网接口(192.168.10.1)连接到连接本地networking(192.168.10.0/24)的交换机。 接口wlan0(192.168.178.199)连接到第一个WLAN路由器(DSL)(192.168.178.1)。 接口wlan1(192.168.0.199)连接到第二个路由器(电缆)(192.168.0.1)。 这是我的/etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet static address 192.168.10.1 netmask 255.255.255.0 iface wlan0 inet static address 192.168.178.199 netmask 255.255.255.0 wpa-ssid "ALICE" wpa-psk "yyyyyyyy" iface wlan1 inet static address 192.168.0.199 netmask 255.255.255.0 wpa-ssid "BOB" wpa-psk "xxxxxxxx" 出于某种原因,为两个wlan接口设置auto并不是很好,大多数情况下,至less其中一个不会得到“提升”,所以现在我把它们放到rc.local中。 当我启动的时候,两个wlan接口都是up的,连接到他们的wlan,都可以ping他们的路由器(例如ping 192.168.178.1 -I […]
一个服务器在不同的公共networking中有3个ifaces,2个内部(eth1 / 2),一个外部(eth0)。 有一个服务(openvpn)不能绑定到一些IP / ifaces,只有全部或一个,但我需要它只接受连接(UDP)的内部ifaces。 默认的gw是通过外部的。 我有一个工作的设置与服务的两个实例绑定到每个内部iface的IP和iproute2路由集( ip route add xxx table x , ip rule add from <IP> table x )。 是否有可能将第二个内部iface(eth2)上的传入连接DNAT到第一个内部iface(eth1)的IP并通过相同接口(eth2)进行响应? 在这种情况下,不需要运行服务的第二个实例,并保持2个相同的configuration,只需要监听IP的不同。 问题是,如果我(使用DNAT)将eth2上的传入连接的目标IP更改为eth1的IP,则基于from <IP>的IP规则将不起作用。 或者,更好地说,它将使服务通过eth1而不是eth2使用eth1的默认gw来回答。 是否有可能对DNATed“会话”(UDP)的所有传出数据包进行高效设置标记,所以我可以在ip规则中使用fwmark? 任何其他解决scheme的主要问题?