Простая Маршрутизация VE-venet-{VE,HN} [message #8389] |
Sat, 18 November 2006 13:54 |
saimon
Messages: 85 Registered: November 2006
|
Member |
|
|
Доброго времени суток!
Хочется давать публичный доступ к сервисам в VE.
К сервису приставить по админу,
который будет сидеть в далекой rfc1938 сети и надзирать =).
# HN
RHEL4/p4-2.8/1G
kernel 2.6.9-023stab032.1-smp
ifs: lo,venet0, eth0: ext_ip_pool
!Все VE c rfc1938 адресами, кто ходит наружу тому SNAT
#VE-vpn
Centos-i386-minimal
openvpn-2.0.7+shorewall-3.2.5
ifs:
1. lo
2. tun11 10.9.0.6/32
3. venet0
4. venet0:0 192.168.1.1/32
Нужно: [admin_lan:rfc1938] <--> [VE_serviceN:rfc1938]
и в картинках:
как пакетики ходят в VE
(VE->) |VE-vpn| -venet0- |HN| -SNAT-to-ext_ip:eth0- [GW_ISP] -- inet
(VE<-) inet -- [GW_ISP] -- eth0 -- |HN| -venet0- |VE-vpn|
Связь [admin_lan:rfc1938] <--> [VE-vpn] есть на все адреса интерфейсов в VE-vpn.
Но что-то где-то застревает или на выходе VE-vpn:venet0 или
на входе в HN:venet0, те пакетик приходит в tun11 роутится на VE-serviceN:ip что видно в
VE-vpn# tcpdump -i venet0 -ll -nn net VE_lan,
но если сделать на
HN# tcpdump -i venet0 -ll -nn net VE_lan
или в VE-serviceN то ничего не видно.
Очень похоже, что (исходящие VE или входящие HN):venet0 не нравятся пакетики
с адресом источника != адресу VE-vpn:venet0 и они молча дропаются.
Это подтверждает правило:
удаленная сеть админа 192.168.0.0/24
адрес на VE-vpn:venet0 192.168.1.1
VE-vpn# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o venet0 -j SNAT --to 192.168.1.1
после которого [admin_lan:rfc1938] <--> [VE-serviceN]
начинает работать, но тогда теряется адрес источник(неприемлимо).
Можно ли настроить, простую маршрутизацию без использования SNAT/iptables?
[Updated on: Sat, 18 November 2006 14:03] Report message to a moderator
|
|
|
|
Re: Простая Маршрутизация VE-venet-{VE,HN} [message #8465 is a reply to message #8422] |
Mon, 20 November 2006 14:28 |
saimon
Messages: 85 Registered: November 2006
|
Member |
|
|
# HN
[alexey@hn ~]$ /sbin/ip a l
2: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:13:20:17:1b:5a brd ff:ff:ff:ff:ff:ff
inet 64.246.5a.x/23 brd 64.246.5b.255 scope global eth0
inet 64.246.5b.y/32 scope global eth0
inet 64.246.5c.z/32 scope global eth0
inet 192.168.1.254/32 scope global eth0
1: venet0: <BROADCAST,POINTOPOINT,NOARP,UP> mtu 1500 qdisc noqueue
link/void
[alexey@hn ~]$ /sbin/ip r l
192.168.1.114 dev venet0 scope link src 64.246.5a.x
192.168.1.1 dev venet0 scope link src 64.246.5a.x
192.168.1.102 dev venet0 scope link src 64.246.5a.x
192.168.1.103 dev venet0 scope link src 64.246.5a.x
192.168.1.106 dev venet0 scope link src 64.246.5a.x
192.168.1.107 dev venet0 scope link src 64.246.5a.x
192.168.1.105 dev venet0 scope link src 64.246.5a.x
192.168.1.108 dev venet0 scope link src 64.246.5a.x
192.168.1.109 dev venet0 scope link src 64.246.5a.x
64.246.5a.0/23 dev eth0 proto kernel scope link src 64.246.5a.x
169.254.0.0/16 dev eth0 scope link
default via 64.246.5a.d dev eth0
# VE
[alexey@hn ~]$ sudo /usr/sbin/vzctl enter 101
entered into VE 101
-bash-3.00# ip l
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP> mtu 1500 qdisc noqueue
link/void
5: tun11: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 10
link/[65534]
-bash-3.00# ip r l
10.9.0.5 dev tun11 proto kernel scope link src 10.9.0.6
192.168.0.0/24 via 10.9.0.5 dev tun11
172.16.1.0/24 via 10.9.0.5 dev tun11
191.255.255.0/24 dev venet0 scope host
192.168.9.0/24 via 10.9.0.5 dev tun11
169.254.0.0/16 dev venet0 scope link
default via 191.255.255.1 dev venet0
Дальше venet0 в VE101 пакеты не идут. Например если одновременно запустить tcpdump в HN & VE, то в VE все ок, а на стороне HN тишина.
|
|
|
|
|
|
|
|
|
|
|