Jump to content
Калькуляторы

Зеркалирование средствами tc

Приветствую!

Имеем Linux Router с:

$ lspci | grep Ethernet
01:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
02:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
05:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

I350 - дискретная, I210 - встроенная

$ ip li sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 10000
    link/ether **:**:**:**:**:f6 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 10000
    link/ether **:**:**:**:**:f7 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether **:**:**:**:**:81 brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether **:**:**:**:**:82 brd ff:ff:ff:ff:ff:ff
6: eth4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether **:**:**:**:**:83 brd ff:ff:ff:ff:ff:ff
7: eth5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether **:**:**:**:**:84 brd ff:ff:ff:ff:ff:ff
8: v3@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether **:**:**:**:**:f7 brd ff:ff:ff:ff:ff:ff

где eth0 - uplink, eth1 - local (I350); eth2-5 (I210), причем eth5 - IPMI

$ tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc mq 0: dev eth0 root
qdisc fq_codel 0: dev eth0 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev eth0 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev eth0 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc mq 0: dev eth1 root
qdisc fq_codel 0: dev eth1 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev eth1 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev eth1 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev eth1 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc noqueue 0: dev v3 root refcnt 2
$ tc class show dev eth0
class mq :1 root
class mq :2 root
class mq :3 root
class mq :4 root
class mq :5 root
class mq :6 root
class mq :7 root
class mq :8 root
$ tc class show dev eth1
class mq :1 root
class mq :2 root
class mq :3 root
class mq :4 root
class mq :5 root
class mq :6 root
class mq :7 root
class mq :8 root

Нагрузка на каждый порт I350 порядка 900 Мбит/с.

 

Требуется: зеркало трафика из eth1, причем Tx/Rx -> eth2, Tx -> eth3.

 

Вопросы:

  1. Насколько вообще возможно сделать зеркало средствами tc с порта дискретной сетевой карты на встроенную?
  2. Насколько "точное" зеркало будет?

 

P.S. С tc знаком поверхностно. Пробовал на виртуальной машине настроить зеркало - получилось, но не при такой нагрузке, не на таких сетевых, без уже имеющихся очередях... Как вы понимаете, при такой нагрузке на боевой машине тестировать не хочется... Поэтому решил спросить совета у более опытных пользователей.

 

Заранее спасибо!

Share this post


Link to post
Share on other sites

 Да и в общем-то ни к чему вызывать лишние-ненужные вопросы у сормовцев.  Есть проект, есть список рекомендованных железяк в проекте. Проект обязателен и он почти типовой.

Share this post


Link to post
Share on other sites

Вдаваться в вопрос с $0Rm я не буду.

Вопрос про зеркало. У меня есть опасения, что I210 оFигеет от такой наглости. Да и грамотно прописать qdisc и filter надо...

Share this post


Link to post
Share on other sites

Особо не вдавался в datasheet, но на первый взгляд I210 более энергоэффективнее, более "домашний". Что-то критичное не заметил.

К тому же, как я узнал, I210 уже используется в другом "зеркале". Правда, только на прием "части" трафика. Без проблем и уже очень давно...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.