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
