Ok, o captură de pachete îmi arată că adresa MAC destinație cu care pleacă
pachetele pe interfața dummy0 e aceeași cu adresa MAC sursă. Nu mi-e clar
dacă așa ar trebui să fie (să fie o particularitate a interfețelor dummy,
că oricum traficul ar trebui să fie routed mai departe), sau dacă e o parte
a problemei...


2014/1/13 Adrian Popa <[email protected]>

> Salutare.
>
> Încerc să configurez pe un server o clasă de test (publică, /30) pe o
> interfață dummy0 și să routez traficul către interfață prin server. Am
> câteva probe smokeping (curl) care trebuie să facă trafic cu sursă în
> /30-ul ăsta să văd cum se comportă niște resurse.
>
> Totul pare configurat ok, doar că  nu reușesc să fac trafic cu curl cu
> interfața dummy0 ca sursă (adresele ip au fost mascate, pentru protecția
> lor).
>
> Ce e configurat până acum:
>
> [root@crowbar ~]# cat /etc/redhat-release
> CentOS release 6.4 (Final)
> [root@crowbar ~]# ip addr show dummy0
> 6: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state
> UNKNOWN
>     link/ether 76:2e:08:63:da:6a brd ff:ff:ff:ff:ff:ff
>     inet 1.2.3.5/30 brd 1.2.3.7 scope global dummy0
>     inet6 fe80::742e:8ff:fe63:da6a/64 scope link
>        valid_lft forever preferred_lft forever
> [root@crowbar ~]# ip route show
> default via 5.6.7.8 dev eth0  proto static
> 1.2.3.4/30 dev dummy0  proto kernel  scope link  src 1.2.3.5
> 5.6.7.0/24 dev eth0  proto kernel  scope link  src 5.6.7.120  metric 1
>
> [root@crowbar ~]# cat /proc/sys/net/ipv4/ip_forward
> 1
> [root@crowbar ~]# cat /proc/sys/net/ipv4/conf/eth0/rp_filter
> 0
> [root@crowbar ~]# cat /proc/sys/net/ipv4/conf/dummy0/rp_filter
> 0
>
> iptables are permiturile necesare pe forward, dar am încercat și cu el
> dezactivat și e același lucru.
>
>
> Comanda pe care trebuie să o rulez e:
> curl --interface dummy0 www.google.com
>
> iar într-un strace se termină așa:
> ...
> setsockopt(3, SOL_SOCKET, SO_BINDTODEVICE, "dummy0\0", 7) = 0
> bind(3, {sa_family=AF_INET, sin_port=htons(0),
> sin_addr=inet_addr("1.2.3.5")}, 16) = 0
> getsockname(3, {sa_family=AF_INET, sin_port=htons(45178),
> sin_addr=inet_addr("1.2.3.5")}, [16]) = 0
> fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
> connect(3, {sa_family=AF_INET, sin_port=htons(80),
> sin_addr=inet_addr("173.194.44.49")}, 16) = -1 EINPROGRESS (Operation now
> in progress)
> poll([{fd=3, events=POLLOUT|POLLWRNORM}], 1, 49997^C <unfinished ...>
> [root@crowbar ~]#
>
> pe interfața dummy0 o captură tcpdump îmi arată că "pleacă" pachetele syn:
>
> 08:38:45.690031 IP 1.2.3.5.45178 > 173.194.44.49.http: Flags [S], seq
> 1063168827, win 14600, options [mss 1460,sackOK,TS val 2624613509 ecr
> 0,nop,wscale 7], length 0
>
> în schimb, pachetele nu ies pe eth0.
>
> Nu m-am prins ce îmi scapă. De ce mai am nevoie ca pachetele să fie
> routate de mașina mea?
>
> Mulțumesc!
>
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui