100% found this document useful (7 votes)
1K views

Instant Ebooks Textbook Network Programming With Rust 1st Edition Abhishek Chanda Download All Chapters

Chanda

Uploaded by

smauedlp
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (7 votes)
1K views

Instant Ebooks Textbook Network Programming With Rust 1st Edition Abhishek Chanda Download All Chapters

Chanda

Uploaded by

smauedlp
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Download the full version of the textbook now at textbookfull.

com

Network Programming With Rust 1st Edition


Abhishek Chanda

https://textbookfull.com/product/network-
programming-with-rust-1st-edition-abhishek-chanda/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Programming WebAssembly with Rust 1st Edition Kevin


Hoffman

https://textbookfull.com/product/programming-webassembly-with-
rust-1st-edition-kevin-hoffman/

textbookfull.com

Programming Rust 1st Edition Jim Blandy

https://textbookfull.com/product/programming-rust-1st-edition-jim-
blandy/

textbookfull.com

The Rust Programming Language Covers Rust 2018 Steve


Klabnik

https://textbookfull.com/product/the-rust-programming-language-covers-
rust-2018-steve-klabnik/

textbookfull.com

Managing the Complexity of Critical Infrastructures A


Modelling and Simulation Approach 1st Edition Roberto
Setola
https://textbookfull.com/product/managing-the-complexity-of-critical-
infrastructures-a-modelling-and-simulation-approach-1st-edition-
roberto-setola/
textbookfull.com
The Natural History of Flowers Michael Fogden

https://textbookfull.com/product/the-natural-history-of-flowers-
michael-fogden/

textbookfull.com

Paul A Biography 1st Edition N. T. Wright

https://textbookfull.com/product/paul-a-biography-1st-edition-n-t-
wright/

textbookfull.com

Digital Assets and the Law : Fiat Money in the era of


Digital Curency First Edition Filippo Zatti & Rosa
Giovanna Barresi (Editors)
https://textbookfull.com/product/digital-assets-and-the-law-fiat-
money-in-the-era-of-digital-curency-first-edition-filippo-zatti-rosa-
giovanna-barresi-editors/
textbookfull.com

Hands-on Azure Pipelines: Understanding Continuous


Integration and Deployment in Azure DevOps 1st Edition
Chaminda Chandrasekara
https://textbookfull.com/product/hands-on-azure-pipelines-
understanding-continuous-integration-and-deployment-in-azure-
devops-1st-edition-chaminda-chandrasekara/
textbookfull.com

Standard Catalog of World Coins 1901 2000 45th Edition


Thomas Michael (Editor)

https://textbookfull.com/product/standard-catalog-of-world-
coins-1901-2000-45th-edition-thomas-michael-editor/

textbookfull.com
The Perennial Way New English Versions of Yoga Sutras
Dhammapada Heart Sutra Ashtavakra Gita Faith Mind Sutra
Tao Te Ching and More Bart Marshall
https://textbookfull.com/product/the-perennial-way-new-english-
versions-of-yoga-sutras-dhammapada-heart-sutra-ashtavakra-gita-faith-
mind-sutra-tao-te-ching-and-more-bart-marshall/
textbookfull.com
Network Programming with
Rust

Build fast and resilient network servers and clients by


leveraging Rust's memory-safety and concurrency features

Abhishek Chanda

BIRMINGHAM - MUMBAI
Network Programming with Rust
Copyright © 2018 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form
or by any means, without the prior written permission of the publisher, except in the case of brief quotations
embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented.
However, the information contained in this book is sold without warranty, either express or implied. Neither the
author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to
have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products
mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy
of this information.

Commissioning Editor: Merint Mathew


Acquisition Editor: Chaitanya Nair
Content Development Editor: Vikas Tiwari
Technical Editor: Diwakar Shukla
Copy Editor: Safis Editing
Project Coordinator: Ulhas Kambali
Proofreader: Safis Editing
Indexer: Mariammal Chettiyar
Graphics: Tania Dutta
Production Coordinator: Shantanu Zagade

First published: February 2018

Production reference: 1260218

Published by Packt Publishing Ltd.


Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.

ISBN 978-1-78862-489-3

www.packtpub.com
To my wife, Anasua, for being an amazing partner and friend, and also for all the diagrams in
this book.

To the memory of my mother, Sikha, for her sacrifices and for exemplifying the power of
determination.
mapt.io

Mapt is an online digital library that gives you full access to over 5,000 books and videos, as
well as industry leading tools to help you plan your personal development and advance
your career. For more information, please visit our website.

Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos
from over 4,000 industry professionals

Improve your learning with Skill Plans built especially for you

Get a free eBook or video every month

Mapt is fully searchable

Copy and paste, print, and bookmark content

PacktPub.com
Did you know that Packt offers eBook versions of every book published, with PDF and
ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a
print book customer, you are entitled to a discount on the eBook copy. Get in touch with us
at service@packtpub.com for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters, and receive exclusive discounts and offers on Packt books and
eBooks.
Contributors

About the author


Abhishek Chanda studied computer science at IIEST Shibpur in India and electrical
engineering at Rutgers University. He has lived and worked in multiple countries, working
on distributed systems since 2008 at big companies such as Microsoft as well as a number
smaller start-ups. Currently, he is working with DataSine in London, where he is
responsible for the scalable deployment of infrastructure powering the backend systems of
the DataSine platform. He contributes to a number of open source projects, including Rust.

I would like to thank Packt and their wonderful team for making this possible, especially
Vikas, Chaitanya, Madhunikita, and Diwakar. I am grateful to Pradeep and all the
reviewers for their insightful comments. This book would not have been possible without
the support of my wife, Anasua.
About the reviewer
Pradeep R is a software professional at Gigamon. He is a technology enthusiast passionate
about network programing and security, with wide experience in working on leading
enterprise network switching and routing solutions and in development and deployment of
traditional network security elements. Currently, he is working on next-generation network
pervasive visibility solutions.

He extensively works with C, C++, Python, JavaScript, Perl, and occasionally with Java,
.NET, and Rust. Pradeep has recently reviewed Rust Cookbook.

I would like to thank Vigneshwer Dhinakaran, my brother, who has shown me that
boundaries exists only in our minds and they are meant to be breached. I would also like to
acknowledge with gratitude my mother, Vasanthi, my grandma, Sulochana, and my sister,
Deepika, for their constant encouragement and support.

Packt is searching for authors like you


If you're interested in becoming an author for Packt, please visit authors.packtpub.com and
apply today. We have worked with thousands of developers and tech professionals, just
like you, to help them share their insight with the global tech community. You can make a
general application, apply for a specific hot topic that we are recruiting an author for, or
submit your own idea.
Table of Contents
Preface 1

Chapter 1: Introduction to Client/Server Networking 5


A brief history of networks 6
Layering in networks 7
Addressing in networks 11
How IP routing works 13
How DNS works 16
Common service models 18
Connection-oriented service 18
Connectionless service 20
The network programming interface in Linux 20
Summary 26
Chapter 2: Introduction to Rust and its Ecosystem 27
The Rust ecosystem 28
Getting started with Rust 29
Introduction to the borrow checker 33
Generics and the trait system 38
Error handling 44
The macro system 48
Syntactic macros 49
Procedural macros 50
Functional features in Rust 51
Higher-order functions 51
Iterators 53
Concurrency primitives 55
Testing 59
Summary 62
Chapter 3: TCP and UDP Using Rust 63
A Simple TCP server and client 64
Table of Contents

A Simple UDP server and client 71


UDP multicasting 73
Miscellaneous utilities in std::net 75
Some related crates 77
Summary 87
Chapter 4: Data Serialization, Deserialization, and Parsing 88
Serialization and deserialization using Serde 89
Custom serialization and deserialization 95
Parsing textual data 101
Parsing binary data 108
Summary 112
Chapter 5: Application Layer Protocols 113
Introduction to RPC 114
Introduction to SMTP 121
Introduction to FTP and TFTP 124
Summary 127
Chapter 6: Talking HTTP in the Internet 128
Introducing Hyper 128
Introducing Rocket 136
Introducing reqwest 155
Summary 159
Chapter 7: Asynchronous Network Programming Using Tokio 160
Looking into the Future 161
Working with streams and sinks 168
Heading to tokio 175
Socket multiplexing in tokio 183
Writing streaming protocols 190
The larger tokio ecosystem 200
Conclusion 203
Chapter 8: Security 204
Securing the web 204
Letsencrypt using Rust 207
OpenSSL using Rust 212

[ ii ]
Table of Contents

Securing tokio applications 217


Cryptography using ring 221
Summary 227
Chapter 9: Appendix 228
Introduction to coroutines and generators 228
How May handles coroutines 232
Awaiting the future 236
Data parallelism 241
Parsing using Pest 246
Miscellaneous utilities 250
Summary 254
Other Books You May Enjoy 255

Index 258

[ iii ]
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Preface
Rust has steadily become one of the most important new programming languages in recent
years. Like C or C++, Rust enables the developer to write code that is low-level enough to
make Rust code quickly. And since Rust is memory-safe by design, it does not allow code
that can crash on a null pointer exception. These properties make it a natural choice for
writing low-level networking applications. This book will enable developers to get started
with writing networking applications with Rust.

Who this book is for


This book's target audience is a software engineer who is interested in writing networking
software using Rust.

What this book covers


Chapter 1, Introduction to Client/Server Networking, starts the book with a gentle
introduction to computer networking from the ground up. This includes IP addressing,
TCP/UDP, and DNS. This forms the basis of our discussions in later chapters.

