0% found this document useful (0 votes)
25 views49 pages

PDF Software Development With Go: Cloud-Native Programming Using Golang With Linux and Docker Nanik Tolaram Download

ebook

Uploaded by

nayemindingu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views49 pages

PDF Software Development With Go: Cloud-Native Programming Using Golang With Linux and Docker Nanik Tolaram Download

ebook

Uploaded by

nayemindingu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

Full download ebooks at https://ebookmeta.

com

Software Development with Go: Cloud-Native


Programming using Golang with Linux and Docker
Nanik Tolaram

For dowload this book click link below


https://ebookmeta.com/product/software-development-with-go-
cloud-native-programming-using-golang-with-linux-and-docker-
nanik-tolaram/

OR CLICK BUTTON

DOWLOAD NOW
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Software Development with Go Cloud Native Programming


using Golang with Linux and Docker 1st Edition Nanik
Tolaram

https://ebookmeta.com/product/software-development-with-go-cloud-
native-programming-using-golang-with-linux-and-docker-1st-
edition-nanik-tolaram/

Network Programming with Go Language: Essential Skills


for Programming, Using and Securing Networks with Open
Source Google Golang 2nd Edition Jan Newmarch

https://ebookmeta.com/product/network-programming-with-go-
language-essential-skills-for-programming-using-and-securing-
networks-with-open-source-google-golang-2nd-edition-jan-
newmarch-2/

Network Programming with Go Language : Essential Skills


for Programming, Using and Securing Networks with Open
Source Google Golang 2nd Edition Jan Newmarch

https://ebookmeta.com/product/network-programming-with-go-
language-essential-skills-for-programming-using-and-securing-
networks-with-open-source-google-golang-2nd-edition-jan-newmarch/

Cloud Native Development with Google Cloud Daniel


Vaughan

https://ebookmeta.com/product/cloud-native-development-with-
google-cloud-daniel-vaughan/
Pro Go: The Complete Guide to Programming Reliable and
Efficient Software Using Golang 1st Edition Adam
Freeman

https://ebookmeta.com/product/pro-go-the-complete-guide-to-
programming-reliable-and-efficient-software-using-golang-1st-
edition-adam-freeman/

Kubernetes Programming with Go: Programming Kubernetes


Clients and Operators Using Go and the Kubernetes API
1st Edition Philippe Martin

https://ebookmeta.com/product/kubernetes-programming-with-go-
programming-kubernetes-clients-and-operators-using-go-and-the-
kubernetes-api-1st-edition-philippe-martin-2/

Kubernetes Programming with Go: Programming Kubernetes


Clients and Operators Using Go and the Kubernetes API
1st Edition Philippe Martin

https://ebookmeta.com/product/kubernetes-programming-with-go-
programming-kubernetes-clients-and-operators-using-go-and-the-
kubernetes-api-1st-edition-philippe-martin/

Beginning Cloud Native Development with MicroProfile,


Jakarta EE, and Kubernetes 1st Edition Tarun Telang

https://ebookmeta.com/product/beginning-cloud-native-development-
with-microprofile-jakarta-ee-and-kubernetes-1st-edition-tarun-
telang/

Hands on DevOps with Linux Build and Deploy DevOps


Pipelines Using Linux Commands Terraform Docker Vagrant
and Kubernetes English Edition Alisson Machado De
Menezes
https://ebookmeta.com/product/hands-on-devops-with-linux-build-
and-deploy-devops-pipelines-using-linux-commands-terraform-
docker-vagrant-and-kubernetes-english-edition-alisson-machado-de-
Software Development
with Go
Cloud-Native Programming
using Golang with Linux
and Docker

Nanik Tolaram
Software Development with Go: Cloud-Native Programming using Golang
with Linux and Docker

Nanik Tolaram
Sydney, NSW, Australia

ISBN-13 (pbk): 978-1-4842-8730-9 ISBN-13 (electronic): 978-1-4842-8731-6


