以下问题只是我遇到问题的一个更大的解决scheme。 所有其他元素似乎工作到目前为止,所以我会尝试描述我有问题的小片。 我有一台linux机器, tun0 (隧道接口)和eth0 (女巫是我的默认网关)。 目标:我的目标是接收来自tun0的数据包,并将它们转发到默认网关。 所以实际上非常简单的NAT情况下,我想与tun0共享互联网,它伪造了物理接口。 Tun已经创build使用 sudo openvpn –mktun –dev tun0 –user USER sudo ip addr add 10.2.0.1/24 dev tun0 sudo ip link set tun0 up 所以我已经启动并运行了,我可以ping通它等等。另外,我有C ++应用程序,它连接到这个TUN设备,可以读取和写入它。 (fti:这是我遵循的教程: http : //backreference.org/2010/03/26/tuntap-interface-tutorial/ ) 我把一些正确的ICMP(ping)请求转到8.8.8.8到C ++的字节数组中。 现在,使用我的程序,我把它写到tun0设备上。 有ICMP请求 源(10.2.0.10) – 所以内核知道路由回(相同的子网) 目的地(8.8.8.8) – Google的DNS 正确的校验和等(在Wireshark / TShark中它正确地显示在tun0上) 那么,我有以下路线: iptables -F # flush iptables […]
我有多个使用相同的网关IP的VPN连接(我没有能力改变这一点,因为它是我的控制之外)。 这些VPN都提供对不同networking的访问,并且networking至less有一个或两个上行链路,因此在所有情况下都需要网关IP。 有了Linux,路由到networking,我可以简单地做: 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 等等 然后,Linux将把每个目标networking的stream量放到正确的接口上,然后转向正确的网关,因此每个接口的网关IP都是一样的。 我的问题是,我怎样才能在OpenBSD中实现这一点? 我试过了,失败了。 我的发现是,对于一个特定的目的地,我可以: 指定一个接口(如果目的地是直接在该链接上 – 这是不是我的情况) 指定一个网关IP,因为目的地不是直接在链路上 但我不知道如何指定两者。
Citrix Netscaler具有一个有趣的属性,将信息embedded发送到主机的TCP数据包中。 这个属性被回显给Netscaler,Netscaler可以使用它来确定这个虚拟服务器,主机和路由必须采用哪一个。 将专有信息回显到主机的能力具有有趣的应用。 Citrix Netscaler如何实现这个function(在哪里填充这些位)以及Netscaler(或类似设备)在数据包中的其他位置可以在理论上填充数据? 什么设备将(或不会)允许这个自定义数据通过不变?
自从一段时间以来,我一直在努力解决这个不容易重现的问题。 我正在使用Linux内核v3.1.0,有时路由到几个IP地址不起作用。 看来发生的事情是,内核并不是将数据包发送到网关,而是将目标地址视为本地,并尝试通过ARP获取其MAC地址。 例如,现在我的IP地址是172.16.1.104/24,网关是172.16.1.254: # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:1B:63:97:FC:DC inet addr:172.16.1.104 Bcast:172.16.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:230772 errors:0 dropped:0 overruns:0 frame:0 TX packets:171013 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:191879370 (182.9 Mb) TX bytes:47173253 (44.9 Mb) Interrupt:17 # route -n Kernel IP routing table Destination Gateway Genmask […]
在CentOS 5.7 64bit中是否有可能在另一个子网上的一个接口(例如eth0)上有第二个IP地址 – 别名接口configuration? 这里是eth0的原始configuration more etc/sysconfig/network-scripts/ifcfg-eth0 # Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.91.255 HWADDR=00:1D:09:FE:DA:04 IPADDR=192.168.91.250 NETMASK=255.255.255.0 NETWORK=192.168.91.0 ONBOOT=yes 这里是eth0:0的configuration more etc/sysconfig/network-scripts/ifcfg-eth0:0 # Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express DEVICE=eth0:0 BOOTPROTO=static BROADCAST=10.10.191.255 DNS1=10.10.15.161 DNS2=10.10.18.36 GATEWAY=10.10.191.254 HWADDR=00:1D:09:FE:DA:04 IPADDR=10.10.191.210 NETMASK=255.255.255.0 NETWORK=10.39.191.0 ONPARENT=yes 由于存在两个不同的网关,resolv.conf文件应该如何更改? 还需要其他更改吗?
我一直在使用Linux上的自定义路由表,我对“ip route”命令的某些文档和行为有些困惑。 看来唯一有效的值应该是0-255加上在/ etc / iproute2 / rt_tables中定义的名字: 255 local 254 main 253 default 0 unspec 这将自定义表1-252。 尝试使用未定义的表名会导致错误: $ ip route show table kermit Error: argument "kermit" is wrong: table id value is invalid 但是,似乎我可以使用远远高于255的数字而没有错误: $ ip route show table 1000 [no output] $ ip route add 10.10.10.0/24 dev eth0 table 1000 [no output] $ […]
我一直抨击我的头靠在墙上几天试图弄清楚这一点:我的ifconfig是: eth0 Link encap:Ethernet HWaddr 00:50:56:BB:XX:XX inet addr:192.168.36.132 Bcast:192.168.37.255 Mask:255.255.254.0 eth1 Link encap:Ethernet HWaddr 00:50:56:BB:XX:XX inet addr:116.xx.xx.xx Bcast:116.xx.xx.xx Mask:255.255.255.192 当我尝试添加一个静态路由来走出eth0,我得到以下错误: servername-test:/ # route add -net 10.248.12.0 netmask 255.255.255.240 gw 192.168.36.254 dev eth0 SIOCADDRT: Network is unreachable 我的默认网关是: servername-test:~ # netstat -anr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 116.xx.xx.xx 0.0.0.0 […]
在我的办公室里,有一台Windows Server 2008路由器192.168.16.1,这是我们的默认网关。 这通过我们的主要互联网连接发送数据。 这完美的作品。 192.168.16.1也有另一个目前闲置的互联网连接。 这连接到一个路由器,192.168.1.254,然后连接到我们的次要互联网连接。 我已经设置了路由和远程访问将192.168.1。*范围路由到我们的内部networking,并且我能够从IP地址为192.168.16.22的桌面ping 192.168.1.254。 我在同一个办公室里有一个非常密集的上传和下载任务,所以我想要build立一个静态路由,所以我不捆绑我们的主要互联网连接,并影响我的同事。 所以,我的计划是用一个静态路由来设置这个盒子。 在Linux机器上,我能ping通192.168.1.254,但是我无法在我们的数据中心中添加一条静态路由到目标服务器: $ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0 SIOCADDRT: No such process 从广泛的谷歌search,这个错误消息似乎表明,我无法访问192.168.1.254build立一个路线,但我可以ping它。 我试图添加一个静态路由到192.168.1.254,完美的工作,但这并没有解决问题(如预期)。 由于我的背景是软件开发,而不是系统pipe理,所以在networking方面我还不够先进。 我将非常感谢任何build议。 感谢您的时间。
我有一个CentOS 6.3盒的问题。 我们在服务器中有两个网卡(eth0和eth1),每个网卡都有一个分配了不同子网的ip,比如eth0:192.168.1.2/24(网关192.168.1.1)和eth1:192.168.2.2/24(网关192.168。 2.1)。 真正的ips是世界可路由的。 每个NIC连接到一个不同的交换机,但最后在一个路由器上结束。 在路由器上,这两个子网位于不同的VLAN中,NIC的端口没有标记,因此不会将vlan ID传递到服务器上。 现在在FreeBSD上,我只是把ips分配给每个NIC,它只是工作,两个IP都可以访问。 在CentOS上,我只能到达网关所在的IP作为默认路由。 我可以在相同的VLAN /子网内ping任何IP,但在外面是无法访问的。 当我对每个网关进行跟踪路由时,他们会看到相应的网卡,因为网关是在范围之内的。 但是在子网之外,我只能ping 192.168.1.2。 IPtables目前也不活跃。 要做到这一点,需要采取的行动是什么? 我search了几个小时,尝试了不同的方法,但它不会工作。 我有这种感觉,我失去了一些重要的东西,希望有一个简单的解决办法:-) 任何帮助表示赞赏谢谢! 斯科特 路由 # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 […]
我目前生活在一个封锁了许多网站的国家,并且与外部世界有着不可靠的networking连接。 我在Linux服务器上有两个OpenVPN端点(比如:vpn1和vpn2),用于规避防火墙。 我可以完全访问这些服务器。 这工作得很好,除了我的VPN连接上的高包丢失。 这个数据包丢失率根据时间的不同而在1%到30%之间变化,似乎相关性很低,大部分时间似乎是随机的。 我正在考虑build立一个家庭路由器(同样在Linux上),维护两个端点的OpenVPN连接,并将所有数据包两次发送到两个端点。 vpn2会将所有的数据包从家里发送到vpn1。 返回trafic将直接从vpn1发送到家,也通过vpn2发送。 +————+ | home | +————+ | | | OpenVPN | | links | | | ~~~~~~~~~~~~~~~~~~ unreliable connection | | +———-+ +———-+ | vpn1 |—| vpn2 | +———-+ +———-+ | +————+ | HTTP proxy | +————+ | (internet) 为了清楚起见,家中和HTTP代理之间的所有数据包将被复制并通过不同的path发送,以增加其中一个到达的机会。 如果两者都到达,第一个第二个可以默默丢弃。 带宽使用不是一个问题,无论是在家庭和端点方面。 vpn1和vpn2彼此接近(3ms ping)并具有可靠的连接。 任何关于如何使用Linux中的高级路由策略来实现的指针?