Chapter 2, Introduction to Rust and its Ecosystem, contains an introduction to Rust. This is an
overall introduction that should be good enough to get the reader started. We do assume
some familiarity with programming.

Chapter 3, TCP and UDP Using Rust, dives into using Rust for networking. We start with
basic socket programming using the standard library. We then look at some crates from the
ecosystem that can be used for network programming.

Chapter 4, Data Serialization, Deserialization, and Parsing, explains that an important aspect
of networked computing is handling data. This chapter is an introduction to serializing and
deserializing data using Serde. We also look at parsing using nom and other frameworks.

Chapter 5, Application Layer Protocols, moves up a layer to look at protocols that operate
above TCP/IP. We look at a few crates to work with, such as RPC, SMTP, FTP, and TFTP.
Preface

Chapter 6, Talking HTTP in the Internet, explains that arguably the most common
application of the internet is HTTP. We look at crates such as Hyper and Rocket which are
used for writing HTTP servers and clients.

Chapter 7, Asynchronous Network Programming Using Tokio, looks at the Tokio stack for
asynchronous programming using futures, streams, and event loops.

Chapter 8, Security, delves into securing the services we have described so far. This is using
certificates and secret keys.

Chapter 9, Appendix, discusses a number of crates have appeared that propose alternate
ways of doing things already covered in this book. This includes the async/await syntax,
parsing using Pest, and so on. We will discuss some of these in the appendix.

To get the most out of this book


1. They are either already familiar with Rust or are planning to start learning the
language.
2. They have a commercial background in software engineering using other
programming languages and are aware about the tradeoffs in developing
software using different programming languages.
3. They have a basic familiarity with networking concepts.
4. They can appreciate why distributed systems are important in modern
computing.

Download the example code files


You can download the example code files for this book from your account at
www.packtpub.com. If you purchased this book elsewhere, you can visit
www.packtpub.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

1. Log in or register at www.packtpub.com.


2. Select the SUPPORT tab.
3. Click on Code Downloads & Errata.
4. Enter the name of the book in the Search box and follow the onscreen
instructions.

[2]
Preface

Once the file is downloaded, please make sure that you unzip or extract the folder using the
latest version of:

WinRAR/7-Zip for Windows


Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https:/​/​github.​com/
PacktPublishing/​Network-​Programming-​with-​Rust. We also have other code bundles from
our rich catalog of books and videos available at https:/​/​github.​com/​PacktPublishing/​.
Check them out!

Conventions used
There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames,
file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an
example: "The target directory contains compilation artifacts."

A block of code is set as follows:


[package]
name = "hello-rust"
version = "0.1.0"
authors = ["Foo Bar <foo.bar@foobar.com>"]

Any command-line input or output is written as follows:


# cargo new --bin hello-rust

Bold: Indicates a new term, an important word, or words that you see onscreen. For
example, words in menus or dialog boxes appear in the text like this. Here is an example: "It
will not need to call connect for that same connection:"

Warnings or important notes appear like this.

[3]
Preface

Tips and tricks appear like this.

Get in touch
Feedback from our readers is always welcome.

General feedback: Email feedback@packtpub.com and mention the book title in the
subject of your message. If you have questions about any aspect of this book, please email
us at questions@packtpub.com.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes
do happen. If you have found a mistake in this book, we would be grateful if you would
report this to us. Please visit www.packtpub.com/submit-errata, selecting your book,
clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we
would be grateful if you would provide us with the location address or website name.
Please contact us at copyright@packtpub.com with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in
and you are interested in either writing or contributing to a book, please visit
authors.packtpub.com.

Reviews
Please leave a review. Once you have read and used this book, why not leave a review on
the site that you purchased it from? Potential readers can then see and use your unbiased
opinion to make purchase decisions, we at Packt can understand what you think about our
products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packtpub.com.

[4]
Introduction to Client/Server
1
Networking
This book is an introduction to writing networking applications in Rust. This title begs two
questions: why should anyone care about networking? And why would anyone want to
write networking applications in Rust? We attempt to answer the first question in this
chapter. We will introduce Rust and network programming using Rust in subsequent
chapters. Firstly, in this chapter, we will start with a bit of history and try to understand
how network architecture evolved over the last hundred years. In subsequent sections, we
will see how modern networks are layered and addressed. Afterwards, we will describe
common service models used in networking. We will end with a summary of networking-
related programming interfaces that Linux exposes. Note that this book deliberately ignores
network programming in other operating systems and focuses only on Linux for the sake of
simplicity. While the Rust compiler is platform-agnostic, there can be cases where some
things are different in other platforms compared to Linux. We will point out those
differences as we progress.

In this chapter, we will cover the following topics:

History of networking: why and how networks came into use and how the
internet evolved
Layering in networks: how layering and encapsulation works
Addressing: how networks and individual hosts are uniquely identified on the
internet
How IP routing works
How DNS works
Service models for data delivery
The network programming interface in Linux
Introduction to Client/Server Networking Chapter 1

A brief history of networks


The modern internet has revolutionized how we communicate with one another. However,
it had humble beginnings in the Victorian era. One of the earliest precursors to the internet
was telegraph networks which were operational as early as 1850. Back then, it used to take
10 days to send a message from Europe to North America by sea. Telegraph networks
reduced that to 17 hours. By the late 19th century, the telegraph was a fully successful
communication technology that was used widely in the two world wars. Around that time,
people started building computers to help in cracking enemy codes. Unlike our modern
mobile phones and laptops, those computing machines were often huge and needed
specialized environments to be able to operate smoothly. Thus, it was necessary to put those
in special locations while the operators would sit on a terminal. The terminal needed to be
able to communicate with the computer over short distances. A number of local area
networking technologies enabled this, the most prominent one being Ethernet. Over time,
these networks grew and by the 1960s, some of these networks were being connected with
one another to form a larger network of networks. The Advanced Research Projects
Agency Network (ARPANET) was established in 1969 and it became the first internetwork
that resembles the modern internet. Around 1973, there were a number of such
internetworks all around the world, each using their own protocols and methods for
communication. Eventually, the protocols were standardized so that the networks could
communicate with each other seamlessly. All of these networks were later merged to form
what is the internet today.

