Запрос ARP с неправильным IP-адресом

Вы могли бы хотеть взглянуть на toilet. Следующее было включено в баннер одного из серверов в моей лаборатории:

enter image description here

Можно установить его в базирующихся системах Debian с

sudo apt-get install toilet

Туалет печатает текст с помощью крупных символов, сделанных из меньших символов. Это подобно во многих отношениях FIGlet с дополнительными функциями, такими как обработка Unicode, цветные шрифты, фильтры и различные форматы экспорта.

toilet работы отлично с ASCII-творчеством:

enter image description here


Я записал немного сценария Perl для выделения определенного regexes в тексте. Если Вы используете . как regex, это окрасит все в определенный цвет:

enter image description here

Сценарий (использование -h для крошечного сообщения справки):

#!/usr/bin/env perl
use Getopt::Std;
use strict;
use Term::ANSIColor; 

my %opts;
getopts('hic:l:',\%opts);
    if ($opts{h}){
    print "Use -l to specify the letter(s) to highlight. To specify more than one patern use commas.\n -i makes the search case sensitive\n -c: comma separated list of colors\n";
    exit;
    }
my $case_sensitive=$opts{i}||undef;
my @color=("bold blue",'bold red', 'bold yellow', 'bold green', 'bold magenta', 'bold cyan', 'yellow on_magenta', 'bright_white on_red', 'bright_yellow on_red', 'white on_black');
if ($opts{c}) {
   @color=split(/,/,$opts{c});
}
my @patterns;
if($opts{l}){
     @patterns=split(/,/,$opts{l});
}
else{
    $patterns[0]='\*';
}
# Setting $| to non-zero forces a flush right away and after 
# every write or print on the currently selected output channel. 
$|=1;

while (my $line=<>) 
{ 
    for (my $c=0; $c<=$#patterns; $c++){
      if($case_sensitive){
        if($line=~/$patterns[$c]/){
        $line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ge; 
        }
      }
      else{
        if($line=~/$patterns[$c]/i){
          $line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ige; 
        }
      }
    }
    print STDOUT $line;
}

5
16.01.2014, 12:08
1 ответ

По умолчанию ядро ​​Linux не заставляет использовать IP-адрес, назначенный конкретному интерфейсу для использования в запросах ARP на этом интерфейсе. Рационально - как мне кажется, - это то, что все IP-адреса, назначенные на любой интерфейс на одном и том же хосте, принадлежат к этому хосту, поэтому он не должен иметь значение, какой адрес используется в запросе ARP.

Попробуйте sysctl -w net.ipv4.conf.all.arp_announce = 2 и посмотреть на соответствующую документацию :

arp_announce - INTEGER
    [...]
    2 - Always use the best local address for this target. [...]
6
27.01.2020, 20:38

Теги

Похожие вопросы