Dear Kevin,

and just one more thing.
I am beginner with iptables, but your POSTROUTING doesn't seem good as well.

You made a POSTROUTING in the case of VM-s what you manage (they can see
the internet), but there is no source change on IP packets which goes in
the direction of your VM-s. Your current rule works only in two direction,
if any source from any direction is in the 10.0.0.0/24 LAN.

I think you should add there a second postrouting rule.
And for POSTROUTING you should use -i and -o flags instead of -s, because I
am not sure if iptables understands which IP address should be the source
when it makes the masquerade.

But first of all, I think you should check the hardware flow control
setting.

- Tamas Fekete


2018-08-29 21:24 GMT+02:00 Fekete Tamás <fek...@gmail.com>:

> Dear all,
>
> the explanation of Reco seems quite good for me.
> If you use load generator on your mobile device it could be the reason.
>
> What happens if you use a normal download for a large file? Do you get the
> same result?
>
> If yes, I advise to look at your hardware configuration like flow control.
> This line doesn't seem good for me (mind the text in bold):
>
> "Aug 28 15:50:34 ovh-1 kernel: e1000e: enp1s0 NIC Link is Up 100 Mbps
> Full Duplex, *Flow Control: None"*
>
> See this link:
> https://access.redhat.com/documentation/en-us/red_hat_
> enterprise_linux/5/html/tuning_and_optimizing_red_hat_
> enterprise_linux_for_oracle_9i_and_10g_databases/sect-
> oracle_9i_and_10g_tuning_guide-adjusting_network_
> settings-flow_control_for_e1000_network_interface_cards
>
> Let's see what happens if you reconfigure your network device.
>
> - Tamas Fekete
>
> 2018-08-29 20:58 GMT+02:00 Reco <recovery...@gmail.com>:
>
>>         Hi.
>>
>> Please do not top post. This is a mailing list, not a corporate e-mail
>> spamfest.
>>
>> On Wed, Aug 29, 2018 at 01:18:52PM -0500, Nicholas Geovanis wrote:
>> > Hi, I've never used OVH. How certain are you that the e1000 network
>> driver
>> > is the correct one?
>> > Under VMWare/ESX the network driver choice can be crucial, for example.
>>
>> 1) You cannot run Xen in VSphere/ESXi.
>>
>> 2) No sane public provider will use VSphere/ESXi for hosting, the costs
>> can dim a budget of a small country.
>>
>> 3) e1000e may be bad, but vmxnet3 will make oom-killer an everyday
>> reality. SR-IOV is a way to go.
>>
>>
>> Now, to the issue at hand.
>>
>> > On Wed, Aug 29, 2018 at 6:30 AM Kevin DAGNEAUX <
>> kevin.dagne...@fiitelcom.fr>
>> > wrote:
>>
>> Please note that you seem to have "link down" first:
>>
>> > > Aug 28 15:50:32 ovh-1 kernel: e1000e: enp1s0 NIC Link is Down
>>
>> and 'malfunctioning' netfilter rules next.
>>
>> > > Aug 28 15:50:32 ovh-1 kernel: DROPED packets IN=enp1s0 OUT=
>> > > MAC=ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ SRC=YY.YY.YY.YY
>> > > DST=XX.XX.XX.XX LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=2229 DF PROTO=TCP
>> > > SPT=9610 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
>>
>> Observe 'RST' flag at each and every 'DROPPED' message.
>> I find it highly unlikely that whatever PHP load test you did it
>> involved sending mass amounts of TCP Reset packets.
>>
>> It seems that the following scenario has much higher probability:
>>
>> 1) You fired your load generator application.
>>
>> 2) Your hosting provided immediately got a signal of your typical DOS
>> attack (not to be confused with DDOS) coming from that seems to be a
>> typical mobile phone.
>>
>> 3) DDOS protection kicked in:
>>
>> a) Isolating your server from the network to stop DOS.
>>
>> b) Sending forged TCP RST to your server to break existing connections
>> *and* termninate unneeded Apache workers (or whatever you have there).
>>
>> c) Banning the initiator of DOS (i.e. you on mobile network) temporarily.
>>
>> 4) Real network outage of your server was 2 seconds (time between "link
>> down" and "link up").
>>
>> Reco
>>
>> >
>> >
>> > > Hi,
>> > >
>> > > I've a server in OVH datacenter, on this server i've 7 VMs, on 1 of
>> them
>> > > in run Apache.
>> > > To debug a slow upload (who was ~2Mo/s instead 12Mo/s) i've installed
>> an
>> > > HTML5/PHP speed test application.
>> > > When i use this app, i've no problem in general, but, when a make a
>> speed
>> > > test from a source who have more bandwith than the server (the server
>> is
>> > > limited at 100Mb/s by OVH and i make the test from a 4G+ network
>> where i've
>> > > ~150Mb/s of bandwith), in this case, the DOM0 lost his network
>> connection
>> > > (like the ethernet cable is unplugged) until i reboot the server.
>> > >
>> > > When i check the syslog of DOM0, i see that iptables drop incomming
>> packet
>> > > on port 80 instead of routing them to the VM.
>> > >
>> > > This is my iptables script i use on DOM0 :
>> > >
>> > > #!/bin/bash
>> > >
>> > > IPT="/sbin/iptables"
>> > >
>> > >
>> > > ############################################################
>> ###############################
>> > > # Filter
>> > >
>> > > ## Remise par defaut des regles
>> > > $IPT -t filter -P INPUT   ACCEPT
>> > > $IPT -t filter -P FORWARD ACCEPT
>> > > $IPT -t filter -P OUTPUT  ACCEPT
>> > >
>> > > ## On purge les tables
>> > > $IPT -t filter -F
>> > >
>> > > ## On autorise lo
>> > > $IPT -t filter -A INPUT -i lo -j ACCEPT
>> > >
>> > > ## On ouvre les ports nécéssaires au DOM0
>> > > $IPT -t filter -A INPUT -m tcp -p tcp --dport 22      -j
>> > > ACCEPT                                         ## SSH
>> > > $IPT -t filter -A INPUT -m udp -p udp --dport 53      -j
>> > > ACCEPT                                         ## DNS
>> > > $IPT -t filter -A INPUT -m icmp -p icmp --icmp-type 8 -j
>> > > ACCEPT                                         ## Ping
>> > > $IPT -t filter -A INPUT -s 10.0.0.0/24 -j ACCEPT
>> > >
>> > > ## On accepte si la connexion est déjà établie
>> > > $IPT -t filter -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
>> > >
>> > > ## On log ce qui n'a pas été matché par les règles précédente
>> > > $IPT -A INPUT -p tcp -j LOG --log-prefix "DROPED packets "
>> > >
>> > > ## On bloque tout le reste
>> > > $IPT -t filter -P INPUT DROP
>> > >
>> > >
>> > > ############################################################
>> ################################
>> > > # Nat
>> > >
>> > > ## Remise par defaut des regles
>> > > $IPT -t nat -P PREROUTING  ACCEPT
>> > > $IPT -t nat -P POSTROUTING ACCEPT
>> > > $IPT -t nat -P INPUT       ACCEPT
>> > > $IPT -t nat -P OUTPUT      ACCEPT
>> > >
>> > > ## On purge
>> > > $IPT -t nat -F
>> > >
>> > > ### Routage des ports entrants pour la VM "mails"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22030 -j DNAT
>> --to
>> > > 10.0.0.30:22                       ## SSH
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 25    -j DNAT
>> --to
>> > > 10.0.0.30:25                       ## SMTP
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 587   -j DNAT
>> --to
>> > > 10.0.0.30:587                      ## SMTP SUBMISSION
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 465   -j DNAT
>> --to
>> > > 10.0.0.30:465                      ## SMTP SSL
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 143   -j DNAT
>> --to
>> > > 10.0.0.30:143                      ## IMAP
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 993   -j DNAT
>> --to
>> > > 10.0.0.30:993                      ## IMAP SSL
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 9930  -j DNAT
>> --to
>> > > 10.0.0.30:9930                     ## IMAP SSL
>> > >
>> > > ### Routage des ports entrants pour la VM "sql"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22020 -j DNAT
>> --to
>> > > 10.0.0.20:22                       ## SSH
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 3306  -j DNAT
>> --to
>> > > 10.0.0.20:3306                     ## MariaDB
>> > >
>> > > ### Routage des ports entrants pour la VM "files"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22010 -j DNAT
>> --to
>> > > 10.0.0.10:22                       ## SSH
>> > >
>> > > ### Routage des ports entrant pour la VM "web"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22040 -j DNAT
>> --to
>> > > 10.0.0.40:22                       ## SSH
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 80    -j DNAT
>> --to
>> > > 10.0.0.40:80                       ## HTTP
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 443   -j DNAT
>> --to
>> > > 10.0.0.40:443                      ## HTTPS
>> > >
>> > > ### Routage des ports entrants pour la VM "monitor"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22050 -j DNAT
>> --to
>> > > 10.0.0.50:22                       ## SSH
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 850 -j DNAT
>> --to
>> > > 10.0.0.50:80                 ## HTTP
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 855 -j DNAT
>> --to
>> > > 10.0.0.50:443                        ## HTTPS
>> > >
>> > > ### Routage des ports entrants pour la VM "comm"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22060 -j DNAT
>> --to
>> > > 10.0.0.60:22                       ## SSH
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 5222  -j DNAT
>> --to
>> > > 10.0.0.60:5222                     ## Jabber
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 5269  -j DNAT
>> --to
>> > > 10.0.0.60:5269                     ## Jabber
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 5280  -j DNAT
>> --to
>> > > 10.0.0.60:5280                     ## Jabber
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 5281  -j DNAT
>> --to
>> > > 10.0.0.60:5281                     ## Jabber
>> > >
>> > > ### Routage des ports entrants pour la VM "secure"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22070 -j DNAT
>> --to
>> > > 10.0.0.70:22                       ## SSH
>> > >
>> > > ### Routage des ports entrants pour la VM "net"
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 22080 -j DNAT
>> --to
>> > > 10.0.0.80:22                       ## SSH
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 8388  -j DNAT
>> --to
>> > > 10.0.0.80:8388                     ## shadowsocks
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p udp --dport 8388  -j DNAT
>> --to
>> > > 10.0.0.80:8388                     ## shadowsocks
>> > > $IPT -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 11094 -j DNAT
>> --to
>> > > 10.0.0.80:1194                     ## OpenVPN
>> > >
>> > > ### Autorise les VMs a accéder a internet
>> > > $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -j  MASQUERADE
>> > >
>> > > And this is what i have in syslogs :
>> > >
>> > > Aug 28 15:50:32 ovh-1 kernel: DROPED packets IN=enp1s0 OUT=
>> > > MAC=ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ SRC=YY.YY.YY.YY
>> > > DST=XX.XX.XX.XX LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=2226 DF PROTO=TCP
>> > > SPT=9610 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
>> > > Aug 28 15:50:32 ovh-1 kernel: DROPED packets IN=enp1s0 OUT=
>> > > MAC=ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ SRC=YY.YY.YY.YY
>> > > DST=XX.XX.XX.XX LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=2227 DF PROTO=TCP
>> > > SPT=9610 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
>> > > Aug 28 15:50:32 ovh-1 kernel: DROPED packets IN=enp1s0 OUT=
>> > > MAC=ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ SRC=YY.YY.YY.YY
>> > > DST=XX.XX.XX.XX LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=2228 DF PROTO=TCP
>> > > SPT=9610 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
>> > > Aug 28 15:50:32 ovh-1 kernel: DROPED packets IN=enp1s0 OUT=
>> > > MAC=ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ SRC=YY.YY.YY.YY
>> > > DST=XX.XX.XX.XX LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=2229 DF PROTO=TCP
>> > > SPT=9610 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
>> > >
>> > > *** I've several hundred of similare line where only the ID change,
>> then :
>> > > ***
>> > >
>> > > Aug 28 15:50:32 ovh-1 kernel: e1000e: enp1s0 NIC Link is Down
>> > > Aug 28 15:50:32 ovh-1 systemd-networkd[20998]: enp1s0: Lost carrier
>> > > Aug 28 15:50:34 ovh-1 systemd-networkd[20998]: enp1s0: Gained carrier
>> > > Aug 28 15:50:34 ovh-1 kernel: e1000e: enp1s0 NIC Link is Up 100 Mbps
>> Full
>> > > Duplex, Flow Control: None
>> > > Aug 28 15:50:34 ovh-1 kernel: e1000e 0000:01:00.0 enp1s0: 10/100
>> speed:
>> > > disabling TSO
>> > >
>> > > The log show that the network is UP but the server is offline.
>> > > In the VM's logs i don't have abnormal things.
>> > >
>> > > OVH have changed the motherboard and the ethernet cable but the
>> problem
>> > > still persist, the syslog show that it's probably a software problem.
>> > >
>> > > Do you have idea of what happen or a way to help me to debug this
>> problem?
>> > >
>> > > Thank you in advance.
>> > >
>> > > Kevin
>> > > --
>> > >
>> > > DAGNEAUX Kevin
>> > > Service informatique
>> > > 03 29 36 88 85
>> > > kevin.dagne...@fiitelcom.fr
>> > >
>>
>>
>>
>>
>

Reply via email to