Since networks evolved in silos all around the world, they were often organized according
to geographical proximity. A Local Area Network (LAN) is a collection of host machines in
small proximity like a building or a small neighborhood. A Wide Area Network (WAN) is
one that connects multiple neighborhoods; the global internet is at the top of the
hierarchy. The next picture shows a map of the ARPANET in 1977. Each node in this map is
a computer (a server, in today's terms). Most of these were located in large universities like
Stanford or at national laboratories like Lawrence Berkeley (source: https:/​/​commons.
wikimedia.​org/​wiki/​File:Arpanet_​logical_​map,_​march_​1977.​png).

In networking, a Request For Comment (RFC) is a document that


describes how a proposed system should work. These are the first steps
towards standardizing a protocol or a system. The term internet was first
used in RFC 675, which proposed a standard for TCP.

[6]
Introduction to Client/Server Networking Chapter 1

Layering in networks
Computer science often focuses on subdividing a problem into smaller, hopefully
independent components that can be solved in isolation. Once that is done, all that is
needed is a set of rules on how those components should communicate to have a solution to
the larger problem. This set of rules, along with a pre-agreed data format, is called a
protocol. A network is composed of a number of layers, each of which has a fixed purpose.
Thus, each of these layers run one or many protocols, forming a stack of protocols. In the
early days of networking, different people implemented their networks in different ways.
When the internet was conceived, there was a need to make these networks communicate
seamlessly. Since they were constructed differently, this turned out to be difficult.

[7]
Introduction to Client/Server Networking Chapter 1

There was a clear need to agree on standard protocols and interfaces to make the internet
work. The first attempt at standardizing networking protocols was in 1977, which led to the
OSI model. This model has the following layers:

Physical layer: It defines how data is transmitted in the physical medium in


terms of its electrical and physical characteristics. This can either be by wire, fiber
optic, or a wireless medium.
Data link layer: It defines how data is transmitted between two nodes connected
by a physical medium. This layer deals with prioritization between multiple
parties trying to access the wire simultaneously. Another important function of
this layer is to include some redundancy in the transmitted bits to minimize
errors during transmission. This is referred to as coding.
Network layer: It defines how packets (made up of multiple units of data) are
transmitted between networks. Thus, this layer needs to define how to identify
hosts and networks uniquely.
Transport layer: It defines mechanisms to reliably deliver variable length
messages to hosts (in the same or different networks). This layer defines a stream
of packets that the receiver can then listen to.
Session layer: It defines how applications running on hosts should communicate.
This layer needs to differentiate between applications running on the same host
and deliver packets to them.
Presentation layer: It defines common formats for data representation so that
different applications can interlink seamlessly. In some cases, this layer also takes
care of security.
Application layer: It defines how user-centric applications should send and
receive data. An example is the web browser (a user-centric application) using
HTTP (an application layer protocol) to talk to a web server.

The following figure shows a visual representation of this model (source: https:/​/​commons.
wikimedia.​org/​wiki/​File:Osi-​model-​jb.​svg). This also shows two vertical classifications,
the host running the network stack and the physical media (including the wire and the
network device). Each layer has its own data unit, the representation of the information it
works on, and since each layer encapsulates the one below it, the data units encapsulate too.
A number of bits form a frame, a number of frames form a packet, and so on, to the top:

[8]
Introduction to Client/Server Networking Chapter 1

The OSI model and its layers

While OSI was working on standardizing this model, Defense Advanced Research Projects
Agency (DARPA) came up with a full implementation of the much simpler TCP/IP model
(also known as the IP (Internet Protocol) suite). This model has the following layers, from
closest to the physical medium to the farthest:

Hardware interface layer: This is a combination of layers one and two of the OSI
model. This layer is responsible for managing media access control, handling
transmission and reception of bits, retransmission, and coding (some texts on
networking differentiate between the hardware interface layer and the link layer.
This results in a five layer model instead of four. This hardly matters in practice,
though.)
IP layer: This layer corresponds to layer three of the OSI stack. Thus, this layer is
responsible for two major tasks: addressing hosts and networks so that they can
be uniquely identified and given a source and a destination address, and
computing the path between those given a bunch of constraints (routing).
Transport layer: This layer corresponds to layer four of the OSI stack. This layer
converts raw packets to a stream of packets with some guarantees: in-order
delivery (for TCP) and randomly ordered delivery (for UDP).

[9]
Introduction to Client/Server Networking Chapter 1

Application layer: This layer combines layers five to seven of the OSI stack and is
responsible for identifying the process, data formatting, and interfacing with all
user level applications.

Note that the definition of what a particular layer handles changes as we move from one
layer to another. The hardware interface layer handles collection of bits and bytes
transmitted by hosts, the IP layer handles packets (the collection of a number of bytes sent
by a host in a specific format), the transport layer bunches together packets from a given
process on a host to another process on another host to form a segment (for TCP) or
datagram (for UDP), and the application layer constructs application specific
representations from the underlying stream. For each of these layers, the representation of
data that they deal with is called a Protocol Data Unit (PDU) for that layer. As a
consequence of this layering, when a process running on a host wants to send data to
another host, the data must be broken into individual chunks. As the chunk travels from
one layer to another, each layer adds a header (sometimes a trailer) to the chunk, forming
the PDU for that layer. This process is called encapsulation. Thus, each layer provides a set
of services to layers above it, specified in the form of a protocol.

The modern internet exhibits a form of geographical hierarchy. Imagine a number of homes
which are served by a number of Internet Service Providers (ISPs). Each of these homes
is in a LAN (either via Ethernet, or more commonly, Wi-Fi). The ISP connects many such
LANs in a WAN. Each ISP has one or many WANs that they connect to form their own
network. These larger networks, spanning cities, which are controlled by a single business
entity, are called Administrative Systems (AS). Routing between multiple ISPs is often
more complex than regular IP routing since they have to take into account things like
trading agreements and so on. This is handled by specialized protocols like the Border
Gateway Protocol (BGP).

As mentioned before, one of the earliest and most successful networking technologies is
Ethernet. First introduced in 1974, it quickly became the predominant technology for LAN
and WAN due to its low cost and relative ease of maintenance. Ethernet is a shared media
protocol where all the hosts must use the same physical medium to send and receive
frames. Frames are delivered to all hosts, which will check if the destination MAC address
(these addresses will be described in the next section) matches its own address. If it does,
the frame is accepted, otherwise, it is discarded. Since the physical medium can only carry
one signal at any given moment, there is a probability that frames might collide in transit. If
that does occur, the sender can sense the collision by sensing transmission from other hosts
while it is transmitting its frame. It then aborts the transmission and sends a jam signal to
let other hosts know of the collision. Then, it waits for an exponentially backed off amount
of time and retries the transmission. After a fixed number of attempts, it gives up if the
transmission does not succeed.

[ 10 ]
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Introduction to Client/Server Networking Chapter 1

This scheme is called carrier-sense multiple access with collision detection (CSMA/CD).
One problem with Ethernet is its relatively short range. Depending on the physical wiring
technology used, the maximum length of an Ethernet segment varies between 100 m to 500
m. Thus, multiple segments must be connected to form a larger network. The most common
way of doing that is using layer two switches between two adjacent Ethernet segments.
Each port of these switches forms different collision domains, reducing the overall
probability of collisions. These switches can also monitor traffic to learn which MAC
addresses are on which ports so that eventually, they will send out frames for that MAC
address only on that port (referred to as a learning switch). In modern homes, Wi-Fi is often
the dominant LAN technology compared to Ethernet.

Addressing in networks
We have seen why it is important to identify hosts and networks uniquely to be able to
deliver packets reliably. Depending on the scale, there are three major ways of doing this;
we will discuss each of those in this section. The end to end process of IP routing will be
discussed in the next section. One interesting fact to note is that for each of these addressing
modes, one or more addresses are reserved for special use. Often, these are marked by a
known set of bits being on or off in a known pattern:

Ethernet address: This is also known as a Media Access Control (MAC) address.
It is a 48-bit long unique identifier assigned to a network device (usually stored
on the card) that is used to identify it in a network segment. Usually, these are
programmed by the network card manufacturer, but all modern OS's allow one
to modify it. The standard way of writing Ethernet addresses are in six groups of
two hexadecimal digits (01-23-45-67-89-ab-cd-ef). Another common way is to use
a colon to separate the digits (01:23:45:67:89:ab:cd:ef). A few special sequences of
bits are reserved for addressing special cases: the sender can request that an
Ethernet frame should be received by all hosts in that segment by setting the least
significant bit of the first octet to 1; this is called multicasting. If that particular bit
is set to 0, the frame should be delivered to only one receiver. Today, these are
used widely with Ethernet and Wi-Fi.

[ 11 ]
Introduction to Client/Server Networking Chapter 1

IP address: This is an address assigned to each device in an IP network. The


original IP address standard (IPv4) defined 32-bit addresses in 1980. However, by
1995, it was obvious that the total number of available addresses on the internet is
not enough to cover all devices. This led to the development of IPv6, which
expanded the address space to 128 bits. The standard way of dealing with a
group of IP addresses is using the CIDR notation, for example, 192.168.100.1/26
(IPv4). The decimal number after the slash counts the number of leading 1s in the
network mask. Thus, in this particular case, there are 2^(32-26) = 64 addresses in
the network starting from 192.168.100.0 to 192.168.100.63. The Internet Assigned
Numbers Authority (IANA) assigns blocks of publicly routable IP addresses to
organizations. A number of IPv4 and v6 addresses are reserved for various
purposes like addressing in private networks and so on. In a home network
(which will always use special private range addresses), these are assigned by the
Dynamic Host Configuration Protocol (DHCP) by the Wi-Fi router.
Autonomous system number: This is a 32-bit number used to uniquely identify
autonomous systems. Like IP addresses, these are assigned and maintained by
the IANA.

Apart from these, communication between hosts often uses a port number to distinguish
between processes. When the OS allocates a specific port to a process, it updates its
database of the mapping between process identifier and port number. Thus, when it
receives incoming packets on that port, it knows what process to deliver those packets to. In
case the process has exited by that time, the OS will drop the packets and in the case of TCP,
initiate closing of the connection. In the subsequent sections, we will see how TCP works in
practice.

A range of port numbers between 0 and 1024 are reserved for common
services by the OS. Other applications are free to request any port above
1024.

[ 12 ]
Introduction to Client/Server Networking Chapter 1

How IP routing works


To understand how IP routing works, we must first begin with the structure of IPv4
addresses. As described in the last section, these are 32 bits in length. They are written in a
dotted decimal notation in groups of 4 bytes (for example, 192.168.122.5). A given number
of bits in that network prefix is used to identify the network where the packet should be
delivered, and the rest of the bits identify the particular host. Thus, all hosts in the same
network must have the same prefix. Conventionally, the prefix is described in the CIDR
notation with the starting address and the number of bits in the network portion of the
address separated by a slash (192.168.122.0/30). The number can then be used to find out
how many addresses are available for hosts in the network (in this case, 2^(32-30) = 4).
Given an IP address and a prefix, the network address can be extracted by bitwise-ANDing
the address with a mask of all 1s in the network portion. Calculating the host address is just
the reverse; we will need to AND with the network mask's logical negation (the host mask),
which has all 0s in the network portion and all 1s in the host portion. Given an address and
a prefix like 192.168.122.5/27, we will compute these as shown in the following figure. Thus,
for the given CIDR, the network address is 192.168.122.0 and the host address is 0.0.0.5:

CIDR to network and host address conversion

As described before, each IP network will have a reserved broadcast


address that can be used for a host to send a message to all hosts in that
network. This can be computed by ORing with the host mask. In our
example, this comes out to be 192.168.122.31. Note that the network
address can not be a valid host address.

[ 13 ]
Introduction to Client/Server Networking Chapter 1

There are two broad classes of IP address; some blocks of addresses can be routed in the
public internet, these are called public IP addresses. Some other blocks can only be used in
private networks that do not directly interface with the internet, these are called private
addresses. If a router on the internet receives a packet that is destined for a private IP
address, it will have to drop that packet. Other than these two, IP addresses are also
classified on various parameters: some are reserved for documentation only (192.0.2.0/24),
some are reserved for point to point communication between two hosts (169.254.0.0/16), and
so on. The Rust standard library has convenience methods to classify IP addresses
according to their types.

All routers maintain a routing table which maps prefixes to the outgoing interface of the
router (while a router administrator might decide to store individual addresses instead of
prefixes, this will quickly lead to a large routing table in a busy router). An entry in the table
basically says If a packet needs to go to this network, it should be sent on this interface. The next
host that receives the packet might be another router or the destination host. How do
routers figure out this table? Multiple routers run routing protocols between those which
compute those tables. Some common examples are OSPF, RIP, and BGP. Given these
primitives, the actual routing mechanism is fairly simple, as shown in the next diagram.

An interesting aspect of IP is the use of the Time To Live (TTL) field, this is also known as
hop limit. The host sends out packets with a fixed value of TTL (usually 64). Each router the
packet crossed decreases the TTL. When it reaches 0, the packet is discarded. This
mechanism ensures that packets are not stuck in an infinite loop between routers:

General routing algorithm

[ 14 ]
Introduction to Client/Server Networking Chapter 1

Internet Control Message Protocol (ICMP) is used to exchange


operational information between network devices. In the preceding
example, one or multiple routers might decide to send back an ICMP error
if they are configured to do so.

Note that while trying to match the prefix to routes in the routing table, multiple routes
might match. If that happens, the router must select the most specific match and use that for
forwarding. Since the most specific routes will have the maximum number of leading 1s,
and hence the largest prefix, this is called the longest prefix match. Say our router has the
following routing table, as shown in the diagram. eth1, eth2, and eth3 are three network
interfaces attached to our router, each having a different IP address in different networks:

Longest prefix matching example

At this point, if our device gets a packet that has a destination address set to 192.168.1.33, all
three prefixes have this address but the last one is the largest of the three. So, the packet will
go out through eth3.

A lot of what we described so far about IPv4 addresses does not change for IPv6, except, of
course, it has a larger address space of 128 bits. In this case, the length of the network mask
and the host mask depends on the address type.

One might be wondering, how do routers construct the routing table? As always, there are
protocols to help with that. Routing protocols are of two major types: interior gateway
protocols which are used for routing inside an autonomous system, and exterior gateway
protocols which are used in routing between autonomous systems; an example of the latter
is BGP. Interior gateway protocols can again be of two types, depending on how they look
at the whole network. In link state routing, each router participating in the protocol
maintains a view of the whole network topology. In distance vector routing, each router
only knows about its one hop neighbors. An example of the former is the Routing
Information Protocol (RIP) and of the latter is Open Shortest Path First (OSPF). Details
about these are beyond the scope of this book. However, we can note that the common
theme among all the routing protocols is that they work by exchanging information
between routers. Thus, they have their own packet formats for encapsulating that
information.

[ 15 ]
Random documents with unrelated
content Scribd suggests to you:
à José Germain
CHAPITRE II

DES CHAMBRETTES A ROUVROIS

(9 mars 1916).
Le cheval du cuirassier, une superbe bête, est attaché à un arbre. Comme
des obus battent la lisière du bois, il regimbe. Son cavalier le calme et lui
parle à voix basse, puis l’enfourche et nous demande si nous sommes prêts.
La question est moins une politesse qu’une injonction. Hélas! oui, nous
sommes prêts. Nous nous mettons lentement en route. La canonnade s’est
apaisée. Toute la campagne est blanche. Il fait froid. Où dormirons-nous, ce
soir? Après tant de forces dépensées, nous éprouvons un violent besoin de
dormir. La tension des jours derniers et l’excitation du combat sont
tombées, une pesante lassitude nous reste, et de la fièvre.
A peine sortis du bois, nous voici au milieu d’attelages en station.
—Ravitaillement, dit le cuirassier.
Ce sont en effet des cuisines roulantes, arrêtées en ordre et formées en
parc. Toutes les voitures sont attelées de quatre chevaux; tous les chevaux
ont une couverture dépliée sur le dos. Les hommes de corvée sont
silencieux. Ils nous regardent passer, ne nous reconnaissent peut-être pas,
s’écartent, et ne disent rien.
Il tombe de la neige en flocons menus et du verglas. La route est
défoncée et creusée d’ornières profondes. Nous glissons. Il faut se raidir
pour éviter les chutes, et on ne les évite pas toujours. Le cuirassier, qui a
toutes les peines à tenir son cheval, met pied à terre.
Peu à peu, lentement, nous nous éloignons du champ de bataille et de la
ligne de feu. Les obus français ne nous gênent plus. Les carrefours sont
libres. Notre artillerie n’entrave pas à cette heure, et si loin, le travail
nocturne, toujours si intense. Des coups de canon nous arrivent assourdis.
Nous sommes prisonniers. C’est la pensée obsédante. Nous sommes des
vaincus, et nous marchons vers l’exil. Quel sort nous est réservé? Et surtout,
comment préviendrons-nous ceux qui vont s’inquiéter là-bas? Nous
n’avions jamais prévu que nous pourrions tomber vivants aux mains de
l’ennemi. Demain, les papiers officiels nous porteront comme «disparus».
Or, nous avons trop souvent répété nous-mêmes que «disparu» est un mot
de politesse et de pudeur qui cache un autre mot, trop pénible. Seront-ils
rassurés, et quand seront-ils enfin rassurés, ceux qui peut-être dans quelques
jours nous pleureront? Mornes et douloureuses pensées, que notre fièvre
ressasse à loisir.
Le cuirassier essaye de lier conversation. Va-t-il nous demander si nous
croyons qu’ils prendront Verdun? C’est un grand gaillard maigre, sans
manteau, coiffé du casque à pointe. Il baragouine un peu de français, appris
dans nos villages occupés, et nous baragouinons, le capitaine et moi, un peu
d’allemand, souvenir des leçons du collège. Pourtant nous parvenons à nous
entendre à peu près.
Il est Prussien, il est sur le front depuis le début; il a pris part aux
premières batailles dans le Nord, quand c’étaient encore les jours de la
cavalerie et des combats d’hommes. Il nous dit, ce que nous avons déjà
entendu plus de dix fois depuis que nous sommes prisonniers, que pour
nous la guerre est finie. Il accompagne sa phrase d’un soupir de regret, et
nous demande si nous croyons et si l’on croit en France que «ça durera
longtemps encore». Comme nous n’avons aucune raison de lui dorer la
pilule, le capitaine V*** lui répond:
—Quand la France sera kapùt (abattue, morte, détruite), quand
l’Allemagne sera kapùt, il ne restera plus debout que les Anglais. Alors, la
guerre sera finie,—dans deux ou trois ans.
Tristement, le cuirassier approuve. Il n’aime pas l’Angleterre. Il suit la
mode. Lecteur docile des journaux, il n’en veut à la France ni du mal qu’ils
ont voulu nous faire, ni du mal qu’ils nous ont fait, ni de tout le mal qu’ils
n’ont pas pu nous faire, précisément parce que l’Angleterre les empêcha de
mener jusqu’au bout leur fureur. Et maintenant l’Allemagne déteste cette
France si pitoyable qui s’est défendue, mais elle hait terriblement
l’Angleterre, car l’Allemagne a fini par découvrir pour les besoins de sa
cause et par imposer à ses hommes cette idée que c’est l’Angleterre qui a
cherché la guerre. Le cuirassier prussien s’apitoie en effet sur notre pauvre
France. Comme la route que nous suivons est labourée d’ornières très
profondes, qui lui donnent un aspect irréparable, il nous dit:
—Après la guerre, ça vous coûtera cher, la remise en état de ces
chemins, ils sont bien abîmés. Partout c’est pareil. De même pour vos
forêts: nous les avons complètement déboisées.
Dans ce paysage de neige et de misère, cette phrase, moins charitable
que cynique, car le cuirassier ne regrette rien, nous brise le cœur. Répondre?
Et quoi? Que les coupables seront punis? Qu’ils seront condamnés à payer?
Mais ne faut-il pas retenir cet aveu d’un simple soldat, qui marque leur
impuissance désormais certaine, qu’ils ne semblent plus espérer garder pour
eux ces terres qu’ils occupent en Belgique et chez nous?
Tout en devisant tant bien que mal, nous arrivons à hauteur de l’ancienne
première ligne française, celle du 20 février 1916. Nous n’en voyons pas
grand’chose. De chaque côté de la route partiellement refaite, nous
apercevons des éléments de tranchées clayonnées, des sacs à terre, des
créneaux, un réseau de fils de fer. Ce petit coin du champ de bataille paraît
intact, ou du moins peu endommagé. Autant que la nuit nous le permet,
nous remarquons aussi que la position est telle que nous l’avons perdue et
que, comme nous disons en style militaire, les tranchées n’ont pas été
«retournées» contre nous par les Allemands en vue d’une défense probable.
La route est longue et pénible, et nous sommes fatigués. Le cuirassier ne
sait pas très bien où il nous conduit. Il parle d’Azanne et de Villes, sans que
nous puissions démêler si nous allons à Villes ou à Azanne. Mais nous
sommes prisonniers, et nous n’avons qu’à nous laisser conduire.
De grandes ombres trapues se découpent sur le bord de la route.
—Des minenwerfer tout neufs, nous dit le cuirassier.
Il y en a une douzaine, qui attendent sous la neige. A leur suite deux
masses plus hautes et plus longues, plus élégantes aussi: ce sont deux
canons lourds, mais des canons français, de 155, pris à nos artilleurs. Nous
les reconnaissons sans avoir recours aux complaisances un peu trop crues
de notre guide.
Un convoi nous précède. Un carrefour est encombré de voitures et de
chevaux. Dans le désordre et le brouhaha, des blessés légers gagnent par
leurs propres moyens le premier poste d’évacuation. L’un d’eux, qui a gardé
son fusil, nous apostrophe violemment. Le cuirassier lui fait remarquer que
nous ne comprenons pas. Et lui, s’emportant, déclare qu’il faudra bien que
nous comprenions et que nous parlions l’allemand, comme tout le monde,
car personne n’aura plus le droit de connaître une autre langue que la leur.
Ce troupier de deuxième classe, socialiste ou césarien, est un pangermaniste
convaincu.
Comme cette marche est pénible! Nous glissons, nous tombons, nous
soufflons, nous avons soif. Précisément nous touchons à une espèce de
bivouac. Un soldat boche, sous une petite baraque en plein vent éclairée par
une lanterne, travaille à je ne sais quelle réparation. Le cuirassier l’appelle
et lui demande s’il a de l’eau à nous donner. L’homme n’en a pas, mais il
prend un de nos bidons et disparaît pour aller chercher ce que nous désirons
tant. Et nous nous asseyons près de la baraque.
Quelques minutes après, l’homme revient. Quelle joie! Mais quelle
stupeur quand nous voyons qu’au lieu de nous rendre le bidon, l’homme
l’approche de sa bouche, avale une gorgée d’eau, passe sa main sur le
goulot et tend la gourde au capitaine! Cela, évidemment, pour nous prouver
qu’il n’avait pas empoisonné notre boisson. Et voilà que ce mince tableau
de guerre me rappelle des histoires de l’autre guerre, de celle qui a nourri
notre enfance. Je revois les Prussiens de 1870 faisant goûter par leurs hôtes
forcés les mets qu’on leur avait préparés; et je songe à leur méfiance
perpétuelle, parce qu’ils n’ont jamais l’âme tranquille, et je songe aussi que,
plus naïf et donc inférieur selon leur morale, je n’aurais même pas pensé
que l’eau de cet homme pût être empoisonnée. J’ai souri du geste de ce
soldat allemand, geste pour la galerie comme ils en font toujours, geste pour
pays neutres, geste si peu français. J’ai bu de cette eau. J’aurais vidé le
bidon tout seul sans être rassasié. Nous étions quatre à nous partager un litre
de cet élixir.
Enfin nous allons arriver à Villes, car nous apprenons que nous allons à
Villes. Pour les derniers cent mètres, nous tendons le jarret. En cachette, je
fais l’examen de mes poches. Je déchire en menus morceaux tous les
papiers que je possède, des lettres, des photographies, deux billets de
banque, et je les sème peu à peu dans le fossé de la route.
Encore un coup de collier et nous arrivons à Villes.
L’aspect du village est tragique dans cette nuit de lune. Nous savions
bien déjà, hélas! ce que la guerre peut faire d’une bourgade en
l’anéantissant comme à Souchez, par exemple, et en l’écrasant sous les obus
au point de ne plus permettre à l’agent de liaison égaré de retrouver même
l’emplacement approximatif de l’église. Mais ce village que nous avons
devant nous a été systématiquement détruit par l’ennemi. Quelques maisons
sont en ruines, certes, et des canons ou des avions en sont la cause à peu
près certaine: mais toutes les autres maisons qui sont intactes, ou du moins
qui ont encore leurs murs debout, n’ont pas autre chose: les portes, les
fenêtres, les planchers, les poutres, les chevrons, tout ce qui est charpente
ou menuiserie, et naturellement les meubles aussi, on a tout enlevé, soit
pour étayer des tranchées ou construire des abris-cavernes, soit pour faire
du feu. Et je ne parle pas de tout ce que l’on a pu expédier en Allemagne.
C’est le premier village de ce genre que nous voyons: une tristesse lourde
nous pèse sur les épaules.
Il nous faut traverser ce village mort dans toute sa longueur, en
pataugeant dans la neige et la boue, et en évitant de nous cogner aux
hommes de corvée qui grouillent autour de nous. C’est ici le même ordre et
le même silence que nous avons remarqués près de la ligne de feu. On nous
regarde beaucoup, mais personne ne nous adresse la parole. Le cuirassier
s’informe du chemin à suivre. On nous conduit au P. C. de la division, qui
se trouve en dehors de l’agglomération.
Un long sentier de caillebotis nous dirige vers le point que nous croyons
être le terme de notre route. Nous nous y engageons, heureux d’échapper à
la boue glaciale. Nous sommes en pleine campagne. D’immenses tentes se
dressent devant nous: c’est un lazarett (hôpital). Nous nous rangeons pour
laisser passer un blessé que l’on ramène sur un brancard de la salle
d’opérations. A notre gauche, un moteur ronfle. Nous pensons que c’est
grâce à lui que tout le campement que nous traversons est éclairé à la
lumière électrique.
Le P. C. de la division est un gourbi vraiment colossal, creusé dans la
terre, couvert et étayé d’un nombre surprenant de rondins, et l’ensemble a la
forme d’une pyramide de proportions excessives. Jamais nous n’avions vu
d’abri de cette importance. Il est vrai que la vie d’un général de division est
chose sacrée en Allemagne, et nous n’ignorons pas que le Kronprinz lui-
même a donné l’exemple des précautions à prendre à la guerre. On accède
au P. C. par un couloir à ciel ouvert taillé dans le flanc de la pyramide. Au
fond, deux portes. Le cuirassier frappe à l’une d’elles et pénètre dans une
vaste salle où nous apercevons plusieurs officiers. Nous attendons devant la
porte, pendant que notre cuirassier rend compte de notre arrivée et remet
l’ordre écrit qui nous accompagne. Deux officiers sortent nu-tête, crânes
tondus, nous regardent, ne nous disent rien, et rentrent. Une ordonnance
pénètre à son tour dans la grande salle avec un plateau où je compte huit
verres. Ces messieurs vont sans doute célébrer leur victoire de la journée, et
ce n’est probablement pas pour nous convier à la fêter avec eux qu’ils se
font apporter ces verres. Non, certainement; car peu de temps après, le
cuirassier sort du P. C., et il n’a pas l’air content.
Il n’est pas content du tout. Il nous annonce en effet, d’une voix
maussade, qu’il vient de recevoir l’ordre de nous conduire sans délai à la
Kommandantur de Rouvrois.
Rouvrois? Où est-ce? Est-ce loin? Est-ce près? Le cuirassier nous
montre le bout du papier qui lui fixe l’itinéraire et nous lisons ces quatre
noms: Azanne, Mangiennes, Pillon, Rouvrois. Quelque courte que soit la
distance qui sépare chacun de ces villages du suivant, ces quatre noms
représentent tout de suite pour nous un nombre considérable de kilomètres.
Nous sommes déjà éreintés. Nous sommes tous plus ou moins blessés. Le
sait-on? Ou s’en moque-t-on? Mais pourrons-nous arriver jusqu’au bout?
Quand nous nous remettons en route lentement, très lentement, il nous
semble que nous ne ferons même pas cent mètres. Hélas! dans quelle galère
sommes-nous embarqués! Nous sommes prisonniers, oui, bien prisonniers,
et nous nous en apercevons. Et que sont des prisonniers, sinon du bétail,
qu’on pousse devant soi jusqu’au jour des préliminaires de paix, où l’on
discutera le prix de rachat de chaque tête? En Allemagne, nous sommes un
objet de haine; et en France un objet de mépris. N’importe. Il faut marcher,
même quand on n’a rien mangé depuis trente-quatre heures. Pas un de nous
au reste ne consentirait à refuser d’aller plus loin; car dans l’ignorance où
nous sommes de ce que nous deviendrons plus tard, aucun de nous ne
voudrait se séparer de ses camarades, qu’il ne reverrait jamais sans doute.
Nous traversons Villes de nouveau dans toute sa longueur, et, pendant un
kilomètre environ, nous reprenons la mauvaise route par où nous sommes
venus. Nous croisons un assez long convoi d’artillerie: quatre gros canons
montés sur des chariots massifs aux roues énormes, chacun d’eux tiré par
huit chevaux. Et tout de suite après, nous entrons dans la nuit, dans la neige,
dans la boue et dans le froid. Nous avançons à grand’peine, sans savoir
comment nous nous tenons encore debout.
A la première halte que nous faisons, nous nous asseyons sur un talus du
chemin tout couvert de neige, et le mouvement seul que nous faisons pour
nous asseoir nous est une douleur de tout le corps. Qui n’a pas connu la
fatigue à son dernier période, ne pourra pas me comprendre. J’avais
conservé, dans la poche de ma capote, ma carte d’état-major au 1/80.000ᵉ,
la seule que nous eussions à notre disposition au début des affaires de
Verdun. Le capitaine me la demande, et nous cherchons à nous situer dans
l’espace, puisque le temps ne compte plus pour nous. A la clarté de la lune
et à la lueur d’une allumette, nous nous trouvons sans difficulté. Voici le
ravin du Bois-Chauffour, voici les Chambrettes, voici Villes, Azanne,
Mangiennes, Pillon, et voilà Rouvrois. Nous avons déjà fait une douzaine
de kilomètres. Nous en avons encore une trentaine à faire pour parvenir à
Rouvrois, terme de notre voyage, jusqu’à nouvel ordre. Trente kilomètres!
Est-ce possible? Mais les ferons-nous? Mais comment les ferons-nous? Il
neige toujours. Il fait froid. La route est complètement défoncée. Nous
enfonçons dans les ornières. Nous glissons dans des trous profonds.
Véritable marche au Calvaire. Nous marcherons toute la nuit. Arriverons-
nous? Et quand arriverons-nous?
Je tenterais vainement de rendre la désolation de notre lamentable exode.
Par quelle mystérieuse association d’idées me vient à l’esprit le souvenir
d’un livre de Pierre Loti, qui s’intitule Le Désert et qui, tout le long de ses
trois cents pages, ne parle que de soleil, de ciel bleu, et de sable rose, et de
solitude, prestigieux tour de force d’un poète qui peut chanter le néant
pendant des heures et des heures? Ainsi, pour nous, ce soir, tout se résume
en ceci: de la nuit, de la neige, du froid, de la fatigue, de la fièvre et du
découragement, et de la nuit et de la fatigue et toujours du découragement,
et cela pendant toute la nuit sans fin et tout le long de ces quarante
kilomètres de route que nous devons subir. L’homme du désert n’a pas plus
d’émotion en apercevant au loin la pierre d’un puits que nous n’en eûmes
nous-mêmes en découvrant dans l’ombre la silhouette minable du village de
Mangiennes.
Mangiennes ressemble à Villes. Aux maisons béantes, on n’a laissé que
les murs. Tout a disparu. La lune éclaire affreusement ces carcasses de
grands cadavres de pierres, et le village est un village mort. Nous nous
arrêtons sur une place, près d’une fontaine publique qui alimente une auge
assez importante. Une pancarte nous défend de boire de cette eau qui n’est
pas bonne et qui doit être réservée pour la lessive. Mais la fièvre est
impérieuse et la soif imprudente. Nous buvons quand même. Nous ne
parlons pas. Nous ne nous traînons plus que comme des automates. Le
village a l’air vide et ne semble pas abriter des troupes au cantonnement. A
tous les carrefours, de gigantesques inscriptions sur bois indiquent, par un
mot et une flèche, les directions à prendre. Et nous sortons de Mangiennes
sans tâtonner.
De Mangiennes à Pillon, nous mîmes certes plus de temps que je n’en
mettrai à le rapporter. C’est la même marche, dans le même paysage, avec
la même fatigue, sur une route identique, peut-être un peu moins mauvaise,
bien qu’elle soit très mauvaise encore. A chaque halte, il nous apparaît que
nous sommes au bout de nos forces, et nous continuons néanmoins jusqu’à
la halte suivante, où nous nous apercevons que nous sommes encore plus
brisés qu’à la précédente, ce que nous aurions cru impossible.
Somnambules que nous sommes, nous n’avons plus la ressource de penser.
Nous allons, groupe muet, éclopé, fourbu, glacé, à côté d’un cuirassier
prussien qui ne dit plus rien, lui non plus, tant il est épuisé de marcher à
pied dans la neige glissante, en soutenant son cheval qui le gêne plus qu’il
ne l’aide.
Si nous avons trouvé facilement notre route à travers Mangiennes, la
chose est moins aisée à Pillon, car il n’y a ici aucun de ces gigantesques
écriteaux, qui étaient si nombreux là-bas. Je tire de nouveau ma carte et
montre au cuirassier le chemin qu’il doit suivre. Il regarde ce que je lui
indique, mais il ne se décide pas. Il n’a sans doute pas confiance en nous. Il
frappe à la porte d’une maison qui semble être une ambulance. Vainement.
Personne ne répond. Tenant toujours son cheval par la bride, il va de porte
en porte, sans succès. Il trouve enfin une espèce de ferme, disparaît, revient,
attache sa monture dehors, et nous fait entrer avec lui dans une vaste grange
au fond de laquelle nous voyons, chichement éclairés, deux hommes mal
vêtus et deux cuisines roulantes côte à côte. L’un des cuisiniers est occupé à
tailler des parts dans de gros morceaux de viande bouillie, et l’autre, debout
sur le marchepied, plonge une grande louche dans l’immense marmite. Ni
celui-ci, ni celui-là ne nous adresse la parole.
Tout de suite la chaleur du foyer nous ranime. Mais quelle dérision!
Nous amener dans une cuisine alors que nous n’avons rien mangé depuis
quarante heures! Le cuirassier va-t-il cyniquement casser la croûte devant
nous? Il n’en faut pas douter. Déjà on lui donne du pain et une tranche de
bœuf. Mais, lui servi, on nous offre aussi du pain, de la viande et du café.
Qui n’a jamais eu faim ne concevra point que nous n’ayons pas eu la
dignité de refuser cette pitance clandestine. Nous avons mangé et bu. Pour
la première fois, nous goûtons en pays ennemi de ce fameux pain de guerre,
si cruellement cinglé par nos railleries françaises. Il n’est pas bon, il est
même mauvais, mais nous avions faim, et il nous contente. Quant au café,
s’il est nécessaire de l’appeler ainsi, c’est une vague décoction de je ne sais
quoi, sans sucre, sans couleur, sans saveur, et qui nous lèverait le cœur, si le
froid ne nous la faisait juger la meilleure des boissons chaudes. Tel fut notre
premier repas en Allemagne.
L’impression que nous en pûmes tirer, c’est que le soldat boche n’a peut-
être pas une cuisine très fine, mais il a de quoi se sustenter.
Au moment de repartir, car nous ne sommes pas au bout de nos peines,
le cuirassier nous dit sans aucun embarras:
—On vous demandera si vous avez mangé. Vous répondrez non.
Sa phrase est moins une prière qu’un ordre.
Comme nous passons devant l’église de Pillon, l’horloge sonne quatre
coups. Je regarde ma montre: elle marque trois heures. S’est-elle arrêtée?
Non, il faut désormais que nous nous réglions sur l’heure allemande et que
nous tenions compte d’une différence de cinquante minutes.
Les derniers kilomètres d’une étape paraissent toujours plus longs.
Ceux-ci nous semblent interminables. L’arrêt que nous avons fait dans la
cuisine de Pillon nous a cassé les jambes. Nous avons mal aux pieds, aux
reins, aux épaules, sans parler des blessures du combat. On doit se raidir et
se tendre de toute sa volonté pour marcher encore.
A la lisière d’un petit bois, nous rencontrons un cavalier en patrouille.
Tout en passant, il nous dit:
—’ten Abend (Bonsoir).
Il ne s’est peut-être même pas aperçu que nous sommes des prisonniers.
Enfin, car il faut bien que tout finisse, nous arrivons à Rouvrois. Nous
avons tellement répété que nous n’en pouvions plus, que nous aurions
besoin d’inventer une expression pour marquer à quel degré de fatigue nous
atteignons. Ah! se coucher! s’allonger! se reposer! dormir! dormir surtout,
comme des brutes, après tant d’émotions et de surmenage. Est-ce que nous
dormirons? Est-ce vraiment ici qu’on nous retiendra? Ne va-t-on pas d’ici
nous expédier plus loin? Qui sait? Et pourquoi non?
La kommandantur occupe une petite maison en briques. Une inscription
en gros caractères noirs la signale par ces mots: «GENERAL K D O». La
même inscription se trouve sur une lanterne à verre rouge accrochée, non
pas à la porte d’un établissement spécial, mais au premier étage de la
maison voisine, qui fait le coin de la rue. Un grand poteau chargé de fils
téléphoniques et télégraphiques se dresse près de la kommandantur; et le
quartier général est gardé par une sentinelle de la landsturm, qui, l’arme à la
bretelle et les mains dans les poches de sa capote grise, se promène le long
d’un sentier de caillebotis, en rotant régulièrement toutes les trente secondes
avec une vigueur qui nous surprend d’abord quelque peu.
Le cuirassier est entré à la kommandantur. Nous nous sommes assis sur
un banc de pierre, le dos contre la muraille. Il fait froid. La nuit s’achève.
Le capitaine s’est assoupi. La sentinelle continue sa lourde promenade en
rotant consciencieusement avec la même régularité, comme par gageure, à
moins que ce ne soit un procédé recommandé par les consignes du poste
pour résister au sommeil.
Mais voici que le cuirassier sort de la kommandantur. Il a l’air plus
satisfait qu’au départ du P. C. de la division. Sa mission est finie. Il nous dit
adieu très simplement et nous remet entre les mains d’un fantassin en
calotte de campagne qui, baïonnette au canon, nous conduit, à une
cinquantaine de mètres de là, dans une petite maison de pauvre apparence.
Allons-nous enfin nous reposer? Nous entrons dans une pièce qui a, pour
tout mobilier, un bahut, une table, deux bancs et un poêle. Le parquet est
sale. Les murs suintent l’humidité. La table est recouverte d’un enduit
crasseux. Dans un coin, il y a une dizaine de paillasses, qui ne sont pas trop
propres. Une odeur infâme règne. Ne soyons pas dégoûtés. Nous sommes
prisonniers et nous en verrons bien d’autres sans doute.
Sous la surveillance d’un feldwebel, l’homme qui nous a conduits
dispose les paillasses l’une à côté de l’autre. Puis, de lui-même et avant que
le sous-officier ait pu l’en empêcher, il se met à nous allumer du feu dans le
poêle. Pendant que nous nous installons et que lui s’emploie à ce travail, le
feldwebel le traite à plusieurs reprises, et à mi-voix, de «dummkerl», comme
si nous ne devions pas comprendre qu’il le sacre imbécile et triple imbécile.
Et cela nous assure sans hésitation des sentiments que le feldwebel nourrit à
notre égard.
à José Germain
CHAPITRE III

DE ROUVROIS A PIERREPONT

(10 mars 1916).


Nous n’avons pas dormi longtemps, mais ce peu de sommeil nous a
suffi. Ai-je rêvé? Où suis-je? J’ai l’esprit lourd, comme un malade qui entre
en convalescence. Je me frotte les yeux, et toute l’effroyable journée de la
veille me revient à la mémoire. Je regarde autour de moi. Quelle tristesse!
Déjà mes camarades se lèvent. Ils ont les traits tirés, les paupières
plombées, la barbe longue, et tous se plaignent de courbature. Le même
désespoir, que nous ne nous avouons pas, nous tient tous les quatre. Et c’est
dans un silence navrant que nous faisons notre toilette, vaille que vaille,
pour la première fois depuis cinq jours. Depuis cinq jours, nous n’avions pu
nous débarbouiller: l’eau, ce matin, est une chose merveilleuse qui nous fait
du bien.
Nous ne sommes pas seuls dans la chambre. Un homme de garde est là,
baïonnette au canon, devant la porte, et il nous surveille de près. Il n’a pas
la physionomie d’un mauvais diable. Il louche un peu et montre un vif désir
de causer avec nous. Il ne s’exprime d’ailleurs pas en un français trop
incorrect.
Comme tous ceux que nous avons vus jusqu’ici, cet Allemand
commence par nous parler de lui-même. Viendront ensuite les questions
qu’il brûle de nous poser. C’est un procédé d’une habileté assez pesante;
mais, à force d’entendre toujours les mêmes questions et les mêmes
affirmations sur la guerre, la France et l’Angleterre, je me persuade que ces
Boches récitent une leçon apprise.
Ainsi pour cet homme. Il veut être trop aimable. Il nous raconte qu’il a
fait campagne en Russie et dans les Balkans. Il parle doucement,
doucereusement même, et il nous sert des phrases effarantes sans avoir l’air
d’y toucher. Il ne pérore pas depuis cinq minutes, que déjà il nous pousse sa
charge contre l’Angleterre. D’abord, les Russes n’existent pas. Ce sont des
soldats pour la forme. En fait, ils ne sont pas dangereux, et notre sentinelle
en rit avec complaisance. Les Français ne leur ressemblent point. Voilà de
bons soldats. Eux seuls ont opposé à l’Allemagne une résistance sérieuse.
Eux seuls empêchent l’Allemagne d’arriver plus vite à la victoire. La
France sera vaincue, mais l’Allemagne estime la France comme elle le
mérite. Si seulement la France comprenait mieux son intérêt! Mais elle s’est
jetée dans les bras de l’Angleterre; l’Angleterre la mène par le bout du nez,
elle la saigne à blanc sur les champs de bataille, elle la ruinera d’hommes et
d’argent, et plus tard elle la mettra purement et simplement au nombre de
ses colonies. Cette Angleterre est haïssable. C’est pourquoi notre homme la
hait, et son sentiment est bien naturel, n’est-ce pas, puisque les Anglais font
durer la guerre à plaisir?
Notre homme n’en reste pas là. Nous l’écoutons. Nous n’avons rien
d’autre à faire.
—La guerre est finie pour vous, dit-il. Vous serez bien en Allemagne,
vous verrez. On a beaucoup d’égards chez nous pour les officiers
prisonniers.
Cette considération personnelle ne nous émeut guère. La sentinelle reçoit
cette réponse, qui exclut toute sentimentalité, que la certitude d’avoir la vie
sauve ne suffit pas au bonheur d’un soldat français et que la captivité, même
dorée, à supposer qu’elle le soit, ne vaut pas la satisfaction de souffrir à sa
place dans la misère quotidienne de la tranchée.
C’est tout un drame qui se joue là, dans cette pauvre chambre de
Rouvrois, entre un troupier allemand et des soldats de chez nous, un drame
d’idées et de caractères qui reproduit en petit l’effroyable tragédie où, des
deux races aux prises de la mer du Nord à la frontière suisse, l’une
proclame le droit de vivre, et l’autre défend le droit de mourir. Le même
malentendu se retrouve ici, car notre homme ne comprend rien à notre
attitude, et le regard étonné dont il nous enveloppe signifie que décidément
nous sommes de piètres individus, que nous ne serons jamais sérieux et
qu’enfin nous sommes pitoyables.
La journée du 10 mars devait nous offrir, dès notre entrée chez l’ennemi,
un raccourci d’à peu près tout ce que nous verrions par la suite. Sans plus
tarder, nous allions connaître la profondeur du fossé qui sépare la France
lumineuse et libre de l’Allemagne asservie et embrumée. D’un côté, des
idées; de l’autre, des appétits; ici, des sentiments; là, des méthodes. Les
deux peuples se touchent sans se confondre. Et ce n’est pas faute d’être
éclairée sur nous que l’Allemagne garde ses principes à elle. Ses hommes
sont d’une curiosité extraordinaire. Tout les intéresse de nous. Ils ne se
lassent pas de nous interroger. Ils veulent savoir à tout prix qui nous
sommes, ce que nous pensons, ce que nous faisons, ce que nous voulons.
Mais, qu’on ne l’ignore pas, ce n’est point pour s’améliorer que
l’Allemagne cherche à s’instruire. Elle a des principes nettement arrêtés.
Rien ne pourra l’en distraire. Elle s’y tient comme un chien s’accroche à un
os. Et, si elle montre tant de curiosité envers nous, c’est pour se convaincre
un peu plus de sa supériorité et se raffermir dans son orgueil.
Ce matin-là, nous étions évidemment à l’ordre du jour de Rouvrois.
Nous attendions la visite de tout ce qu’un état-major qui se respecte traîne
avec soi d’officiers pleins d’importance. Aussi ne fûmes-nous pas surpris,
quand, vers les huit heures du matin, entra dans notre cellule un officier
allemand qui se présenta à nous comme interprète. Il nous demanda quel
était le plus ancien de nous tous, et il sortit aussitôt, après avoir invité le
capitaine V*** à sortir avec lui.
Nous pensions que nous allions subir l’un après l’autre, et séparément,
l’interrogatoire de rigueur. Il n’en fut rien. L’interprète n’était pas chargé de
nous interroger. Il désirait seulement causer avec le capitaine. Quelle tendre
sollicitude et quelle délicatesse de savoir-vivre! Mais combien plutôt la ruse
était grossière! Car, sous le prétexte d’une simple causerie, on voulait
essayer de faire parler le plus ancien d’entre nous en lui donnant le change.
Le capitaine ne s’y trompa point, et, quand il revint parmi nous, il nous
rapportait des choses précieuses, alors que son interlocuteur s’en allait les
mains vides.
L’impression retirée par nous de cet entretien d’allure familière confirme
celle que nous avons eue déjà en quittant le gourbi des Chambrettes: les
Allemands sont inquiets au sujet de Verdun. Ils trouvent que le succès ne
répond pas à leur attente. Ils voudraient savoir si nous avons des réserves
d’infanterie et d’artillerie en arrière de notre ligne, qui semble précaire,
mais qui peut-être cache un piège. Ils ne se fient pas aux déclarations que
leur ont faites quelques soldats français qu’ils ont capturés, car ils ont plus
d’une fois éprouvé que ces déclarations, fausses à plaisir, ne servaient qu’à
les égarer. Comment obtenir qu’un officier parle? C’est bien difficile, et il
faut emprunter des chemins détournés.
L’interprète croit que Verdun tombera, comme tous les Allemands le
croient. Il estime néanmoins que ce ne sera ni sans retard, ni sans pertes
pour les assaillants. Mais il est d’une intelligence peut-être plus grande, à
moins que les idées propagées par le gouvernement de Berlin ne soient
dosées suivant les classes qu’on veut toucher, et, tandis que tous les
troupiers allemands nous ont chaudement affirmé que la prise de Verdun
terminerait les hostilités, il professe quant à lui qu’elle ne servirait de rien
dans la marche de la guerre. Verdun n’est point Paris. Quelle carte ce serait
pourtant entre les mains de l’Allemagne!
—Si nous ne prenons pas Verdun, dit-il, nous ne pourrons pas nous
montrer exigeants au moment de la paix.
A l’heure que sa patrie traverse une crise redoutable, est-il rien de plus
réconfortant pour un prisonnier que d’assister à la faillite des espérances du
vainqueur et au commencement des déceptions démoralisantes?
Nous écoutions passionnément ces propos du capitaine, lorsqu’un nouvel
officier entra dans la chambre. Après l’échec de l’autre, venait-il
officiellement celui-ci?
Il est grand, de belle prestance sous l’uniforme gris, et même il ne
manque pas d’une certaine élégance. Il parle bien le français, il porte sous le
bras gauche une liasse de dossiers, et il a ôté sa casquette en entrant chez
nous. Après quelques paroles de politesse, il nous montre une feuille de
papier écolier où sont inscrits déjà quelques noms d’officiers, et il nous
demande de nous inscrire à notre tour. Nous consultons la liste: nous n’y
voyons personne que nous connaissions, et nous remarquons seulement le
nom de quelques officiers d’un régiment de notre division. Cette petite
cérémonie terminée, nous nous préparons à une attaque en règle. En effet,
elle a lieu, mais avec tant de tergiversations que nous n’aurons pas de peine
à garder le dessus.
Cet officier est un mauvais diplomate. Il nous dit:
—Regardez.
Et il déplie devant nos yeux un grand tableau imprimé indiquant la
composition de tous nos corps d’armée, divisions et brigades. Un trait de
crayon bleu encadre les unités que les Allemands ont pu identifier devant
eux à Verdun, depuis le 21 février, premier jour de l’offensive.
L’officier a un sourire satisfait. Mais il nous montre du doigt plusieurs
points d’interrogation, faits au crayon bleu aussi, qui déparent le beau
travail qu’il nous exhibait. Son geste est d’une candeur touchante, et c’est
nous maintenant qui, pour toute réponse, nous contentons de sourire. Alors
l’officier replie mélancoliquement son tableau.
Pour dissiper la gêne qu’il sent, il nous annonce que nous quitterons
Rouvrois dans le courant de l’après-midi, vers deux heures. Nous irons à
Pierrepont, qui est un point d’embarquement, et nous partirons avec un
certain nombre de soldats français, prisonniers comme nous, lesquels sont
gardés et parqués dans l’église du village.
Le capitaine profite de l’occasion pour demander ce que sont devenues
nos ordonnances.
—Un major du 36ᵉ saxon, dit-il, nous avait promis qu’on nous les
laisserait. Mais on nous les a retirées en route pour transporter des blessés.
L’officier s’empresse de répondre que la promesse du major sera tenue,
que c’est une chose certaine, que les Allemands ont l’habitude de ne pas
séparer les ordonnances de leurs officiers et que par conséquent les nôtres
nous seront rendues lors de l’embarquement en chemin de fer. Et sur cette
promesse, qui ne lui coûte que quelques phrases, l’officier se retire.
C’est maintenant l’heure de notre premier repas officiel, et ce sera le
plus important de la journée, selon la coutume allemande, car il est de règle
là-bas de manger beaucoup le matin et peu le soir. Un soldat, qui doit rester
à notre disposition jusqu’à ce que nous ayons achevé, place sur la table des
assiettes creuses, des cuillers, des fourchettes, des tasses et une grande
cafetière pleine de café. Le café sera notre boisson: il ne ressemble pas plus
à ce que nous appelons chez nous de ce nom, que la fade lavasse que nous
avons prise, la nuit précédente, dans la grange de Pillon. Quant à notre
pitance, elle ne sera pas compliquée. Le soldat apporte une marmite et
emplit nos assiettes d’une soupe épaisse, faite de potage condensé, de riz et
de petits morceaux de viande de la grosseur d’un dé à jouer. J’avoue que
cette soupe nous parut succulente. Le soldat qui nous sert est d’une
prévenance extrême. A peine ai-je vidé mon assiette qu’il me l’enlève. Que
va-t-il me donner?—Une deuxième assiettée de la même soupe. Car, je
peux le dire maintenant, on ne nous présentera pas autre chose. Libre à nous
de reprendre trois ou quatre fois de cet unique plat. Alimentation simple et
rustique dont il faudra nous accommoder. Encore serait-elle suffisante, si
nous en avons toujours autant, et surtout si l’on nous distribuait un peu de
pain. Mais notre menu de ce matin n’en comportait pas.
Manger et dormir sont à peu près les seules occupations d’un prisonnier.
Nous nous sommes donc allongés sur nos paillasses après ce magnifique
repas. Savions-nous ce que nous ferions? Avant notre départ, qui était fixé
pour deux heures, nous voulions nous reposer et nous mettre en état de
supporter de nouvelles épreuves.
A deux heures, en effet, on vient nous chercher. Nous sortons. Quelques
civils nous regardent, ne disent rien, ne font pas un geste. Évidemment on
les épie. Près de l’église, nous trouvons une trentaine de soldats français de
régiments différents, et, parmi eux, quelques chasseurs de notre bataillon,
tous rangés par quatre. Nos ordonnances sont là. Des hussards, armés de la
lance, doivent nous escorter. On nous place à la tête de la petite troupe, et
nous partons. Trois vieillards, arrêtés devant nous, se découvrent et nous
saluent gravement. Jamais salut ne m’a ému comme celui-là.
La route est moins difficile que la nuit dernière. La neige a fondu. Nous
croisons deux voitures automobiles chargées d’officiers d’état-major. Ce
sont les premières que nous voyons. Elles laissent après elles une odeur
infecte d’essence de qualité inférieure. Tout le long de la route, dans les
champs, tantôt ici et tantôt là, nous remarquons des tombes. De Français ou
d’Allemands? Nous ne savons pas, et nous ignorons si elles sont récentes ou
si elles datent déjà des débuts de la guerre. Derrière nous, les soldats
causent entre eux, à voix basse. Nous avons tous des figures hâves où les
yeux brillent de fièvre. Quoique j’aie connu les jours de Charleroi, de Guise
et de la Marne, quoique j’aie souffert pendant la morne retraite, je ne me
rappelle rien de comparable à la désolation qui pèse sur nous. Nous sommes
écrasés d’un accablement sans nom et toute pensée nous est une torture.
Ceux d’entre nous qui croyaient avoir épuisé les misères de la campagne,
n’avaient pas imaginé celle qui nous étreint aujourd’hui.
Pour aller à Pierrepont, nous quittons la route Rouvrois-Longuyon. Le
carrefour est occupé par des troupes au repos, section de munitions ou de
parc d’artillerie. Des chariots et des caissons sont alignés, des soldats nous
regardent passer. Deux officiers sont parmi eux, et, au moment où nous
allons les croiser, ils nous saluent.
Il fait froid. Un pâle soleil n’arrive pas à nous réchauffer. La plaine est
blanche de neige autour de nous, et tout le paysage est d’une tristesse
infinie.
Nous approchons d’un village: c’est Arrancy. Sur la route, des civils,
jeunes et vieux, travaillent sous la surveillance de soldats en armes. On ne
nous avait pas trompés, quand on nous avait dit en France que nos pauvres
frères des régions envahies subissaient le régime des Travaux Publics.
Devant leur détresse effroyable qu’il n’est que trop aisé de voir dans leurs
yeux et sur leurs visages amaigris, nous oublions la nôtre. La nôtre
commence. Ils endurent la leur depuis dix-neuf mois. Honte à ceux qui
commettent ces crimes! Et honte à ceux qui, par leur faute et par leur
imprévoyance, ont pu permettre que ces crimes fussent commis!
Comment oublierais-je le ton de ce cantonnier minable, qui, à deux pas
de son gardien, trouve le courage de nous dire, après tant d’heures noires:
—N’est-ce pas que ce n’est pas vrai qu’ils ont pris Verdun?
Quelle force y a-t-il donc dans le cœur d’un Français pour que jamais le
moindre doute ne le touche quant aux destinées de sa patrie? Ainsi de cet
homme. Depuis dix-neuf mois il est esclave. Depuis dix-neuf mois il a faim,
il ne sait rien de ce qui se passe chez lui. Un jour, le maître brutal, désespéré
de sa résistance, lui annonce qu’il s’est emparé de Verdun. Et l’esclave,
avec son bon sens et sa foi éternelle, lui répond:
—Ce n’est pas vrai.
Homme d’Arrancy, qui que tu sois, Français que je ne reverrai peut-être
de ma vie, tu m’as donné une belle leçon. Le peuple d’où tu sors ne peut
pas être vaincu. Et ta forte parole me fait oublier ce que j’ai vu ensuite dans
ton village d’Arrancy. Je t’avais rencontré avant d’y entrer.
Quel spectacle navrant en effet, quelle douleur à chaque pas renouvelée!
Voici une jeune femme qui vient vers nous. En riant elle adresse quelques
mots au hussard qui nous précède, fait un pas, prend un air tragique, nous
demande en passant:
—Ça ne va donc pas?
Et, sans attendre notre réponse, elle lance déjà des plaisanteries aux
soldats qui nous suivent.
Dans toutes les maisons, il y a des soldats allemands. Par les fenêtres
ouvertes, car on veut nous voir, c’est nous qui voyons. Les Allemands sont
là comme chez eux, installés en famille. Est-il possible que cette chose soit?
N’est-ce point par la terreur qu’ils ont occupé nos pauvres foyers sans
défense? Hélas! Un de mes camarades m’apprend que, déjà, avant la guerre,
ce pays était infesté d’Allemands plus ou moins déguisés, qu’on n’y
dissimulait ni de la sympathie pour l’Allemagne, ni de la défiance et de la
mauvaise humeur contre nos troupes quand elles y cantonnaient. Faut-il que
je le croie? Mais devant ces horreurs, comme il grandit, comme il grandit,
l’humble cantonnier de tout à l’heure!
A la sortie du village, à deux cents mètres environ, les hussards nous
font quitter le chemin et entrer dans un champ en bordure couvert de neige.
Puis, ils nous arrêtent. Halte. Dix minutes de repos.
Quand on nous remet en route, pour les derniers kilomètres qui nous
séparent de Pierrepont, deux fantassins allemands nous emboîtent le pas. Ils
sont équipés et vêtus de neuf et portent la casquette grise à visière et à
bandeau rouge que portent les sous-officiers. L’un d’eux paraît tout jeune.
Naturellement ils se mettent à nous parler, et naturellement leur curiosité
nous pose toutes les questions obligatoires qu’on nous a déjà posées.
Combien de temps durera la guerre? Que dit-on en France à ce sujet?
Les Allemands prendront-ils Verdun? S’ils prennent Verdun, la paix sera
signée. L’Angleterre est une infâme nation de traîtres et de pirates. La
France, au contraire, est très sympathique; on l’estime et on la plaint.
Pourquoi faut-il qu’elle se laisse mener par le bout du nez au gré de
l’Angleterre?
Nous discutions encore avec nos deux catéchumènes en armes, quand
nous arrivons à Pierrepont.
Un capitaine nous arrête et sépare les officiers de la troupe. Une
contestation s’engage à propos de l’adjudant-chef Ch*** qui voudrait bien
nous suivre.
—Est-il officier? demande le capitaine.
—Il est adjudant-chef.
—Il n’est pas officier? répète l’autre.
—Non, mais offizierstellvertreter[D].
—Je regrette. Il n’est pas officier. Je ne peux emmener que les officiers.
Mais la dispute n’est pas finie.
—Nos ordonnances sont avec nous. On nous a promis...
—Tout à l’heure, réplique le capitaine.
Et il nous emmène par un escalier qui descend la grand’rue.
Près de la gare, nous traversons les ruines de ce qui fut une usine
française, mais on l’a incendiée et détruite. Puis nous prenons par un vaste
jardin désert, tout blanc de neige.
Au détour d’une allée, nous rencontrons un général très vieux, qui se
promène les mains derrière le dos, en compagnie d’un major aussi vieux

You might also like