Articles of iproute2

在存在的接口上创buildvpn隧道

家伙。 我正在testing我们公司的防火墙产品。有一个问题困扰我。 “防火墙”作为网桥模式有eth1接口。我想模拟客户端远程访问“防火墙”使用ipip(或其他)隧道。 我的问题是我可以创build一个名为“eth1”的现有接口的“防火墙”隧道。 因为有一些iptables过滤设置使用eth1。 我使用下面的这个命令,但发生错误。 ip tunnel add eth1 mode ipip remote "$IPIPSERVER" ip link set dev eth1 up ip addr add "$LOCALADDR" peer "$PEERADDR" dev eth1 [root ~]# ip tunnel add eth1 mode ipip remote 2.2.2.2 add tunnel tunl0 failed: File exists 错误也许是因为eth1已经存在,我想。 当使用一个未使用的接口名称如“vpn_tap”使用上面的命令时,我创build了一个ipip隧道。 8: vpn_tap@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN […]

多广域网ipv4转发Ubuntu

我想build立一个双以太网Ubuntu的机器作为多WAN负载均衡路由器与ipv4转发和NAT为我的内部networking。 我search了几天,但只发现了一些教程如何设置负载平衡或 ipv4 frowarding。 但是他们中没有一个把两者结合起来 我的设置是: eth1: #external network Network: 192.168.69.0/24 IP: 192.168.69.70 Gateway1: 192.168.69.1 Gateway2: 192.168.69.3 Gateway3: 192.168.69.4 eth0: # internal network Network: 192.168.20.0/24 IP: 192.168.20.20 所以计算机应该连接到三个网关,设置负载平衡,然后使用这个表转发NAT到内部networking,所以我可以使用它作为我的内部networking的网关。 我没有计划如何设置这样一个复杂的路由。 有人能帮助我吗? 在此先感谢迈克尔

如何添加第二个路由表为一个特定的接口后来被绑定?

我有2个接口。 192.168.1.9和192.168.1.4。 我使用以下命令为192.168.1.4添加了第二个路由表。 ip route add 192.168.1.0/24 dev eth1 src 192.168.1.4 table rt2 ip route add default via 192.168.1.100 dev eth1 table rt2 因此我提到了networking和网关。 然后我进入这个 ip rule add from 10.10.0.10/32 table rt2 这使得来自eth1的所有传出stream量都使用表rt2。 这工作正常,但现在我想结合这两个接口。 因为在重新启动所有的路由表rt2得到重置我需要添加这些命令后,债券了。 但是,当为传出stream量添加第三个命令时,我需要eth0的ip地址。 是否有可能以其他方式做到这一点?

如何将本地启动的stream量路由到不同于NATstream量的网关?

我想通过不同的接口/到不同的网关(VPN)路由所有在本地路由器上“本地生成”的stream量,而不是通过本机进行NAT转换的所有stream量。 任何想法如何实现? 我想过用iptables来标记包,但我认为有一个更简单的解决scheme?

如何为单个unix用户创build透明的虚拟networking和端口重映射?

我有一个生产Web应用程序平台(节点,nginx,elasticsearch,redis)处理机密数据。 应用程序最初使用Ansibleconfigurationpipe理进行部署,然后打包为文件系统映像,以便通过RPM进行部署。 银行法规要求不同的数据集只能被不同的unix用户访问,因此整个应用程序需要在同一个物理服务器上多次安装unix用户账号。 天真的做法会导致多个用户进程尝试连接到同一个端口。 一种select是生成多个RPM,为每个用户定制。 或者编写一个RPM部署脚本,试图grep通过文件系统映像和regexpreplaceconfiguration文件中的端口号。 我想避免这种做法。 这个问题是关于networking命名空间,虚拟networking接口,可能iproute / iptables。 理想情况下,我希望每个用户允许他们的所有进程绑定到他们的默认端口,并将这些进程透明地映射到外部networking接口上的用户特定端口范围(即端口80 – > 10080)。 通过使用Docker或虚拟机和虚拟networking路由可以达到同样的效果,但这些作为安全风险已被禁止。 使用networking名称空间,如何将命令行级别的进程绑定到特定的networking名称空间? 这可以设置为特定的二进制文件的默认值? 属于特定用户的所有进程是否可以自动绑定到特定的networking名称空间? 是否有可能创build一个像jail一样的chroot,或者一组环境variables,以便用户进程只能看到他们分配的虚拟networking接口? 理想情况下,不需要root权限? 非常感谢任何想法或指针?