https://doi.org/10.1007/978-1-4842-8731-6
Copyright © 2023 by Nanik Tolaram
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: James Robinson-Prior
Development Editor: James Markham
Coordinating Editor: Gryffin Winkler
Copy Editor: Mary Behr
Cover designed by eStudioCalamar
Cover image designed by Freepik (www.freepik.com)
Distributed to the book trade worldwide by Springer Science+Business Media New York, 1
New York Plaza, Suite 4600, New York, NY 10004-1562, USA. Phone 1-800-SPRINGER, fax (201)
348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media,
LLC is a California LLC and the sole member (owner) is Springer Science + Business Media
Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for
reprint, paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub (https://github.com/Apress). For more detailed information,
please visit www.apress.com/source-code.
Printed on acid-free paper
I would like to dedicate this book to my late Dad who stood
by me and encouraged me to write my very first book when
I was 17 years old. To my dearest Mum who always
supported me in pursuing my dreams and encouraged me
to keep on going no matter what life brings. To my beautiful
wife and best friend for allowing me the time to write the
book and supporting me in every step of our life. To both my
sons, Rahul and Manav, for allowing me to spend time in
front of the computer on weekends to chase my dream and
passion. Last but not least, to God for giving me this life and
opportunity to be where I am in this world.
Table of Contents
About the Author�������������������������������������������������������������������������������xiii

About the Technical Reviewer������������������������������������������������������������xv

Acknowledgments����������������������������������������������������������������������������xvii

Introduction���������������������������������������������������������������������������������������xix

Part I: System Programming������������������������������������������������1


Chapter 1: System Calls�����������������������������������������������������������������������3
Source Code����������������������������������������������������������������������������������������������������������3
What Is a System Call?�����������������������������������������������������������������������������������������4
C System Call��������������������������������������������������������������������������������������������������������5
sys/unix Package��������������������������������������������������������������������������������������������������8
System Call in Go������������������������������������������������������������������������������������������������������� 10
Summary������������������������������������������������������������������������������������������������������������14

Chapter 2: System Calls Using Go������������������������������������������������������15


Source Code��������������������������������������������������������������������������������������������������������15
Syscall Package��������������������������������������������������������������������������������������������������16
syscall Application����������������������������������������������������������������������������������������������������� 16
Checking Disk Space������������������������������������������������������������������������������������������������� 18
Webserver with syscall���������������������������������������������������������������������������������������������� 20

v
Table of Contents

ELF Package�������������������������������������������������������������������������������������������������������22
High-Level ELF Format���������������������������������������������������������������������������������������������� 23
Dump Example���������������������������������������������������������������������������������������������������������� 24

/sys Filesystem���������������������������������������������������������������������������������������������������28
Reading AppArmor����������������������������������������������������������������������������������������������������� 29

Summary������������������������������������������������������������������������������������������������������������31

Chapter 3: Accessing proc File System����������������������������������������������33


Source Code��������������������������������������������������������������������������������������������������������33
Peeking Inside procfs������������������������������������������������������������������������������������������34
Reading Memory Information�����������������������������������������������������������������������������38
Peeking Network Information������������������������������������������������������������������������������������ 41

Using the procfs Library��������������������������������������������������������������������������������������44


Code Sample������������������������������������������������������������������������������������������������������������� 44
Inside the procfs Library�������������������������������������������������������������������������������������������� 46

Summary������������������������������������������������������������������������������������������������������������48

Part II: Containers���������������������������������������������������������������49


Chapter 4: Simple Containers�������������������������������������������������������������51
Linux Namespace������������������������������������������������������������������������������������������������51
cgroups���������������������������������������������������������������������������������������������������������������55
rootfs�������������������������������������������������������������������������������������������������������������������58
Gontainer Project������������������������������������������������������������������������������������������������63
Summary������������������������������������������������������������������������������������������������������������70

vi
Table of Contents

Chapter 5: Containers with Networking���������������������������������������������71


Source Code��������������������������������������������������������������������������������������������������������71
Network Namespace������������������������������������������������������������������������������������������������� 72
Setting Up with the ip Tool����������������������������������������������������������������������������������������� 74
Containers with Networks����������������������������������������������������������������������������������������� 79
Summary������������������������������������������������������������������������������������������������������������������� 88

Chapter 6: Docker Security�����������������������������������������������������������������89


Source Code��������������������������������������������������������������������������������������������������������89
seccomp Profiles������������������������������������������������������������������������������������������������89
libseccomp���������������������������������������������������������������������������������������������������������������� 91
Docker seccomp�������������������������������������������������������������������������������������������������������� 95

Docker Proxy�������������������������������������������������������������������������������������������������������98
Container Attack Surface����������������������������������������������������������������������������������105
Summary����������������������������������������������������������������������������������������������������������106

Part III: Application Security��������������������������������������������109


Chapter 7: Gosec and AST����������������������������������������������������������������111
Source Code������������������������������������������������������������������������������������������������������111
Abstract Syntax Tree�����������������������������������������������������������������������������������������111
Modules������������������������������������������������������������������������������������������������������������������� 115
Sample Code����������������������������������������������������������������������������������������������������������� 116

gosec����������������������������������������������������������������������������������������������������������������122
Inside gosec������������������������������������������������������������������������������������������������������������ 123
Rules������������������������������������������������������������������������������������������������������������������������ 128

Summary����������������������������������������������������������������������������������������������������������130

vii
Table of Contents

Chapter 8: Scorecard������������������������������������������������������������������������131
Source Code������������������������������������������������������������������������������������������������������131
What Is Scorecard?�������������������������������������������������������������������������������������������131
Setting Up Scorecard����������������������������������������������������������������������������������������������� 133
Running Scorecard�������������������������������������������������������������������������������������������������� 137
High-Level Flow������������������������������������������������������������������������������������������������������� 139

GitHub���������������������������������������������������������������������������������������������������������������145
GitHub API���������������������������������������������������������������������������������������������������������������� 145
GitHub Explorer�������������������������������������������������������������������������������������������������������� 156

Summary����������������������������������������������������������������������������������������������������������159

Part IV: Networking����������������������������������������������������������161


Chapter 9: Simple Networking����������������������������������������������������������163
Source Code������������������������������������������������������������������������������������������������������163
TCP Networking������������������������������������������������������������������������������������������������163
TCP Client���������������������������������������������������������������������������������������������������������������� 164
TCP Server��������������������������������������������������������������������������������������������������������������� 166

UDP Networking������������������������������������������������������������������������������������������������168
UDP Client���������������������������������������������������������������������������������������������������������������� 169
UDP Server�������������������������������������������������������������������������������������������������������������� 172
Concurrent Servers�������������������������������������������������������������������������������������������������� 174

Load Testing������������������������������������������������������������������������������������������������������175
Summary����������������������������������������������������������������������������������������������������������179

Chapter 10: System Networking�������������������������������������������������������181


Source Code������������������������������������������������������������������������������������������������������181
Ping Utility���������������������������������������������������������������������������������������������������������181
Code Walkthrough��������������������������������������������������������������������������������������������������� 182

viii
Table of Contents

DNS Server��������������������������������������������������������������������������������������������������������188
Running a DNS Server��������������������������������������������������������������������������������������������� 188
DNS Forwarder�������������������������������������������������������������������������������������������������������� 189
Pack and Unpack����������������������������������������������������������������������������������������������������� 193
Summary����������������������������������������������������������������������������������������������������������196

Chapter 11: Google gopacket������������������������������������������������������������199


Source Code������������������������������������������������������������������������������������������������������199
gopacket�����������������������������������������������������������������������������������������������������������200
Layer������������������������������������������������������������������������������������������������������������������������ 200
Packet���������������������������������������������������������������������������������������������������������������������� 204

Using gopacket�������������������������������������������������������������������������������������������������205
pcap������������������������������������������������������������������������������������������������������������������������� 205
Networking Sniffer�������������������������������������������������������������������������������������������������� 206
Capturing With BPF�������������������������������������������������������������������������������������������������� 217

Summary����������������������������������������������������������������������������������������������������������222

Chapter 12: Epoll Library������������������������������������������������������������������223


Source Code������������������������������������������������������������������������������������������������������224
Understanding epoll������������������������������������������������������������������������������������������224
epoll in Golang��������������������������������������������������������������������������������������������������226
Epoll Registration���������������������������������������������������������������������������������������������������� 227
Epoll Wait����������������������������������������������������������������������������������������������������������������� 229

Epoll Library������������������������������������������������������������������������������������������������������232
Summary����������������������������������������������������������������������������������������������������������235

ix
Table of Contents

Part V: Securing Linux������������������������������������������������������239


Chapter 13: Vulnerability Scanner����������������������������������������������������239
Source Code������������������������������������������������������������������������������������������������������239
Vulnerability Scanners��������������������������������������������������������������������������������������240
Using Vuls���������������������������������������������������������������������������������������������������������241
Checking Out the Code�������������������������������������������������������������������������������������������� 241
Running Scan���������������������������������������������������������������������������������������������������������� 243

Learning From Vuls�������������������������������������������������������������������������������������������248


Port Scan����������������������������������������������������������������������������������������������������������������� 248
Exec������������������������������������������������������������������������������������������������������������������������� 255
SQLite���������������������������������������������������������������������������������������������������������������������� 257

Summary����������������������������������������������������������������������������������������������������������263

Chapter 14: CrowdSec����������������������������������������������������������������������265


Source Code������������������������������������������������������������������������������������������������������265
CrowdSec Project����������������������������������������������������������������������������������������������266
Using CrowdSec������������������������������������������������������������������������������������������������������ 266
crowdsec.db������������������������������������������������������������������������������������������������������������ 270

Learning From CrowdSec���������������������������������������������������������������������������������273


System Signal Handling������������������������������������������������������������������������������������������� 274
Handling Service Dependencies������������������������������������������������������������������������������ 280
GeoIP Database������������������������������������������������������������������������������������������������������� 285

Summary����������������������������������������������������������������������������������������������������������290

x
Table of Contents

Part VI: Terminal User Interface���������������������������������������293


Chapter 15: ANSI and UI�������������������������������������������������������������������293
Source Code������������������������������������������������������������������������������������������������������293
ANSI Escape Code���������������������������������������������������������������������������������������������294
ANSI-Based UI���������������������������������������������������������������������������������������������������296
Color Table��������������������������������������������������������������������������������������������������������������� 296
Styling Text�������������������������������������������������������������������������������������������������������������� 299

Open Source Library�����������������������������������������������������������������������������������������300


Gookit���������������������������������������������������������������������������������������������������������������������� 300
Spinner�������������������������������������������������������������������������������������������������������������������� 303

Summary����������������������������������������������������������������������������������������������������������306

Chapter 16: TUI Framework��������������������������������������������������������������307


uiprogress���������������������������������������������������������������������������������������������������������307
Code Flow���������������������������������������������������������������������������������������������������������������� 309
Updating Progress��������������������������������������������������������������������������������������������������� 310

Bubbletea����������������������������������������������������������������������������������������������������������313
Init��������������������������������������������������������������������������������������������������������������������������� 315
Update��������������������������������������������������������������������������������������������������������������������� 318
View������������������������������������������������������������������������������������������������������������������������� 319

Summary����������������������������������������������������������������������������������������������������������321

Part VII: Linux System������������������������������������������������������325


Chapter 17: systemd�������������������������������������������������������������������������325
Source Code������������������������������������������������������������������������������������������������������325
systemd������������������������������������������������������������������������������������������������������������������� 325
systemctl����������������������������������������������������������������������������������������������������������������� 329
Hello Server systemd���������������������������������������������������������������������������������������������� 332

xi
Table of Contents

go-systemd Library������������������������������������������������������������������������������������������������� 334


Summary����������������������������������������������������������������������������������������������������������������� 345

Chapter 18: cadvisor������������������������������������������������������������������������347


Source Code������������������������������������������������������������������������������������������������������347
Running cAdvisor����������������������������������������������������������������������������������������������347
Web User Interface��������������������������������������������������������������������������������������������352
Architecture������������������������������������������������������������������������������������������������������355
Initialization�������������������������������������������������������������������������������������������������������357
Manager������������������������������������������������������������������������������������������������������������361
Monitoring Filesystem��������������������������������������������������������������������������������������368
Information from /sys and /proc�����������������������������������������������������������������������371
Client Library�����������������������������������������������������������������������������������������������������375
Summary����������������������������������������������������������������������������������������������������������375

Index�������������������������������������������������������������������������������������������������377

xii
About the Author
Nanik Tolaram is a big proponent of open source software with over 20
years of industry experience. He has dabbled in different programming
languages like Java, JavaScript, C, and C++. He has developed different
products from the ground up while working in start-up companies. He is
a software engineer at heart, but he loves to write technical articles and
share his knowledge with others. He learned to program with Go during
the COVID-19 pandemic and hasn’t looked back.

xiii
About the Technical Reviewer
Fabio Claudio Ferracchiati is a senior consultant and a senior
analyst/developer using Microsoft technologies. He works for BluArancio
(www.bluarancio.com). He is a Microsoft Certified Solution Developer for
.NET, a Microsoft Certified Application Developer for .NET, a Microsoft
Certified Professional, and a prolific author and technical reviewer.
Over the past ten years, he’s written articles for Italian and international
magazines and coauthored more than ten books on a variety of
computer topics.

xv
Acknowledgments
Thanks to everyone on the Apress team who helped and guided me so
much. Special thanks to James Robinson-Prior who guided me through
the writing process and to Nirmal Selvaraj who made sure everything was
done correctly and things were on track.
Thanks to the technical reviewers for taking time from their busy
schedules to review my book and provide great feedback.
Finally, thanks to you, the reader, for spending time reading this book
and spreading the love of Go.

xvii
Another random document with
no related content on Scribd:
partij namen. De vader van Hindar was de eerste, die naast Sigbert
stond. Maar Hindar, op hem toetredend zei:

„Vaêr, ik moet eten … Du weet wel vaêr, de laatste bete heb ik


gisteravond gehad … en toen heb ik met di gedeeld …”

„Laat ze eten, Sigbert!” zei nu de vader van Hindar.

„De zwemmers kunnen krijgen!” gaf Sigbert toe.

„Stemmen, stemmen!” riepen de anderen dreigend.

„Vooruit dan … wie ’t zaaigraan wil vervreten, steek op zijn saks …”

Alle saksen werden opgestoken. Sigbert boog voor de overmacht. De


zak werd weer geopend en een der Batouwers, die een kleinen helm
droeg, gaf ze om als maat te dienen.

En nu mocht elk man een halven helm vol van het zoete
barnsteengraan uit den zak putten. Zij hielden hun pels als
voorschoten op en liepen met hun schat naar het vuur of zetten zich
wat verder alleen weg en begonnen het zoete graan rauw op te
knabbelen.

Alleen Sigbert at niet.

„Vaêr!” zei Reri, „du eet niet?”

„Dijn vaêr vreet zijn vrijheid niet op!” zei de Bataaf norsch. [135]

Toen keek Reri even terzij naar Tjeerd, die al den mond vol had. En
nog even wijfelend, wierp hij zijn deel weer in den zak terug.

„Gaat di mee Tjeerd … sporen zoeken?”

„Eerst eten …”
Maar tegelijkertijd zag hij naar zijn vader op en boog het hoofd.

Hij wilde nog een handvol graan naar den mond brengen. Maar hij
dorst niet en schuin het hoofd afgewend, liep hij nu ook naar Sigbert
toe en wierp de handvol graan, die hij nog slechts over had, ook in
den zak.

„Ik had honger, vaêr!” zei hij verontschuldigend, hoewel de oude


niets gezegd had, alleen met de driehoekige oogen fél hem
aanstaarde.

„Het was di geraden, knaap. Du hattet dijn erfdeel opgevreten … Ga


mee met dijn broeder …”

De twee liepen ’t kreupelhout in, zwijgend, onderworpen,


beschaamd, voelend het overwicht van den vader, die hongerend
zooals zij en met de volle beschikking, de eenige van allen was
geweest, die sterker zich toonde dan het verlangen, dat als een pijn
knaagde in de uitgehongerde maag.

„Als ’t voorjaar wordt, moet-ie koning worden!” zei Reri tot Tjeerd.
„Denk er wel aan jong, onze vaêr is de grootste Batouwer.… Hij
moet koning worden.”

Tjeerd spuwde de restjes van ’t graan uit zijn mond en rilde met ’t
hoofd als walgde hij nu van dat heerlijke koningsgraan.

Zij liepen beiden, de oogen naar den grond, zoekend of ook ergens
den indruk van een dier merkbaar was. Doch zelfs hun geoefende
oogen konden niets onderscheiden op den hard bevroren grond van
sneeuwijs. Maar dichter in ’t hooge hout, waar de boomen zoo vast
opeen stonden, dat de vorst eenigszins geweerd was, merkten zij
gebroken takken, waar blijkbaar een dier doorgang had gezocht.
Opeens hield Tjeerd stil. [136]
„Wat is dat?”

In ’t sneeuwijs stak een zwartige punt uit. Tjeerd rukte het voorwerp
uit de aarde.

„Een sandaal!”.… zei hij.

„En geen oude.… daar zijn hier menschen.”

„Wat voor menschen.…”

„Roovers! Anderen zijn niet in den winter hier in den dikicht.”

Zij liepen voort, volgend het spoor van de weggebroken takken en


vonden weldra een klein offerblok en vandaar voortgaande vonden
zij den ingang van ’t hol, dat met een zwaren steen was afgesloten,
maar die de twee sterke kerels al spoedig hadden terzij geschoven.

Beiden traden dadelijk terug.

„Daar zijn lijken in!” meende Reri.

„Aan den stank te zeggen, ja!”

„Wij moeten vuur maken … ’t Is te donker.”

Zij keken rond, maar zagen geen kienhout. Het was een bosch van
beuken en eiken.

„Wij moeten een lichtgat maken. Vooruit jong!”

Reri begon al met zijn saks boven in de sneeuwaarde te woelen en


Tjeerd van de andere zijde wierp de uitgewoelde aarde terzij. Toen
zij op een armdiepte waren, kwamen zij al aan de laag bladeren en
mest, die spoedig doorgestoken was. Uit het gat steeg dezelfde
doordringende stank op.
„Zooals ik di zei, lijken.”

Hij maakte het gat nog wat grooter en nu weer, van de holterp
afglijdend, gingen zij den ingang kruipend binnen.

Bij ’t daglicht, dat door ’t lichtgat boven, nu binnenviel, zagen zij de


lijken van drie mannen en een vrouw in ontbinding. Het hol was
volgestapeld met zadels, schilden, huiden, kortzwaarden, bronzen
bekkens, urnen met bronzen sluitspelden. Maar iets om te eten
vonden ze niet. [137]

„Wat denkt di, Reri?” vroeg Tjeerd.

„Dat zijn roovers, die zichzelf gevangen hebben. Zij hebben zich in ’t
winterhol opgesloten en vuur gestookt. Toen is ’t vuur ’s nachts,
toen ze den steen al voor ’t gat hadden gewenteld, gaan
aansmeulen en zij zijn gestikt … Wat zei ik di … hier ligt er nog een …
die is bijgekomen en is nog naar den uitgang gekropen … maar hij
was te zwak. Ga naar vaêr jong en roep hem. En laat de mannen
kienhouten meenemen. Ze zullen wel graankuilen hebben gehad..”

Tjeerd snelde terug en onderwijl begon Reri het lichtgat grooter te


maken. Hoe meer licht er binnenviel, des te meer ook werd hij van
de juistheid van zijn veronderstelling overtuigd. Roovers waren het
zeker geweest. Dat zou een kind zien aan de soort van schatten, die
zij verzameld hadden. Maar waren zij werkelijk gestikt? Of hadden zij
geen leeftocht meer gehad?

Die daar lagen, half vergaan, toen weder bevroren en nu weder


ontdooid, zouden het niet meer zeggen. Reri keek naar de
ontbindende lichamen en rilde. Het gezicht van een krijger, op ’t
slagveld gedood of van een mensch, kalm in zijn hut gestorven,
maakte op hem geen indruk. Zij voeren op naar Wotan en waren
voortaan gelukkiger dan op aarde. Maar deze hier, wier lichamen
niet verbrand waren geworden, en wier zielen dus eeuwig zouden
rondzwerven in den poel van Grendel, tot straf voor hun euveldaden,
boezemden hem afschrik in.

Zijn honger dreef hem om in ’t stinkende hol rond te zoeken naar


leeftocht. Zijn oogen waren nu gewend aan ’t schemerduister en
tastend met de handen langs de met koemest en dorre bladeren
bestreken wanden, vond hij achterin weder een grooten sluitsteen.
Hij wilde hem wegrukken, maar de steen was te zwaar. Nog was hij
bezig gebukt in het donker den steen weg te schuiven toen hij al het
gele licht van de brandende kienhouten zag, waarmede Sigbert en
andere Batouwers naderden. [138]

Nu konden zij in ’t hol goed zien, welk vreeselijk einde de roovers


hadden gehad. In ’t midden stond op een vuur van houtskool een
groote pot, waarin een weeke massa. Melksoep, die eerst tot bederf
was overgegaan en toen weder bevroren. Er lagen wel tien lijken in
’t hol, mannen en vrouwen. Een vrouw lag dicht tegen een wand bij
den toegangssluitsteen, de rechterhand met de magere, zwartige
vingers nog gekromd uitgestrekt naar den steen, die hun noodlottig
was geworden.

Reri en Tjeerd samen slaagden er in den steen van het tweede hol
weg te schuiven. Dat was de welvoorziene voorraadkamer. Er lagen
eenige zakken met graan, stapels gebakken, harde winterbrooden.
Er hingen aan touwen stukken gedroogd vleesch en een twaalftal
zijden spek. Tegen de wanden stonden groote, met was afgesloten,
aarden vaten. Sigbert opende ze met zijn saks. De vaten waren
gevuld met honig, mee, gestoofde bessen, ongebrande
molleboontjes, meel, gesmolten vet.

Nu was er geen rede om niet te eten.


„Vrèt jong, vrèt!” zei Sigbert tot Tjeerd. „’t Is je gegund!” voegde hij
er tot Reri bij. En deze, niet langer wachtend, trok een reep
gedroogd vleesch los en begon als met geeuwhonger te eten. En
ook Tjeerd en de vijf andere mannen deden zich te goed aan wat zij
maar ’t eerst grepen.

Sigbert, met een reep spek in de hand, liep naar buiten en met zijn
machtige kaak kauwend op de reep spek, snelde hij terug naar ’t
kamp, vertelde van de ontdekking en geen der mannen wist van
vermoeidheid. In een vaart liepen ze naar het roovershol, dat weldra
zoo vol was, dat er geen mannen meer binnen konden. Maar die
binnen waren reikten door ’t lichtgat, dat Reri gemaakt had, voedsel
naar buiten. Heele zijden spek, groote potten met meel en honig
werden naar buiten aangegeven en de mannen, bemerkend dat er
overvloed was, sneden lange [139]repen uit het spek en begonnen als
dieren te knagen, knorrend van genot, malkaar aanziend met
verheugde blikken.

Maar daar de stank binnen te sterk was, kwamen alle mannen


spoedig naar buiten. Een paar, die al half voldaan waren, begonnen
onder leiding van Sigbert het lichtgat grooter te maken. Anderen
kwamen helpen en spoedig lag het roovershol bloot met zijn
rijkdommen, zijn voedsel en zijn vergaande lijken.

Een paar mannen, dankbaar voor ’t voedsel, spraken er over, de


lijken te verbranden en in een paar der ledig gegeten vaten bij te
zetten.

Maar anderen waren er tegen, meenden dat menschen niet mochten


ingrijpen in den wil van Wotan, die de roovers zeker had gestraft
voor menige euveldaad en deze laatsten kregen gelijk.

Nadat allen verzadigd waren, werd de voorraadkamer van de roovers


leeg gehaald en onder de honderd door Sigbert verdeeld. Onderwijl
trokken de aangewezen dragers terug naar ’t kamp om de vijf-en-
twintig zakken graan te halen en toen deze terug waren, zette de
saks van Sigbert den tocht naar de Batouw voort.

Sigbert bleef bij het hol staan om bevelen te geven en voor de lucht
te zorgen. Het bevreemdde hem, dat nog niets van een vervolging
gemerkt werd en hij speurde rond of hij wellicht de vlam van een
seinvuur zag of luisterde nauwlettend of ergens een horen toette.
Maar ’t was doodstil en alleen het hem liefelijk geluid van de
smiltende druppelen die in de twijgen patsten, vernam hij.

Tot het laatste stukje vleesch was weggedragen uit het hol van de
roovers. Toen wilde een man, die weinig te dragen had, een bronzen
ketel medenemen.

Sigbert riep hem terug.

„Wat doet di daar?” vroeg hij streng.

„Voor mijn moei!” antwoordde de man. [140]

Sigbert pakte hem bij den schouder, rukte hem de ketel uit de hand
en wierp hem met een vaart in ’t hol terug, waar hij met een
helderen tink neerviel tusschen ’t andere brons.

„Batouwers zijn geen dieven!” sprak hij dreigend. En zijn oogen


vlamden. Toen, ziende dat de mannen gereed waren, liep hij zijn
troep langs en zijn saks opstekend in de lucht, zetten zij hun vlucht
voort. [141]
[Inhoud]
HOOFDSTUK X.

Er waren drie priesters in het land der Nerviërs aangekomen en


deze, vernemende dat Sogol en Harimona nog niet genaderd waren,
begaven zich naar Waberloo, de winterwoning van koning Solbert.
Zij vroegen onderweg aan alle woningen of de lieden Sogol en
Harimona reeds gezien hadden. Het begon koud te worden en de
drie priesters overnachtten zooveel mogelijk in de hutten, waar men
hun gaarne gastvrijheid verleende. En voor het vuur verhaalden zij
van de schatten van Renigo, van de wonderen van Harimona en van
de ontvoering door Sogol, den Nervischen prins.

Maar de menschen herinnerden zich niet, dat er een prins van dien
naam bestond en schudden het hoofd, zeiden tot de priesters, dat
zeker de een of andere roover zich die valsche waardigheid had
toegeëigend.

Doch de priesters bestreden dat. Het was wel zeker een prins
geweest, een echten prins en geen roover. Dat had men gemerkt
aan zijn trotsche houding, zijn overmoedig gedrag, de schoone wijze
waarop hij wist te spreken en de vele talen, die hij kende. Want men
had hem in de kampen hooren redeneeren met priesters van de
Sfafen en met gezanten van het Paarden-eiland en met schippers
van Scandische vaartuigen, die hij naar den weg had gevraagd om
naar het vreemde land te komen. Een Scandische schipper zelfs, die
hem, naar de gewoonte der Scandiërs, die wanneer met hun naar
den weg tot het vreemde land vraagt, altoos verhalen van den
grooten zeeslang en het gruwelijke meerwijf, had hij voor leugenaar
uitgemaakt. De Scandiër had zijn mes getrokken en was Sogol te lijf
[142]gegaan. Die had een mes geleend en den Scandiër na drie
trekken een stoot in de borst toegebracht. Maar hij had zijn
tegenstander dadelijk verbonden en hem niet naar ’t gebruik, den
doodsteek gegeven, zoodat de schipper sedert dankbaar was en
gezegd, dat hij Sogol den weg naar ’t vreemde land zou wijzen. Toen
hadden de andere Scandiërs den gewonde tusschen zich ingenomen
en later had men hem dood gevonden, hangende met de beenen
naar beneden aan een boomtak. Zoo handelen de Scandiërs met
allen, die het geheime middel willen verraden, waardoor zij het
gruwelijke meerwijf, dat over de zee van het vreemde land heerscht,
weten te paaien.

De Nerviërs spraken nu veel over den onbekenden prins, die zoo


dapper en knap was en begonnen bij de andere lieden te vragen of
zij ook herinnering hadden van prins Sogol. Toen was er een vrouw
geweest, die Sogols moeder had gekend en een andere verhaalde
van den ouden priester Myst, die voor jaren was uitgetrokken om
den zoon van den Bellovaakschen koning te zoeken.

En de priesters, ondervraagd, verklaarden dat een ouden priester


steeds in de nabijheid van den prins was gezien en ook een jongen
horenblazer.

De priester was gestorven, maar de horenblazer was verdwenen in


denzelfden nacht dat Harimona door Sogol was geschaakt.

Veel menschen gingen nu met de drie priesters mede loopen om


naar den prins en de heilige jonkvrouw te zoeken en verbreidden
door het land de geschiedenis van Sogol. Toen de priesters eindelijk
te Waberloo aankwamen, waren hun al vele lieden vooruitgesneld en
ook kondschappers van trouwe heertogen van koning Solbert, die
den koning waarschuwen lieten voor den nieuwen dinger naar de
koningsmacht.

Maar er waren ook vele heertogen, die den toenemenden macht van
Solbert bemerkend, naijverig waren en wel gaarne [143]een nieuwen
koning op den troon wilden zien. Want onder de Nerviërs en de
Bellovaken, hoewel van Germaansche afstamming, zijn er, die van de
Galliërs, waarmede zij dikwijls in aanraking komen, de
onbestendigheid hebben overgenomen en altoos haken naar
verandering van regeering. Daarbij kwam, dat Solbert een zéér
strengen koning was, die den Galliërs vijandig was en de
vrouwenregeering van vroeger toeschreef aan den invloed der
verwijfde Galliërs. Hij had alle Gallische gebruiken onder de Nerviërs
en Bellovaken uitgeroeid. Het drinken van wijn werd bestraft met het
uitsnijden van de tong, omdat de wijn wellustig maakt. Niemand,
ook de voornaamste hertog niet, mocht kleederen van meer dan
twee kleuren dragen.

Zwakke kinderen en bastaarden werden dadelijk na de geboorte


gedood en Solbert was het, die het oude gebruik weder in eer
herstelde, dat kinderen dadelijk na de geboorte in koud water
moesten ondergedoopt worden om hun levenskracht te beproeven.

Vooral de vrouwen waren zeer ontevreden met de regeering van


Solbert. Want hij, zich herinnerend waartoe de vrouwenregeering
had aanleiding gegeven, had de vrouwen weder volkomen
onderworpen aan den man. Zij moesten ’s winters thuis weven en ’s
zomers het land bebouwen. De mannen hadden het recht hun
vrouwen een weeftaak op te leggen en haar, wanneer zij haar taak
niet voleindigd hadden, te kastijden met de zweep.

Ook de kleeding der vrouwen was door koning Solbert


voorgeschreven. Zij moesten naar de oude zede der voorvaderen
hals en armen bloot dragen, ook gedurende den winter. De boezem
moest echter door een stijf lijnwaad worden weggedrukt, opdat de
maagden de jongelieden, en de gehuwde vrouwen niet anderen dan
hun eigen man tot begeerte zouden brengen. Ten einde de vrouwen
en de maagden door een uiterlijk teeken te onderscheiden, moesten
[144]de maagden twee kleine krullen buiten de hoofdhuive dragen,
terzijde voor de ooren. Aan de gehuwde vrouwen was deze dracht
verboden. Want het was voorgekomen, dat mannen door gehuwde
vrouwen tot ontucht waren gebracht, doordat zij zich als
ongehuwden hadden voorgedaan.

Door al deze strenge maatregelen was koning Solbert weinig


bemind. Evenwel, daar men erkennen moest, dat dit alles in ’t
belang van den stam geschiedde, gevoelde men toch ontzag voor
den strengen koning. Doch er was nog een andere reden waarom
vele aanzienlijken Solbert een kwaad hart toedroegen, dan alleen
wegens zijn beperking van de ontucht en de weelde.

De koning had de hoorigen onder hetzelfde recht gesteld als de


vrijen. Dit nu was van oudsher nooit zoo geweest. De vrijen werden
gevonnist op het Ding naar de wetten die in het groote gedicht van
koning Noric was vervat en die de zeven priesters elk voor een
zevende deel kenden. Stierf een der zeven wethouders of raakte hij
door den ouderdom verzwakt, zoodat hij zijn deel niet meer voor het
Ding vlot kon opzeggen, dan werd een jongen priester tot
wethouder verheven, nadat hij op een Ding, ten overstaan van het
geheele volk, zijn deel vier maal achter elkaar had opgezegd, zonder
ook maar een enkelen keer te haperen. Maar de hoorigen werden
gevonnist door hun heer en voor hen waren de straffen strenger.

Koning Solbert nu, die ervaren had, dat de heeren de hoorigen ook
bij de minste vergrijpen zware straffen oplegden, zoodat de vrouwen
der hoorigen nachten door zaten te weven om de boeten hunner
mannen te kunnen voldoen, daar anders de mannen met
wilgeteenen werden gekastijd of de ooren van ’t hoofd werden
gesneden of geblinddoekt naast den ezel in de graanmolen
aangebonden, had bevolen dat geen heer zijn hoorigen anders
rechten mocht dan naar het recht van koning Noric. En om te
voorkomen, dat de heeren zouden zeggen, dat zij ’t recht niet
kenden, werden [145]in elk gebied zeven hoorigen en zeven heeren
gekozen, die het gedicht van koning Noric uit het hoofd moesten
leeren, juist zooals de priesters.

De priesters, ziende dat de heilige wetenschap van het oude recht


aldus niet alleen aan heeren, maar zelfs aan het gemeen werd
onderricht, verweerden zich en zeiden, dat dit een inbreuk op het
recht der priesters was. Toen was koning Solbert opgestoven en hij
had gedreigd, dat hij boodschappers zou zenden naar Scandia, waar
het heilige recht was gegrift op bronzen tafels in de onvergankelijke
runen. Die bronzen tafels had koning Noric in de jaren zijner
eenzaamheid, toen hij met zijn lier had rondgezworven in het
vreemde land, van Wotan zelf ontvangen.

De priesters waren zwijgend weggegaan. Want zij kenden de heilige


runen niet en vreesden vervangen te zullen worden door priesters
uit Scandia, die runen konden lezen en zoo zelfs spraken met de
koningin van het vreemde land, die zij met de schippers eiken
broodplanken stuurden waarop runen waren ingegrift. Maar zij
morden en offerden in stilte een vaars aan Donar en smeekten hem
koning Solbert door zijn bliksem te vellen.

De heeren, nu gedwongen hun hoorigen te vonnissen naar het recht


van koning Noric, konden geen zware straffen meer opleggen en
morden, wachtend op een gelegenheid om den koning ten val te
brengen. Doch de hoorigen waren Solbert dankbaar en velen van
hen, wetend dat zij allen voor zware misdrijven aan den lijve gestraft
konden worden, werden overmoedig, zoodat zij, wanneer te veel van
hen werd gevergd, weigerden hun taak te verrichten en riepen om
het recht van koning Noric. Ook waren er veel misdrijven, waar in ’t
recht van koning Noric in ’t geheel geen straf op was gesteld, zooals
wanneer een maagd weigerde in den bruidsnacht bij heur heer te
slapen; of wanneer een knecht weigerde de straf [146]te boeten, die
zijn heer op het Ding was opgelegd wegens een vergrijp. Want deze
gebruiken waren ten tijde dat koning Noric in ’t vreemde land zwierf,
nog niet bekend geweest.

Toen de drie priesters van Renigo eindelijk bij koning Solbert te


Waberloo werden toegelaten, was al in ’t heele gebied bekend, dat
Sogol, de dappere en geleerde prins, in aantocht was, vergezeld van
een heilige maagd. De priesters en de heeren bereidden zich voor
om prins Sogol waardig te ontvangen en een Ding te doen
uitroepen, waarop gerecht zou worden, wie het meeste recht op den
troon had. Maar de hoorigen waren vast besloten voor hun koning
Solbert te strijden en zelfs als het Ding anders mocht beslissen, toch
koning Solbert trouw te blijven en hem hun arm aan te bieden.

Onder de hoorigen liepen veel slechte geruchten omtrent Sogol. Zijn


moeder was de gevloekte kol Spûr geweest, die verdronken was bij
de waterproef. 1 Zijn vader, de roofzieke Bellovaaksche hertog. Hij
had te Renigo zondige redevoeringen gehouden en de goden
geschonden. Harimona, heette het, was door hem, met behulp van
giftige kruiden in een diepen slaap gebracht en toen medegevoerd.
De geest van zijn moeder, de kol Spûr, was verschenen in de
gedaante van den jongen horentoeter en deze had de heilige maagd
in haar slaap besproken, ontheiligd en betooverd en zoo haar de
wonderkracht ontnomen.

En telkens kwamen er nieuwe verhalen van de slechtheid van Sogol.


Men had hem gezien in het Aardener woud bij de vervloekte
krijgsvrouwen en hij had met haar ontucht begaan. [147]

Hij had de krijgsvrouwen weder tot een horde gevormd en zijn


moeder had ze hellewapens gegeven in den vorm van groote
rietstengels. Wie door het riet werd aangeraakt kreeg groote
brandblaren en stierf aan waterkoorts.
Koning Solbert ondervroeg de drie priesters uitvoerig. Zij vertelden
van de schatten van den haag van Renigo, van de macht van den
hoogepriester Maresag, van de wonderlijke geboorte van Harimona,
van den roep die van haar uitging en van de laatste groote
verzameling van pelgrims aan den Rîn. Welke genezingen zij had
verricht en hoe prins Sogol in de kampen was verschenen, vergezeld
van een ouden priester en een jongen horenblazer. Dat Harimona
alle bruidegoms had afgewezen maar prins Sogol, die als offer voor
’t volk had moeten dienen, door haar Batouwschen lijfwacht had
doen redden. En dat toen Harimona den prins bij haar in hare
vertrekken dagen lang had verborgen gehouden en eindelijk met
hem was gevlucht.

Koning Solbert liet zich veel omtrent Harimona verhalen. Of zij


schoon was? En hoe de kleur van heur haar was en hoe die van haar
oogen. Hoe lang zij was? Zoo lang als gemeenlijk de vrouwen van
Renigo, die bekend stonden als zware wijven of misschien wel van
zijn lengte?

En Solbert sprak weinig over prins Sogol en scheen zich niet om


Sogol te bekommeren. Maar veel sprak hij over Harimona, werd niet
moede van haar te hooren en wanneer een der priesters vermoeid
was van ’t spreken, begon de koning den andere te ondervragen en
wanneer deze ook ’t zelfde vertelde, dan toch luisterde de koning
met groote aandacht.

Hij wilde de namen kennen van al de bruidegoms, die om heur


hadden geworven. Het verhaal van de zeven recken bij de burcht
Wittewa, waar de geest des winters huisde, die de kroon van
Harimona bewaarde en van den draak Frango, den hond Whridlo en
de geit Baza, bracht [148]den koning zoo in vervoering, dat hij zijn
hand aan de greep van zijn lang zwaard bracht en de priesters
zagen hoe zijn hand sidderde, als was de koning gereed om het van
’t leer te trekken.

Veertig snelle kondschappers riep de koning ten laatste tot zich. En


door het geheele gebied moesten zij bekend maken dat zoodra
Sogol en Harimona zich vertoonden, beiden gevangen moesten
genomen worden. Sogol, ’t zij dood of levend, maar Harimona met
veel omzichtigheid en met alle eer en waardigheid, die men aan een
zoo schoone en heilige jonkvrouw verplicht was. Den dood wachtte
dengeen, die haar op welke wijze dan ook, zou krenken, schaden of
beleedigen en de tong zou dengeen worden uitgesneden, die een
woord sprak, dat hare kuische eer bevlekte.

Onder het lagere volk nu was men zeer gebeten op Sogol, die een
zoo heilige jonkvrouw door tooverkunst had geschaakt. Maar onder
de edelen was gemor en werden geheime samensprekingen
gehouden. En bitter vroegen de edelen, of in het gedicht van ’t recht
van koning Noric soms straf stond gesteld op het smaden van een
ontuchtige priesteres? [149]

1 Er is geen reden om de waterproef voor onbekend bij de oude Germanen te


houden, hoewel de berichten omtrent haar toepassing niet verder dan de
middeleeuwen gaan. Het geloof aan heksen is veel ouder dan de middeleeuwen,
waarschijnlijk door de Germanen uit hun vermoedelijk oer-land, Indië,
medegebracht. ↑
[Inhoud]
HOOFDSTUK XI.

Sogol, de beide vrouwen ziende vluchten en bemerkend, dat een


naakten man naar een hol kroop, reed tot dicht bij het hol, steeg af
en riep:

„Vriend, wie bent di? kan ik helpen?”

De priester, in grooten angst, vreezend dat Sogol hem zou gevangen


nemen, daar Harimona hem kende, nam een kloek besluit. Zijn rol
van kwaden kabouter beviel hem en daarom riep hij uit het hol:

„Treed niet nader, vreemdeling. Ik ben de groote kabouter. Wie mijn


hol betreedt moet sterven!”

Sogol, in stede van verschrikt terug te wijken, lachte helder op.


Harimona en Haun kwamen nader en Sogol tot Harimona:

„Pas op, liefste. Hier is ’t hol van den grooten kabouter. Wie zijn hol
binnentreedt moet sterven!”

Harimona glimlachte zacht en Haun, hoewel inwendig toch bevreesd,


verkloekte zich om Sogol te vragen:

„Meester, zal ik hem er uit toeten?”

„Blaas mijn jongen!” zei Sogol.

Maar nu Haun den horen aan zijn mond zou zetten, begon hij toch
van vrees te beven en in stede van een flinken horenschal toeterde
hij een iel, trillerig geluid.
Sogol wilde lachen, maar opeens keek hij ernstig. Uit het hol klonk
de schal terug en daarna van heel ver nog eens.

„Hoort di het, Haun?”

„Ja, meester.”

„Wie denkt di, dat daar blaast?”

„De zotte geest uit de stroth, dien du verjaagd hebt.” [150]

„Zal di nooit wijzer worden knaap…” riep Sogol norsch. „Ik zal di
nogeens een les geven, dat du alle vrees voor geesten en kobolden
verliest.”

Harimona was afgestegen en legde heur hand op Sogols schouder.

„Geliefde, wees voorzichtig. Een voorgevoel zegt mi, dat hier gevaar
dreigt. Ik voel de tocht van den dood langs ons strijken.”

„Zult di dan ook nooit moedig worden?” toornde Sogol en spottend


riep hij: „Kom eens naar buiten.”

„Vreest di niet vreemdeling? Weet, dat ik niet uit mijn hol treed
zonder onheil!”

„Dan zal ik di halen, du leugenbeest!”

Moedig stapte Sogol de grot binnen. Maar de priester doofde meteen


zijn brandend kienhout en vluchtte naar achter. Hij kende nu vrijwel
den weg, sloop naar het plateau bij het water en verschool zich daar
in een nis.

Sogol, die in de duisternis rondtastend, de scherpe wanden voelde,


trad weder naar den uitgang.
„Is hij ontvlucht?” vroeg Harimona.

„Voorloopig ja. Maar wij zullen den vriend wel te pakken krijgen.
Houd hier de wacht Haun. Ik ga fakkels snijden.”

Sogol liep ’t woud een eindje in, hakte eenige geschikte droge
takken van jonge dennen af en met zijn rondhout vuur draaiend in ’t
blok, stak hij ze aan, tot ze goed opvlamden en liep toen terug, ’t hol
binnen.

De druipsteengrot wekte zijn verwondering niet, zoomin als de echo


dat gedaan had. Hij had wel meer zulke grotten gezien en wist, dat
de kristallen door Scandische zeelieden medenomen werden als ze
naar het vreemde land voeren. Maar toen hij door de tweede grot
aan het onderaardsche meer kwam en de zuilenrijen en gewelven
langs de oevers aanschouwde, vloog de gedachte door zijn brein,
dat hij dit keer werkelijk in een der paleizen van kabouterkoningen
was binnengedrongen, waarvan de sagen zooveel verhaalden. [151]

„Kabouterkoning!” riep hij, „Vertoon di. Ik ben dijn vriend en vraag


gastvrijheid.”

De priester, bemerkend dat Sogol alleen was, kwam op het


denkbeeld Sogol hier in het meer te storten, dan naar buiten te
vluchten, den horenblazer te verschrikken of door een vuistslag neer
te vellen en vervolgens Harimona met geweld weg te voeren. Het
groote paard van Sogol kon beiden dragen en de twee andere
paarden zou hij een poot verbrijzelen, zoodat Sogol, ook wanneer hij
zich uit het water redde, hem niet zou kunnen vervolgen. Daarom
kwam hij nu uit zijn schuilhoek en riep:

„Hier ben ik, vreemdeling? Wat wilt di?”


Zoodra Sogol den naakten man zag en den beschaafden uitspraak
van het Renigo’sche dialect hoorde, kreeg hij argwaan en nu
gevoelde hij spijt toornig tegenover Harimona te zijn geweest.

„Waar ben ik hier, Kobold?” vroeg Sogol.

„In mijn rijk, vreemdeling. Hebt di geen vrees om de kabouters aan


den arbeid te zien, kom dan mede.…”

Sogol volgde den naakten man, maar was zéér op zijn hoede. Deze
liep hem vooruit, steeds meer naar achter en daalde toen de breede
trappen van het ondergrondsche meer af.

„Sta hier vreemdeling en schouw in den zwarten spiegel. Dan zult di


mijne kabouters zien.”

Sogol trad nader. Plotseling sprong de priester terzij, sloeg hem het
brandende kienhout uit de hand, zoodat het in ’t water viel en
sissend uitdoofde. Sogol had zich meteen schrap gezet en toen nu in
’t duister de priester hem een duw gaf, wankelde hij niet maar greep
den man vast. Deze, merkende dat zijn toeleg mislukt was, trachtte
zich los te rukken maar Sogol, sterker dan hij, hield hem stevig vast
bij de armen.

De twee mannen hadden geen woord gewisseld bij deze worsteling.


Nu echter zeide Sogol, wien alles klaar werd: [152]

„Als dijn leven di lief is, worstel dan niet langer en leid mi naar
buiten.”

Meteen pakte Sogol ’s mans armen zoo van achteren vast, dat het
hem weinig moeite zou kostten den man als een dunne plank naar
achteren om te buigen.
„Heer, laat mi los … Ik zal di voorgaan en leiden. Ik ben een arme
kobold, die ’t daglicht niet kan verdragen.”

„Verdraagt di dit beter?” vroeg Sogol, ’s mans schouders zoo


prangend, dat hij een gil van pijn uitte.

En den man voor zich uitduwend, liep hij op goed geluk in de


richting van den uitgang. Maar in ’t zwarte duister verdwaalde hij,
liep zonder het te weten in de tegengestelde richting van den
uitgang en ten laatste stuitte hij in den hoek, waar de geraamten en
de steenen bijlen lagen.

„Heer, wij zijn den verkeerden weg geloopen.”

„Wat ligt daar?” vroeg Sogol.

„Ik weet niet, heer?”

„Wat. Een groote kobold zou niet weten, wat in zijn eigen hol ligt?”

Sogol schopte tegen de voorwerpen op den grond. Iets ronds en


hards rolde weg; zij hoorden het rollen langs den hellenden weg en
dan een plons in ’t water. De echo het rollen herhalend en weder
herhalend maakte het roldebolder tot een lang, dof dreunend geluid.

Nogmaals schopte Sogol zijn voet tegen de massa voor zich en


weder rolde met veel gebolder iets ronds weg langs den hellenden
weg naar ’t ondergrondsche meer.

„Wat zijn dat?” vroeg hij.

„Ik weet niet, heer!”

„Du liegt.. du weet het heel goed.. ik zal di zeggen, wat het zijn.…
het zijn doodshoofden, du vervloekte roover! Dat zijn dijn
slachtoffers!”

„Heer, geloof mi … het is niet zoo … ik ben een eerlijk man.” [153]

„Dat heb ik gemerkt, toen du mi in ’t water wilde stooten … En wat is


dat? En wat is dat?”

Sogol, nu trappend tegen de urnen en de steenen bijlen,


vermoedend dat dit de buit van den roover was, omknelde de armen
van den gevaarlijken moordenaar nog vaster. Want minder voor
zichzelf dan wel voor Harimona vreesde hij, wanneer de roover
mocht ontsnappen.

Van uit de verte klonk een angstig geschrei, dat zich herhaalde en in
de gewelven voortschalde van muur tot muur. Daarna de eerste
schallen van een Nervisch deuntje.

„Hierheen, hierheen!” riep Sogol.

Maar Haun, die op Harimona’s bevel met een bundel kienhouten en


een brandend kienhout Sogol tegemoet ging, door de echo misleid,
liep een anderen weg op, dan waar Sogol riep. Sogol zag hem
zoeken met zijn brandend hout, dat echter te weinig schijn
verspreidde om den afgelegen hoek te verlichten, waar de twee
mannen stonden.

„Loop langs het meer en dan rechts af!” riep Sogol, de woorden
langzaam uitsprekend met tusschenruimten, opdat het eene woord
niet het andere door den echo-schal zou onverstaanbaar maken.

Nu liep Haun in de goede richting en was weldra bij zijn heer. Maar
hij en Sogol verschrikten beiden, toen ze bij den roodgeligen schijn
van den walmenden brandenden tak een hoop geraamten zagen bij
elkaar liggen te midden van steenen bijlen en urnen.
„Draak, monster, ondier!” kreet Sogol. En den priester in zijn woede
optillend wierp hij hem van zich af langs het hellende plateau, waar
te voren de doodskoppen waren ingerold. De man trachtte zijn vaart
te stuiten, doch slaagde er niet in en tuimelde in het zwarte meer.
Sogol hoorde de plons en daarna begon de man, in ’t zwarte duister
zwemmend zonder te weten naar welke richting hij kon ontkomen,
bevreesd in het donker alleen te blijven nu hij den weg niet meer
wist, om hulp te roepen en te schreien. [154]En zijn angstkreten,
door de echo’s herhaald, klonken hol en vertienvoudigd. Het scheen
of niet één mensch daar in het donker tegen den dood worstelde
maar alsof tien, twintig lieden uit de zwarte kolk om hulp schreiden.

Haun stond bevend bij Sogol.

„Wilt di hem redden, meester?”

„Neen.., laat hem verdrinken … hij heeft zijn straf welverdiend …”

Maar de man in ’t water liet niet af.

„Heer, heer!” schreeuwde hij, „ik ben een priester uit Renigo … Heer,
om der wille van de heilige maagd, red mi … Heer, in naam van
Harimona …”

„Licht mi bij, jongen!” zei Sogol nu tot Haun. „In haar naam zal niet
vergeefs erbarming worden ingeroepen.”

Hij daalde voorzichtig langs het plateau af, stak een kienhout aan en
verlichte het donkere watervlak. De priester lag al midden in ’t water.
„Kom … du hebt Harimona aangeroepen … Du zult gered worden!”
riep Sogol.

„Ik kan niet meer heer … ik kan niet meer!”


Sogol sprong hem niet na. Want bij ’t licht van de toortsen zag hij
dat het water zwart en drabbig was, een donkere poel, die naar
bedorven eieren rook.

Maar dichtbij kwam de naakte man weer boven. Sogol greep hem
vast en trok hem tegen de kant op. Hij merkte dat het hellende
plateau plotseling stijl eindigde, alsof een afgrond met drabbig water
was gevuld. Maar de man gaf geen teekenen van leven meer en
neus en mond waren met een dik, taai slijk gevuld. Sogol tilde het
lichaam op en door Haun voorgelicht, vonden zij de twee
toegangsgrotten en kwamen eindelijk weder buiten in de frissche
lucht.

Harimona wachtte met bleek gelaat en bevende lippen en toen zij


Sogol zag terugkomen met het lichaam van den naakten man op zijn
armen, snelde zij op hem toe. [155]

„O vriend … hoe gelukkig ben ik, dat du bent weergekeerd … Ik


voelde mij zoo beklemd …”

„Hier is de kabouter,” zei Sogol, het lichaam zacht op ’t mos


uitstrekkend. „Du hebt wèl gelijk gehad mij te waarschuwen,
geliefde. Want hij wilde mij tersluiks in een poel werpen, die daar
achter in de grot is.”

„Ik ken den man … dat is Wieland, de runenkenner …”

„Dan begrijp ik alles!” zeide Sogol. „Maar hoe kwamen die twee
gevluchte vrouwen in zijn tegenwoordigheid? En waarom heeft hij al
die menschen vermoord?”

„Heeft hij menschen vermoord?” vroeg Harimona.

„Ja … het hol ligt vol geraamten en doodshoofden …”


„Maar dan kan hij die moorden niet gedaan hebben. Want vóór wij
vluchtten, was hij nog in de haag.”

„Dat is waar,” zeide Sogol.

Hij begon er spijt over te gevoelen, den man verdronken te hebben.

„Wij zullen hem verbranden en in een urn begraven, hoewel ik


anders weinig geloof van de straf, die de zielen van niet-verbrande
lichamen moeten dulden. Kom Haun, laat ons een brandstapel
maken.”

Zij zochten dor hout bijeen, stapelden het hoog op en legden toen
het lijk van den verdronken Wieland er op. Toen draaide Sogol vuur
en stak de brandstapel aan. De vlammen, lekkend om het dorre hout
stegen, spoedig hoog op.

Sogol, Harimona en Haun wachtten op een afstand.

„Waar vinden wij een urn?” vroeg Harimona.

„Daar binnen staan er verscheidene …”

„Wilt du di nogmaals er in wagen?” vroeg Harimona angstig.

„Waarom niet?… Of hebt di weder voorgevoelens?”

„Neen, nu niet …”

„Kom mee Haun!” beval Sogol … Maar hij bedacht zich.

„Neen … ’t is beter dat Haun hier blijft bij de paarden. Licht di mij bij
Harimona.” [156]

Hij nam zelf een kienhout en stak dit aan den brandstapel op. Nam
een bundel andere toortsen in zijn arm en Harimona nam ook een
bundel en een vlammend hout.

„Haun, denk er aan. Indien er onraad is, blaas driemaal. En zoekt di


ons, altoos loopen naar de tegenovergestelde zijde vanwaar de
weerschal komt …” waarschuwde Sogol.

Toen ging hij met Harimona de grot in. Zij was vol bewondering voor
de prachtige druipsteenen, die de gewelven bepegelden. Maar in de
groote hal van het onderaardsche meer voelde zij zich angstig en
greep Sogol vast.

Hij sloeg zijn linkerarm om heur middel en drukte heur vast tegen
zich aan.

„Hier wilde hij mij in ’t meer duwen!” zeide Sogol, wijzend op de


verwarde voetstappen in ’t slik van den meeroever … „Ziet di de
worsteling …”

„Ik zie het, Sogol … maar ik zie het niet voor den eersten keer. Toen
du hier binnen tradt en ik waarschuwde di zag ik in mijn droom du
worstelen met een naakten man … Het droombeeld duurde een
oogwenk … en toen was ik weer uit den droom geheven. Daarom
waarschuwde ik di.”

Zij schreden nu tegen het hellend plateau op. Bij ’t rossige schijnsel
der twee brandende takken zagen zij, dat de grond van zwarte,
glimmende, harde aarde was. Sogol, zijn tak nu langs de zuilen der
gaanderijen houdend, zoodat deze eenigszins verlicht werden,
onderzocht ze zoo nauwkeurig als dat bij ’t slechte licht maar kon.

„Dat is menschenwerk!” zeide hij, meer tot zichzelf dan tot zijn
begeleidster. „Dat moet uitgehouwen zijn …”

„Hier zijn trappen,” riep Harimona, die haar toorts wat terzijde had
gehouden.
Naast den hellenden opgang was, naar de zijde van ’t water toe een
trap, uitgehouwen in den zwarten grond met groote treden.

Harimona zag er tegenop den trap te gebruiken en liep liever langs ’t


hellend vlak. [157]

„Voor wien heeft dien trap gediend? Het moeten reuzen zijn
geweest, die zoo’n trap gebruikten …” meende Sogol.

Boven op ’t plateau waren zij beiden spoedig aan den hoek, waar de
geraamten lagen en de urnen stonden.

Nu, rustig ze beschouwend, zag Sogol dat Harimona’s vernuftige


opmerking juist was geweest. De geraamten waren zeker al zeer oud
en de doodshoofden, de borstkassen, de beenderen van de
ledematen waren van ongewone grootte.

Nu ook vond hij de grofbewerkte bijlen van vuursteen.

„Het moeten reuzen geweest zijn, die deze werktuigen gebruikt


hebben. En hoeveel kracht moeten zij niet gehad hebben om deze
zuilen uit te houwen.”

„Wat zouden ze hier gedaan hebben?” vroeg Harimona.

„Ik weet het niet.… ik weet het niet.… De wereld is vol wonderen.
Maar het zijn geen wonderen, die aan goden doen gelooven. Het is
alles te verklaren.… Wat zou een ander, die den priester vervolgd
had en ontkomen zou zijn, later verhaald hebben van kobolden en
onderaardsche paleizen en zeeën en schatkamers en geraamten …
Toen ik hier met den priester stond, trapte ik een paar bolvormige
dingen weg, die langs het hellend plateau in ’t meer plonsten.… Het
zullen doodshoofden zijn geweest … Wilt di eens hooren.… maar
schrik niet.…”
Sogol schopte een doodshoofd naar ’t hellend vlak. ’t Zelfde
donderende gebolder, dat hem in ’t duister zoo verschrikt had,
hoorde hij nu kalm aan, met een trek van minachting om de fijne
lippen.

„Hoordt di.… dat is genoeg gerommel om tien welgewapende legers


op de vlucht te drijven.… En toch is het niets, een leeg geschal.… de
onttroonde schalgeest uit de Ravenstroth; en ik denk Harimona, dat
de donderrommeling daarboven in de lucht weinig anders kan zijn.…
een groot gloeiende steen, die ergens neervalt zooals wij dat wel
eens hebben gezien en die daarboven in de lucht rommelt [158]zooals
het doodshoofd hier.… Wanneer ik straks koning zal zijn, ruk ik met
duizend man hier binnen. Groote brandende vetpotten zal ik hier dan
neerzetten en alles onderzoeken.… Kom mijn liefste.… wij hebben
haast … laat ons deze urn medenemen.…”

Zij wilden een buikige urn aan de twee ooren optillen. Maar de urn
was zwaar en Sogol hield zijn toorts boven de opening.

„Er ligt iets in.…” zeide hij. „’t Schemert geel, maar wat het is, weet
ik niet.”

Hij duwde de urn om en klopte tegen de wanden. Maar er viel niets


uit.

„Dan zullen wij een anderen nemen.…”

Zij namen een kleineren urn op. Maar Sogol wachtte nog even. Hij
nam een der zware vuursteenen bijlen op en sloeg er mede op de
buik van de urn, waarin met een doffen slag een gat gruizelde.

Groote stukken barnsteen, tot een vaste massa versmolten, hadden


de aarden pot zoo zwaar gemaakt.
„Dat wordt een bruidssieraad voor di, lieve!” zei Sogol vroolijk, een
stuk van de massa barnsteen afslaande, en dicht naast haar gaande,
wel op zijn hoede, dat zij niet op ’t hellende plateau zou uitglijden.

„Vreemd nietwaar, de reuzen-kabouters van vroeger zijn al net als de


dwerg-kabouters van heden.… Tot aan hun laatste stonden kunnen
zij zich niet van hun schatten scheiden.”

Buiten bij het daglicht bekeken zij de urn nauwkeurig. Sogol


bemerkte dat de bruine aarde met roode figuren versierd was.

„Dat is Scandisch werk!” zeide Harimona. „De Scandische urnen van


Maresag hebben dezelfde versiering.”

„Zou het dan waar zijn, dat de Scandiërs eens in ’t land der Nerviërs
gewoond hebben?” peinsde Sogol. „Er zijn Galliërs, geliefde, die
volhouden dat Scandia, [159]bevolkt is geworden van uit Gallië. Maar
wie kan dat nagaan?”

Haun stond bij den doovenden brandstapel.

„Niets gebeurd?” vroeg Sogol.

„Ja heer.… de twee vreemde wijven zwerven hier weer rond.… Zij
kwamen uit het boschje daar en toen ze mij zagen, vluchtten ze
weer naar dien kant weg.…”

„Zij zullen hun kabouter zoeken!” lachte Sogol, ’t verschrikte gelaat


van den jongen ziende.

Hij keek op het kleine hoopje witte asch en de witgebrande


beenderen op den mutsaard.

„Veel is er voor haar niet van hem overgebleven!” zei hij, starend
naar het verbrande lijk van den priester.

You might also like