SSH需要通过不同于VPN的接口

我希望有人能指出我正确的方向。 我有一个Ubuntu 16的服务器,在启动时连接到OpenVPN服务器,它的configuration文件通过VPN连接将所有stream量路由到路由 – 除了SSH之外,这是理想的。 我想这里需要什么是我需要build立一个22通信的路由去通过eth0接口,但我发现所有的指南发送所有通过eth0接口的stream量,击败了OpenVPN的目的。 我所使用的指南总是让我失去与服务器的总连接,并强制重新启动以恢复连接。 这实在不是我的力量! 任何想法在哪里寻找这个或任何指针将非常感激。

路由问题与iproute2,两个网关和两个networking接口

我正在尝试设置一个3层的iptables防火墙,有两个接口。 我的防火墙有两个物理接口:eno0,连接到我的ISP的网关,eno1,连接到我的本地网关。 networking设置如下所述: ISP gateway: aaa.aaa.127.17 | | | subnet: aaa.aaa.127.16/30 | | | eno0: aaa.aaa.127.18 —————————– | | | my firewall | | | —————————– | eno1: 172.20.4.1 | | | subnet: 172.20.4.0/30 | | | 172.20.4.2 —————————– | | | my local gateway | | | —————————– | bbb.bbb.137.1 | | | subnet: […]

ppp突然networking断开影响路由表

我有Linux的盒子,有一个脚本,根据需要为我创build路由表条目, 由于具体的要求,我期望通过两个networking接口ppp0和ppp1隔离我的stream量。 为此,我使用iproute2支持的多个路由表。 所以,我的ppp1默认网关是在一个路由表而不是我的主。 当突然的networking断开/重新连接发生时,我的问题就出现了。 接口在ifconfig中恢复,但是内核已经在其他路由表中删除了我的路由条目,这样就搞乱了我的隔离。 我需要如何避免/补救这个问题的build议。 我对这个问题进行了很多研究,似乎找不到合适的答案。 到目前为止,我唯一的select是监视路由表,并在必要时重新input缺失的路由。

服务器上的多个默认路由

当玩configurationkeepalived,我设法得到我的虚拟机(下面的ip route输出)的以下设置: default via 10.91.100.145 dev eth0 src 10.91.100.148 default via 10.91.100.145 dev eth0 src 10.91.100.146 10.0.0.0/8 via 10.91.100.145 dev eth0 第一行是在keepalived的virtual_routes部分configuration的,第二个是使用ip route add命令ip route add ( ip route add首先完成)。 所以我的问题是: 这是一个有效的configuration? 一条特定的路线总是优先于另一条路线? 当从这个虚拟机对一些外部IP进行curl时,我从tcpdump的输出中看到ip 10.91.100.148正在被使用 – 这是随机的,还是可以假定先前的行有优先权? 如果我尝试添加第三个类似的路由使用ip route add我得到一个错误(所有IP地址已经添加到机器): # ip route add default via 10.91.100.145 dev eth0 src 10.91.100.150 RTNETLINK answers: File exists […]

Linuxstream量转向,火星源

我试图拦截路由中的IPstream量使用Linux,iptables和源路由。 我的设置有4个命名空间 主机命名空间 命名空间“neta”10.112.0.8 命名空间“netb”10.112.0.16 命名空间“防火墙” 命名空间“neta”和“netb”被configuration为将接口伸入“主机”命名空间和设置的路由,以便它们可以相互ping通。 命名空间“防火墙”有veth和gre接口伸入“主机”命名空间。 L3交通转向设置 简短的实验描述: 确认ping neta到netb(ping 10.112.0.16)(检查) 安装源路由将neta的ICMP转移到防火墙(Check) 从neta到netb确认ping仍然有效(失败) 想法是,转移到防火墙的ICMP请求将从防火墙反弹回来,并继续其向netb的旅程。 然而,观察到的行为有点令人惊讶 – 来自neta的ICMP请求被转移到防火墙,反弹回主机命名空间,在iptables -t mangle -A PREROUTING -j LOG ,然后作为火星人被丢弃。 IN = firewall-tun OUT = MAC = SRC = 10.112.0.16 DST = 10.112.0.8 LEN = 84 TOS = 0x00 PREC = 0x00 TTL = 62 ID = 7131 DF […]